From: Michal Privoznik Date: Thu, 1 Jun 2023 08:37:04 +0000 (+0200) Subject: qemu_passt: Format portForward device even without address X-Git-Tag: v9.5.0-rc1~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c7335add9e28637d8a8b5039f487e5dc6a591c2;p=thirdparty%2Flibvirt.git qemu_passt: Format portForward device even without address It's almost like we've anticipated this. Our XML parser and formatter handles @address and @dev attributes of element completely independent of each other. And as of commit 2023_03_29.b10b983~3 passt allows handling these two separately too. All that's left is generate the cmd line according to this new fact. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2210287 Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_passt.c b/src/qemu/qemu_passt.c index 0712ca0b16..99636a3a49 100644 --- a/src/qemu/qemu_passt.c +++ b/src/qemu/qemu_passt.c @@ -221,6 +221,7 @@ qemuPasstStart(virDomainObj *vm, for (i = 0; i < net->nPortForwards; i++) { virDomainNetPortForward *pf = net->portForwards[i]; g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; + bool emitsep = false; if (pf->proto == VIR_DOMAIN_NET_PROTO_TCP) { virCommandAddArg(cmd, "--tcp-ports"); @@ -240,12 +241,16 @@ qemuPasstStart(virDomainObj *vm, return -1; virBufferAddStr(&buf, addr); + emitsep = true; + } - if (pf->dev) - virBufferAsprintf(&buf, "%%%s", pf->dev); + if (pf->dev) { + virBufferAsprintf(&buf, "%%%s", pf->dev); + emitsep = true; + } + if (emitsep) virBufferAddChar(&buf, '/'); - } if (!pf->nRanges) { virBufferAddLit(&buf, "all");