vnc: fix "info vnc" with "-vnc ..., reverse=on"
When reverse connection is in use, there is no active VNC server socket. Because of this, getsockopt(-1, ...) is attempted and the following error is emitted: $ socat TCP-LISTEN:5900,reuseaddr TCP-LISTEN:5901,reuseaddr & $ x86_64-softmmu/qemu-system-x86_64 -vnc localhost:5900,reverse -monitor stdio QEMU 1.2.50 monitor - type 'help' for more information (qemu) info vnc An undefined error has occurred Because however the host, family, service and auth fields are optional, we can just exit if there is no active server socket. $ x86_64-softmmu/qemu-system-x86_64 -vnc localhost:5900,reverse -monitor stdio QEMU 1.2.50 monitor - type 'help' for more information (qemu) info vnc Server: Client: address: 127.0.0.1:5900 x509_dname: none username: none Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
2f5368017f
commit
417b0b8890
4
ui/vnc.c
4
ui/vnc.c
|
@ -372,6 +372,10 @@ VncInfo *qmp_query_vnc(Error **errp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vnc_display->lsock == -1) {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
if (getsockname(vnc_display->lsock, (struct sockaddr *)&sa,
|
if (getsockname(vnc_display->lsock, (struct sockaddr *)&sa,
|
||||||
&salen) == -1) {
|
&salen) == -1) {
|
||||||
error_set(errp, QERR_UNDEFINED_ERROR);
|
error_set(errp, QERR_UNDEFINED_ERROR);
|
||||||
|
|
Loading…
Reference in a new issue