From 31b140eba49786851d42ed1181c3f3db00e64f81 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 13 May 2014 11:26:28 +0200 Subject: [PATCH] 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 --- tools/virsh-domain.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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) {