https://bugzilla.redhat.com/show_bug.cgi?id=1130390 The listen address is not mandatory for <interface type='server'> but when it's not specified, we've been formatting it as: -netdev socket,listen=(null):5558,id=hostnet0 which failed with: Device 'socket' could not be initialized Omit the address completely and only format the port in the listen attribute. --- docs/schemas/domaincommon.rng | 10 ++++++++++ src/qemu/qemu_command.c | 3 ++- tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args | 4 +++- tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml | 5 +++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index c428ddf..9d6c1ee 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -2207,6 +2207,16 @@ <empty/> </element> </optional> + <optional> + <element name="model"> + <attribute name="type"> + <data type="string"> + <param name='pattern'>[a-zA-Z0-9\-_]+</param> + </data> + </attribute> + <empty/> + </element> + </optional> </interleave> </group> <group> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index c041ee7..7e1f3d0 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4576,7 +4576,8 @@ qemuBuildHostNetStr(virDomainNetDefPtr net, case VIR_DOMAIN_NET_TYPE_SERVER: virBufferAsprintf(&buf, "socket%clisten=%s:%d", type_sep, - net->data.socket.address, + net->data.socket.address ? net->data.socket.address + : "", net->data.socket.port); type_sep = ','; break; diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args index 26daac3..ac43630 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args @@ -7,4 +7,6 @@ pc -m 214 -smp 1 -nographic -nodefaults -monitor unix:/tmp/test-monitor,server,n -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:ee:96:6b,bus=pci.0,addr=0x3 \ -chardev socket,id=charnet1,path=/tmp/vhost1.sock \ -netdev type=vhost-user,id=hostnet1,chardev=charnet1 \ --device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:ee:96:6c,bus=pci.0,addr=0x4 +-device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:ee:96:6c,bus=pci.0,addr=0x4 \ +-netdev socket,listen=:2015,id=hostnet2 \ +-device rtl8139,netdev=hostnet2,id=net2,mac=52:54:00:95:db:c0,bus=pci.0,addr=0x5 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml index e5b6242..fa09157 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.xml @@ -33,6 +33,11 @@ <source type='unix' path='/tmp/vhost1.sock' mode='client'/> <model type='virtio'/> </interface> + <interface type='server'> + <mac address='52:54:00:95:db:c0'/> + <source port='2015'/> + <model type='rtl8139'/> + </interface> <memballoon model='none'/> </devices> </domain> -- 2.0.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list