New QMP only command to change the VNC server's listening address.
Signed-off-by: Anthony Liguori <[email protected]>
---
qapi-schema.json | 14 ++++++++++++++
qmp-commands.hx | 8 ++++++++
qmp.c | 7 +++++++
3 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/qapi-schema.json b/qapi-schema.json
index 3b2229f..211200a 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -109,3 +109,17 @@
# string. Existing clients are unaffected by executing this command.
##
{ 'command': 'change-vnc-password', 'data': {'password': 'str'} }
+
+##
+# @change-vnc-listen:
+#
+# Change the host that the VNC server listens on.
+#
+# @target: the new server specification to listen on
+#
+# Since: 1.0
+#
+# Notes: At this moment in time, the behavior of existing client connections
+# when this command is executed is undefined.
+##
+{ 'command': 'change-vnc-listen', 'data': {'target': 'str'} }
diff --git a/qmp-commands.hx b/qmp-commands.hx
index d60f72f..c0d0ca3 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -876,6 +876,14 @@ EQMP
},
{
+ .name = "change-vnc-listen",
+ .args_type = "target:s",
+ .params = "target",
+ .help = "set vnc listening address",
+ .mhandler.cmd_new = qmp_marshal_input_change_vnc_listen,
+ },
+
+ {
.name = "set_password",
.args_type = "protocol:s,password:s,connected:s?",
.params = "protocol password action-if-connected",
diff --git a/qmp.c b/qmp.c
index f817a88..73d6172 100644
--- a/qmp.c
+++ b/qmp.c
@@ -35,3 +35,10 @@ void qmp_change_vnc_password(const char *password, Error
**err)
error_set(err, QERR_SET_PASSWD_FAILED);
}
}
+
+void qmp_change_vnc_listen(const char *target, Error **err)
+{
+ if (vnc_display_open(NULL, target) < 0) {
+ error_set(err, QERR_VNC_SERVER_FAILED, target);
+ }
+}
--
1.7.4.1