[OSKITTCP]

- Set SO_REUSEPORT on new sockets to allow binding to ports shared by sockets which are closed according to upper layers of tcpip but still pending a close in oskittcp (see the BSD try-10-times hack)
- Fill all members of the sockaddr_in struct when fulfilling a query accept request

svn path=/trunk/; revision=52498
This commit is contained in:
Cameron Gutman 2011-07-01 15:08:59 +00:00
parent a45e92a406
commit 7bff316a9a

View file

@ -117,7 +117,7 @@ void OskitDumpBuffer( OSK_PCHAR Data, OSK_UINT Len )
void InitializeSocketFlags(struct socket *so)
{
so->so_state |= SS_NBIO;
so->so_options |= SO_DONTROUTE;
so->so_options |= SO_DONTROUTE | SO_REUSEPORT;
so->so_snd.sb_flags |= SB_SEL;
so->so_rcv.sb_flags |= SB_SEL;
}
@ -382,8 +382,9 @@ int OskitTCPAccept( void *socket,
inp = so ? (struct inpcb *)so->so_pcb : NULL;
if( inp && name ) {
((struct sockaddr_in *)AddrOut)->sin_addr.s_addr =
inp->inp_faddr.s_addr;
((struct sockaddr_in *)AddrOut)->sin_len = sizeof(struct sockaddr_in);
((struct sockaddr_in *)AddrOut)->sin_family = AF_INET;
((struct sockaddr_in *)AddrOut)->sin_addr = inp->inp_faddr;
((struct sockaddr_in *)AddrOut)->sin_port = inp->inp_fport;
}