]> git.proxmox.com Git - qemu.git/blobdiff - monitor.c
monitor: fix build breakage with --disable-vnc
[qemu.git] / monitor.c
index 6af6a4d999815cbdb680b5227b38b613cc2a4b65..1b8ba2c1fa284175262d6017d3fec083624bdf18 100644 (file)
--- a/monitor.c
+++ b/monitor.c
@@ -56,7 +56,7 @@
 #include "json-streamer.h"
 #include "json-parser.h"
 #include "osdep.h"
-#include "exec-all.h"
+#include "cpu.h"
 #ifdef CONFIG_SIMPLE_TRACE
 #include "trace.h"
 #endif
@@ -1185,6 +1185,40 @@ static int expire_password(Monitor *mon, const QDict *qdict, QObject **ret_data)
     return -1;
 }
 
+static int add_graphics_client(Monitor *mon, const QDict *qdict, QObject **ret_data)
+{
+    const char *protocol  = qdict_get_str(qdict, "protocol");
+    const char *fdname = qdict_get_str(qdict, "fdname");
+    int skipauth = qdict_get_try_bool(qdict, "skipauth", 0);
+    CharDriverState *s;
+
+    if (strcmp(protocol, "spice") == 0) {
+        if (!using_spice) {
+            /* correct one? spice isn't a device ,,, */
+            qerror_report(QERR_DEVICE_NOT_ACTIVE, "spice");
+            return -1;
+        }
+       qerror_report(QERR_ADD_CLIENT_FAILED);
+       return -1;
+#ifdef CONFIG_VNC
+    } else if (strcmp(protocol, "vnc") == 0) {
+       int fd = monitor_get_fd(mon, fdname);
+       vnc_display_add_client(NULL, fd, skipauth);
+       return 0;
+#endif
+    } else if ((s = qemu_chr_find(protocol)) != NULL) {
+       int fd = monitor_get_fd(mon, fdname);
+       if (qemu_chr_add_client(s, fd) < 0) {
+           qerror_report(QERR_ADD_CLIENT_FAILED);
+           return -1;
+       }
+       return 0;
+    }
+
+    qerror_report(QERR_INVALID_PARAMETER, "protocol");
+    return -1;
+}
+
 static int client_migrate_info(Monitor *mon, const QDict *qdict, QObject **ret_data)
 {
     const char *protocol = qdict_get_str(qdict, "protocol");