From 54e4328295d0bd2859bcae77379b792dfe2012ec Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 14 May 2020 12:02:55 +0200 Subject: [PATCH] qemuBuildHostNetStr: Stop using 'ipv6-net' convenience argument In qemu the argument of 'ipv6-net' is split up into 'ipv6-prefix' and 'ipv6-prefixlen'. Additionally now that 'netdev_add' was qapified, only the real properties are allowed. Switch to using them explicitly. Signed-off-by: Peter Krempa Reviewed-by: Eric Blake --- src/qemu/qemu_command.c | 20 ++++++++++---------- tests/qemuxml2argvdata/net-user-addr.args | 3 ++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3d4a6da469..d8c80325f6 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3645,20 +3645,20 @@ qemuBuildHostNetStr(virDomainNetDefPtr net, for (i = 0; i < net->guestIP.nips; i++) { const virNetDevIPAddr *ip = net->guestIP.ips[i]; g_autofree char *addr = NULL; - const char *prefix = ""; if (!(addr = virSocketAddrFormat(&ip->address))) return NULL; - if (VIR_SOCKET_ADDR_IS_FAMILY(&ip->address, AF_INET)) - prefix = "net="; - if (VIR_SOCKET_ADDR_IS_FAMILY(&ip->address, AF_INET6)) - prefix = "ipv6-net="; - - virBufferAsprintf(&buf, "%s%s", prefix, addr); - if (ip->prefix) - virBufferAsprintf(&buf, "/%u", ip->prefix); - virBufferAddChar(&buf, ','); + if (VIR_SOCKET_ADDR_IS_FAMILY(&ip->address, AF_INET)) { + virBufferAsprintf(&buf, "net=%s", addr); + if (ip->prefix) + virBufferAsprintf(&buf, "/%u", ip->prefix); + virBufferAddChar(&buf, ','); + } else if (VIR_SOCKET_ADDR_IS_FAMILY(&ip->address, AF_INET6)) { + virBufferAsprintf(&buf, "ipv6-prefix=%s,", addr); + if (ip->prefix) + virBufferAsprintf(&buf, "ipv6-prefixlen=%u,", ip->prefix); + } } } break; diff --git a/tests/qemuxml2argvdata/net-user-addr.args b/tests/qemuxml2argvdata/net-user-addr.args index 6cc82d9e62..5f1de305e0 100644 --- a/tests/qemuxml2argvdata/net-user-addr.args +++ b/tests/qemuxml2argvdata/net-user-addr.args @@ -27,6 +27,7 @@ server,nowait \ -usb \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ --netdev user,net=172.17.2.0/24,ipv6-net=2001:db8:ac10:fd01::/64,id=hostnet0 \ +-netdev user,net=172.17.2.0/24,ipv6-prefix=2001:db8:ac10:fd01::,\ +ipv6-prefixlen=64,id=hostnet0 \ -device rtl8139,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\ addr=0x3 -- GitLab