Set SO_REUSEADDR before calling bind().

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1783 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
pbrook 2006-03-11 20:48:36 +00:00
parent f5ba07d399
commit b55669bf57

View File

@ -573,6 +573,7 @@ solisten(port, laddr, lport, flags)
addr.sin_port = port; addr.sin_port = port;
if (((s = socket(AF_INET,SOCK_STREAM,0)) < 0) || 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) || (bind(s,(struct sockaddr *)&addr, sizeof(addr)) < 0) ||
(listen(s,1) < 0)) { (listen(s,1) < 0)) {
int tmperrno = errno; /* Don't clobber the real reason we failed */ int tmperrno = errno; /* Don't clobber the real reason we failed */
@ -587,7 +588,6 @@ solisten(port, laddr, lport, flags)
#endif #endif
return NULL; return NULL;
} }
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int)); setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int));
getsockname(s,(struct sockaddr *)&addr,&addrlen); getsockname(s,(struct sockaddr *)&addr,&addrlen);