]> xenbits.xensource.com Git - xenclient/ioemu.git/commitdiff
Set SO_REUSEADDR before calling bind().
authorpbrook <pbrook>
Sat, 11 Mar 2006 20:48:36 +0000 (20:48 +0000)
committerpbrook <pbrook>
Sat, 11 Mar 2006 20:48:36 +0000 (20:48 +0000)
slirp/socket.c

index 47ed44b937de453f873ab8d1e238d31c3080a698..fbd9e960d7d0d7304ebde7e88aecb45f39c8c6fc 100644 (file)
@@ -573,6 +573,7 @@ solisten(port, laddr, lport, flags)
        addr.sin_port = port;
        
        if (((s = socket(AF_INET,SOCK_STREAM,0)) < 0) ||
+           (setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int)) < 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 @@ solisten(port, laddr, lport, flags)
 #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);