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 54d8867..d8183ee 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) {
--
1.9.2