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
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  Edit
Everyone can see this information.

Other bug subscribers