qemu-e2k/ui
Marc-André Lureau 05eb4a25ae qapi: add conditions to VNC type/commands/events on the schema
Add #if defined(CONFIG_VNC) in generated code, and adjust the
qmp/hmp code accordingly.

query-qmp-schema no longer reports the command/events etc as
available when disabled at compile.

Commands made conditional:

* query-vnc, query-vnc-servers, change-vnc-password

  Before the patch, the commands for !CONFIG_VNC are stubs that fail
  like this:

    {"error": {"class": "GenericError",
               "desc": "The feature 'vnc' is not enabled"}}

  Afterwards, they fail like this:

    {"error": {"class": "CommandNotFound",
               "desc": "The command FOO has not been found"}}

  I call that an improvement, because it lets clients distinguish
  between command unavailable (class CommandNotFound) and command failed
  (class GenericError).

Events made conditional:

* VNC_CONNECTED, VNC_INITIALIZED, VNC_DISCONNECTED

HMP change:

* info vnc

  Will return "unknown command: 'info vnc'" when VNC is compiled
  out (same as error for spice when --disable-spice)

Occurrences of VNC (case insensitive) in the schema that aren't
covered by this change:

* add_client

  Command has other uses, including "socket bases character devices".
  These are unconditional as far as I can tell.

* set_password, expire_password

  In theory, these commands could be used for managing any service's
  password.  In practice, they're used for VNC and SPICE services.
  They're documented for "remote display session" / "remote display
  server".

  The service is selected by argument @protocol.  The code special-cases
  protocol-specific argument checking, then calls a protocol-specific
  function to do the work.  If it fails, the command fails with "Could
  not set password".  It does when the service isn't compiled in (it's a
  stub then).

  We could make these commands conditional on the conjunction of all
  services [currently: defined(CONFIG_VNC) || defined(CONFIG_SPICE)],
  but I doubt it's worthwhile.

* change

  Command has other uses, namely changing media.
  This patch inlines a stub; no functional change.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20180703155648.11933-14-marcandre.lureau@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2018-07-03 18:38:54 +02:00
..
keycodemapdb@6b3d716e2b
shader
cocoa.m ui/cocoa: Suppress NSFileHandlingPanelOKButton deprecation warning 2018-05-29 19:39:02 +01:00
console-gl.c
console.c object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence 2018-06-12 12:07:30 +02:00
curses_keys.h
curses.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c
egl-context.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
egl-headless.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
egl-helpers.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
gtk-egl.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
gtk-gl-area.c
gtk.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
input-keymap.c ui: darwin: gtk: Add missing input keymap 2018-06-14 09:52:23 +02:00
input-legacy.c ui: use local path for local headers 2018-06-01 19:20:38 +03:00
input-linux.c
input.c
keymaps.c
keymaps.h
Makefile.objs ui: add x_keymap.o to modules 2018-05-18 09:13:37 +02:00
qemu-pixman.c ui/pixman: add qemu_drm_format_to_pixman() 2018-03-13 11:17:28 -06:00
qemu-x509.h
sdl2-2d.c sdl: Move use of surface pointer below check for whether it is NULL 2018-05-18 09:14:24 +02:00
sdl2-gl.c sdl: Allow OpenGL ES context creation 2018-04-27 11:23:01 +02:00
sdl2-input.c sdl2: drop dead code 2018-04-09 10:40:47 +02:00
sdl2.c sdl2: add checking for NULL 2018-06-26 13:48:49 +02:00
sdl_keysym.h
sdl_zoom_template.h
sdl_zoom.c
sdl_zoom.h
sdl.c
shader.c
spice-core.c Add gles support to egl-helpers, wire up in egl-headless and gtk. 2018-06-26 13:48:49 +02:00
spice-display.c spice: add cursor_dmabuf support 2018-03-12 09:01:56 +01:00
spice-input.c ui: use local path for local headers 2018-06-01 19:20:38 +03:00
trace-events console: minimal hotplug suport 2018-03-13 11:17:29 -06:00
vgafont.h
vnc_keysym.h
vnc-auth-sasl.c
vnc-auth-sasl.h
vnc-auth-vencrypt.c qio: non-default context for TLS handshake 2018-03-06 10:19:07 +00:00
vnc-auth-vencrypt.h
vnc-enc-hextile-template.h
vnc-enc-hextile.c
vnc-enc-tight.c
vnc-enc-tight.h
vnc-enc-zlib.c
vnc-enc-zrle.c rename included C files to foo.inc.c, remove osdep.h 2018-05-11 14:33:40 +02:00
vnc-enc-zrle.h
vnc-enc-zrle.inc.c rename included C files to foo.inc.c, remove osdep.h 2018-05-11 14:33:40 +02:00
vnc-enc-zywrle-template.c
vnc-enc-zywrle.h
vnc-jobs.c vnc: add magic cookie to VncState 2018-05-15 10:36:55 +02:00
vnc-jobs.h
vnc-palette.c
vnc-palette.h
vnc-stubs.c
vnc-ws.c qio: non-default context for TLS handshake 2018-03-06 10:19:07 +00:00
vnc-ws.h
vnc.c vnc: add magic cookie to VncState 2018-05-15 10:36:55 +02:00
vnc.h qapi: add conditions to VNC type/commands/events on the schema 2018-07-03 18:38:54 +02:00
x_keymap.c ui: fix keymap detection under Xwayland 2018-04-10 11:21:54 +02:00
x_keymap.h