Unconditionally format the start of the query ('?') and make delimiters
('&') part of the arguments. At the end we can trim off 1 char from the
end of the buffer unconditionally.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
tools/virsh-domain.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index d0f78798b5..ca1145428f 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -11678,7 +11678,6 @@ virshGetOneDisplay(vshControl *ctl,
g_autofree char *type_conn = NULL;
g_autofree char *sockpath = NULL;
g_autofree char *passwd = NULL;
- bool params = false;
/* Attempt to get the port number for the current graphics scheme */
xpathPort = g_strdup_printf(xpath_fmt, scheme, "@port");
@@ -11781,22 +11780,20 @@ virshGetOneDisplay(vshControl *ctl,
virBufferAsprintf(&buf, ":%d", port);
}
+ /* format the parameters part of the uri */
+ virBufferAddLit(&buf, "?");
+
/* TLS Port */
if (tls_port) {
- virBufferAsprintf(&buf,
- "?tls-port=%d",
- tls_port);
- params = true;
+ virBufferAsprintf(&buf, "tls-port=%d&", tls_port);
}
if (STREQ(scheme, "spice") && passwd) {
- virBufferAsprintf(&buf,
- "%spassword=%s",
- params ? "&" : "?",
- passwd);
- params = true;
+ virBufferAsprintf(&buf, "password=%s&", passwd);
}
+ virBufferTrimLen(&buf, 1);
+
return virBufferContentAndReset(&buf);
}
--
2.35.1