mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
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>
This commit is contained in:
parent
2a7e6857cd
commit
4ee74fa708
2 changed files with 73 additions and 40 deletions
10
ui/vnc.h
10
ui/vnc.h
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue