From: Peter Krempa Date: Tue, 13 May 2014 09:26:28 +0000 (+0200) Subject: virsh: domain: Fix output of the VNC display number for domdisplay X-Git-Tag: v1.2.5-rc1~76 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31b140eba49786851d42ed1181c3f3db00e64f81;p=thirdparty%2Flibvirt.git virsh: domain: Fix output of the VNC display number for domdisplay Commit 9976c4b9a665f10ab0d2071954efb7f432d194eb broke the output for VNC displays as the port number is converted to VNC display number by subtracting 5900. This yields port 0 for the first display and thus the output would be skipped. Before: $ virsh domdisplay VM vnc://localhost After: $ tools/virsh domdisplay VM vnc://localhost:0 --- diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 54d88672ce..d8183ee580 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -9392,12 +9392,6 @@ cmdDomDisplay(vshControl *ctl, const vshCmd *cmd) passwd = virXPathString(xpath, ctxt); VIR_FREE(xpath); - if (STREQ(scheme[iter], "vnc")) { - /* VNC protocol handlers take their port number as - * 'port' - 5900 */ - port -= 5900; - } - /* Build up the full URI, starting with the scheme */ virBufferAsprintf(&buf, "%s://", scheme[iter]); @@ -9416,8 +9410,15 @@ cmdDomDisplay(vshControl *ctl, const vshCmd *cmd) virBufferAsprintf(&buf, "%s", listen_addr); /* Add the port */ - if (port) + if (port) { + if (STREQ(scheme[iter], "vnc")) { + /* VNC protocol handlers take their port number as + * 'port' - 5900 */ + port -= 5900; + } + virBufferAsprintf(&buf, ":%d", port); + } /* TLS Port */ if (tls_port) {