From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: qemu-devel@nongnu.org
Cc: bleal@redhat.com, wainersm@redhat.com, philmd@redhat.com,
crosa@redhat.com, armbru@redhat.com, eblake@redhat.com,
kraxel@redhat.com, marcandre.lureau@gmail.com,
vsementsov@virtuozzo.com,
"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [PATCH v2 2/3] qapi/ui: introduce change-vnc-listen
Date: Wed, 22 Dec 2021 20:17:30 +0100 [thread overview]
Message-ID: <20211222191731.467706-3-vsementsov@virtuozzo.com> (raw)
In-Reply-To: <20211222191731.467706-1-vsementsov@virtuozzo.com>
Add command that can change addresses where VNC server listens for new
connections. Prior to 6.0 this functionality was available through
'change' qmp command which was deleted.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
docs/about/removed-features.rst | 3 ++-
qapi/ui.json | 19 +++++++++++++++++++
ui/vnc.c | 26 ++++++++++++++++++++++++++
3 files changed, 47 insertions(+), 1 deletion(-)
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index d42c3341de..20e6901a82 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -348,7 +348,8 @@ documentation of ``query-hotpluggable-cpus`` for additional details.
``change`` (removed in 6.0)
'''''''''''''''''''''''''''
-Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.
+Use ``blockdev-change-medium`` or ``change-vnc-password`` or
+``change-vnc-listen`` instead.
``query-events`` (removed in 6.0)
'''''''''''''''''''''''''''''''''
diff --git a/qapi/ui.json b/qapi/ui.json
index 2b4371da37..6a586edff1 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -1334,3 +1334,22 @@
{ 'command': 'display-reload',
'data': 'DisplayReloadOptions',
'boxed' : true }
+
+##
+# @change-vnc-listen:
+#
+# Change set of addresses to listen for connections.
+#
+# @id: vnc display identifier
+#
+# @addresses: list of addresses for listen at
+#
+# @websockets: list of addresses to listen with websockets
+#
+# Since: 7.0
+#
+##
+{ 'command': 'change-vnc-listen',
+ 'data': { 'id': 'str', 'addresses': ['SocketAddress'],
+ '*websockets': ['SocketAddress'] },
+ 'if': 'CONFIG_VNC' }
diff --git a/ui/vnc.c b/ui/vnc.c
index e8430531c0..d7d0d255fc 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -4212,6 +4212,32 @@ fail:
vnc_display_close(vd);
}
+void qmp_change_vnc_listen(const char *id, SocketAddressList *addresses,
+ bool has_websockets, SocketAddressList *websockets,
+ Error **errp)
+{
+ VncDisplay *vd = vnc_display_find(id);
+
+ if (!vd) {
+ error_setg(errp, "VNC display '%s' not active", id);
+ return;
+ }
+
+ if (vd->listener) {
+ qio_net_listener_disconnect(vd->listener);
+ object_unref(OBJECT(vd->listener));
+ }
+ vd->listener = NULL;
+
+ if (vd->wslistener) {
+ qio_net_listener_disconnect(vd->wslistener);
+ object_unref(OBJECT(vd->wslistener));
+ }
+ vd->wslistener = NULL;
+
+ vnc_display_listen(vd, addresses, websockets, errp);
+}
+
void vnc_display_add_client(const char *id, int csock, bool skipauth)
{
VncDisplay *vd = vnc_display_find(id);
--
2.31.1
next prev parent reply other threads:[~2021-12-22 19:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-22 19:17 [PATCH v2 0/3] qapi/ui: add change-vnc-listen Vladimir Sementsov-Ogievskiy
2021-12-22 19:17 ` [PATCH v2 1/3] ui/vnc: refactor arrays of addresses to SocketAddressList Vladimir Sementsov-Ogievskiy
2021-12-22 19:17 ` Vladimir Sementsov-Ogievskiy [this message]
2022-01-04 13:33 ` [PATCH v2 2/3] qapi/ui: introduce change-vnc-listen Daniel P. Berrangé
2021-12-22 19:17 ` [PATCH v2 3/3] avocado/vnc: add test_change_listen Vladimir Sementsov-Ogievskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211222191731.467706-3-vsementsov@virtuozzo.com \
--to=vsementsov@virtuozzo.com \
--cc=armbru@redhat.com \
--cc=bleal@redhat.com \
--cc=crosa@redhat.com \
--cc=eblake@redhat.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@gmail.com \
--cc=marcandre.lureau@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.