diff options
| author | Daniel P. Berrange | 2017-02-03 13:06:44 +0100 |
|---|---|---|
| committer | Gerd Hoffmann | 2017-02-08 14:59:37 +0100 |
| commit | 4ee74fa7082a1a521dc5f7a4b61a62b61d1480b2 (patch) | |
| tree | 55c418c2561dfc0ab3d17a4986630338d824296e /ui/vnc.h | |
| parent | ui: fix reporting of VNC auth in query-vnc-servers (diff) | |
| download | qemu-4ee74fa7082a1a521dc5f7a4b61a62b61d1480b2.tar.gz qemu-4ee74fa7082a1a521dc5f7a4b61a62b61d1480b2.tar.xz qemu-4ee74fa7082a1a521dc5f7a4b61a62b61d1480b2.zip | |
ui: refactor VncDisplay to allow multiple listening sockets
Currently there is only a single listener for plain VNC and
a single listener for websockets VNC. This means that if
getaddrinfo() returns multiple IP addresses, for a hostname,
the VNC server can only listen on one of them. This is
just bearable if listening on wildcard interface, or if
the host only has a single network interface to listen on,
but if there are multiple NICs and the VNC server needs
to listen on 2 or more specific IP addresses, it can't be
done.
This refactors the VncDisplay state so that it holds an
array of listening sockets, but still only listens on
one socket.
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 20170203120649.15637-4-berrange@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui/vnc.h')
| -rw-r--r-- | ui/vnc.h | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -146,10 +146,12 @@ struct VncDisplay int num_exclusive; int connections_limit; VncSharePolicy share_policy; - QIOChannelSocket *lsock; - guint lsock_tag; - QIOChannelSocket *lwebsock; - guint lwebsock_tag; + size_t nlsock; + QIOChannelSocket **lsock; + guint *lsock_tag; + size_t nlwebsock; + QIOChannelSocket **lwebsock; + guint *lwebsock_tag; DisplaySurface *ds; DisplayChangeListener dcl; kbd_layout_t *kbd_layout; |
