qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Set SO_REUSEADDR at the right time


From: Nickolai Zeldovich
Subject: [Qemu-devel] Set SO_REUSEADDR at the right time
Date: Mon, 16 Jan 2006 16:03:32 -0800 (PST)

It looks like qemu (at least version 0.7.2, which is what I'm running
here) doesn't set SO_REUSEADDR before calling bind(), which makes that
fairly useless.  This obvious patch moves up setting SO_REUSEADDR to the
right place, just before bind().

Apologies if this is already fixed in 0.8.0.

-- kolya

--- slirp/socket.c.orig 2006-01-16 15:54:40.993024000 -0800
+++ slirp/socket.c      2006-01-16 15:55:06.049849000 -0800
@@ -573,6 +573,7 @@
        addr.sin_port = port;

        if (((s = socket(AF_INET,SOCK_STREAM,0)) < 0) ||
+           (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) ||
            (bind(s,(struct sockaddr *)&addr, sizeof(addr)) < 0) ||
            (listen(s,1) < 0)) {
                int tmperrno = errno; /* Don't clobber the real reason we 
failed */
@@ -587,7 +588,6 @@
 #endif
                return NULL;
        }
-       setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
        setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int));

        getsockname(s,(struct sockaddr *)&addr,&addrlen);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]