On 24/01/11 10:43 AM, Federico G. Schwindt wrote:
On Mon, Jan 24, 2011 at 05:03:23PM +0900, Ryan McBride wrote:
This patch helps a lot. I couldn't even get through an install before.
But please don't remove qemu-old yet: I'm using UDP multicast sockets to
build virtual networks, and they fail on 0.13.0:
$ sudo qemu -m 128 -no-fd-bootchk \
-hda virtual.img -boot n -nographic \
-net nic,vlan=0,model=rtl8139,macaddr=52:54:00:12:34:03 \
-net user -tftp /usr/src/sys/arch/i386/compile/TEST -bootp pxeboot \
-net nic,vlan=1,model=rtl8139,macaddr=52:54:00:23:03:01 \
-net tap,vlan=1,script=no \
-net nic,vlan=3,model=rtl8139,macaddr=52:54:00:23:03:03 \
-net socket,vlan=3,mcast=230.0.0.1:10003
setsockopt(SOL_IP, IP_MULTICAST_LOOP): Invalid argument
qemu: -net socket,vlan=3,mcast=230.0.0.1:10003: Device 'socket' could not be
initialized
Works fine if I comment out the last two lines.
this should fix it. can you try it please?
f.-
Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/qemu/Makefile,v
retrieving revision 1.60
diff -N -u -p Makefile
--- Makefile 19 Jan 2011 16:22:31 -0000 1.60
+++ Makefile 24 Jan 2011 15:41:37 -0000
@@ -6,7 +6,7 @@ ONLY_FOR_ARCHS = i386 amd64 sparc64
COMMENT = multi system emulator
DISTNAME = qemu-0.13.0
-REVISION = 0
+REVISION = 1
CATEGORIES = emulators
HOMEPAGE = http://www.qemu.org/
Index: patches/patch-net_socket_c
===================================================================
RCS file: patches/patch-net_socket_c
diff -N -u -p patches/patch-net_socket_c
--- /dev/null 24 Jan 2011 08:41:37 -0000
+++ patches/patch-net_socket_c 24 Jan 2011 15:41:37 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- net/socket.c.orig Mon Jan 24 15:34:58 2011
++++ net/socket.c Mon Jan 24 15:35:01 2011
+@@ -195,7 +195,7 @@ static int net_socket_mcast_create(struct sockaddr_in
+ /* Force mcast msgs to loopback (eg. several QEMUs in same host */
+ val = 1;
+ ret=setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP,
+- (const char *)&val, sizeof(val));
++ (const char *)&val, sizeof(char));
+ if (ret< 0) {
+ perror("setsockopt(SOL_IP, IP_MULTICAST_LOOP)");
+ goto fail;
Can you also check the rest of socket.c for the other uses of
setsockopt(), specifically
the SO_REUSEADDR cases?
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.