Message ID | 1332766053-9063-3-git-send-email-alevy@redhat.com |
---|---|
State | New |
Headers | show |
> +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */ > + info->has_mouse_mode = true; > + info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ? > + "server" : "client"); #else info->mouse_mode = "unknown"; #endif cheers, Gerd
On Mon, Mar 26, 2012 at 03:06:22PM +0200, Gerd Hoffmann wrote: > > +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */ > > + info->has_mouse_mode = true; > > + info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ? > > + "server" : "client"); > > #else > info->mouse_mode = "unknown"; > #endif Why? I don't set has_mouse_mode in this case, which defaults to 0 == false because of the malloc0, and then I check has_mouse_mode in the hmp command, and the qmp just won't send the field because has == false. > > cheers, > Gerd
On Mon, Mar 26, 2012 at 03:06:22PM +0200, Gerd Hoffmann wrote: > > +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */ > > + info->has_mouse_mode = true; > > + info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ? > > + "server" : "client"); > > #else > info->mouse_mode = "unknown"; > #endif > ok, it's probably better to have this consistent across hmp and qmp, will resend this patch. > cheers, > Gerd
On 03/26/12 15:30, Alon Levy wrote: > On Mon, Mar 26, 2012 at 03:06:22PM +0200, Gerd Hoffmann wrote: >>> +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */ >>> + info->has_mouse_mode = true; >>> + info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ? >>> + "server" : "client"); >> >> #else >> info->mouse_mode = "unknown"; >> #endif > > Why? has_mouse_mode looks superfluous and makes the code a bit more complicated than needed. > I don't set has_mouse_mode in this case, which defaults to 0 == > false because of the malloc0, and then I check has_mouse_mode in the hmp > command, and the qmp just won't send the field because has == false. Ah, ok, didn't see qmp does something different, then I'd suggest to just leave mouse_mode zero-initialized (aka NULL) when mouse mode info isn't available. cheers, Gerd
diff --git a/hmp.c b/hmp.c index 9cf2d13..c1224fb 100644 --- a/hmp.c +++ b/hmp.c @@ -350,6 +350,8 @@ void hmp_info_spice(Monitor *mon) } monitor_printf(mon, " auth: %s\n", info->auth); monitor_printf(mon, " compiled: %s\n", info->compiled_version); + monitor_printf(mon, " mouse-mode: %s\n", + info->has_mouse_mode ? info->mouse_mode : "unknown"); if (!info->has_channels || info->channels == NULL) { monitor_printf(mon, "Channels: none\n"); diff --git a/qapi-schema.json b/qapi-schema.json index 0d11d6e..72c0080 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -654,6 +654,11 @@ # 'spice' uses SASL or direct TLS authentication, depending on command # line options # +# @mouse-mode: #optional current server mouse mode if spice server is new +# enough and exposes this information. +# 'client' if client side +# 'server' if server side +# # @channels: a list of @SpiceChannel for each active spice channel # # Since: 0.14.0 @@ -661,7 +666,7 @@ { 'type': 'SpiceInfo', 'data': {'enabled': 'bool', '*host': 'str', '*port': 'int', '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str', - '*channels': ['SpiceChannel']} } + '*mouse-mode': 'str', '*channels': ['SpiceChannel']} } ## # @query-spice diff --git a/ui/spice-core.c b/ui/spice-core.c index a468524..0155dba 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -462,6 +462,11 @@ SpiceInfo *qmp_query_spice(Error **errp) info->tls_port = tls_port; } +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */ + info->has_mouse_mode = true; + info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ? + "server" : "client"); +#endif /* for compatibility with the original command */ info->has_channels = true; info->channels = qmp_query_spice_channels();
Add mouse_mode, either server or mouse, to qmp and hmp commands, based on spice_server_is_server_mouse added in spice-server 0.10.3. Signed-off-by: Alon Levy <alevy@redhat.com> --- hmp.c | 2 ++ qapi-schema.json | 7 ++++++- ui/spice-core.c | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-)