qemu for windows fails to use multicast socket as netdev

Bug #1744009 reported by qihaimou
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Expired
Undecided
Unassigned

Bug Description

My host OS is Windows 7 x64 SP1. I installed qemu for windows from https://qemu.weilnetz.de/w64/.The version is 2.10.1, qemu-w64-setup-20171006.exe. I run qemu with the following command:

qemu-system-x86_64.exe -net nic -net socket,mcast=234.5.5.5:6000 disk1.qcow2

It stopped with error:
bind: Unknown error
qemu-system-x86_64.exe: -net socket,mcast=234.5.5.5:6000: Device 'socket' could not be initialized

Using the -netdev option has the same problem:
qemu-system-x86_64.exe -netdev socket,id=hostnet0,mcast=234.5.5.5:6000 -device e1000,netdev=hostnet0 disk1.qcow2

I tried many versions from https://qemu.weilnetz.de/w64/, but none of them could work.

Revision history for this message
qihaimou (qihaimou) wrote :

When I checked the source code, I think the problem is that on Microsoft Windows bind() can not use a multicast address.

MSDN bind() reference
https://msdn.microsoft.com/en-us/library/windows/desktop/ms737550(v=vs.85).aspx
seems to have indicated the point.

I changed the net_socket_mcast_create() in net/socket.c, make it bind to htonl(INADDR_ANY). After compiling, it seems to work correctly.

Revision history for this message
Thomas Huth (th-huth) wrote :

Have you ever tried to suggest your change as a patch to the qemu-devel mailing list? See:
https://wiki.qemu.org/Contribute/SubmitAPatch

Changed in qemu:
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for QEMU because there has been no activity for 60 days.]

Changed in qemu:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.