diff --git a/engine/common/net_wins.c b/engine/common/net_wins.c index 324b27e8c..64a1432b2 100644 --- a/engine/common/net_wins.c +++ b/engine/common/net_wins.c @@ -1426,10 +1426,12 @@ qboolean NET_GetPacket (netsrc_t netsrc) if (newsock != INVALID_SOCKET) { int _true = true; + ioctlsocket(newsock, FIONBIO, &_true); setsockopt(newsock, IPPROTO_TCP, TCP_NODELAY, (char *)&_true, sizeof(_true)); + st = Z_Malloc(sizeof(svtcpstream_t)); st->waitingforprotocolconfirmation = true; st->next = svs.tcpstreams; diff --git a/engine/http/ftpclient.c b/engine/http/ftpclient.c index 980e6deec..307d9fce5 100644 --- a/engine/http/ftpclient.c +++ b/engine/http/ftpclient.c @@ -377,6 +377,7 @@ iwboolean FTP_ClientConnThink (FTPclientconn_t *con) //true to kill con if (temp != INVALID_SOCKET) { + ioctlsocket(temp, FIONBIO, &_true); con->stage = 6; if (con->type == ftp_getting) { diff --git a/engine/http/ftpserver.c b/engine/http/ftpserver.c index 0b4a50b89..24ee72d2f 100644 --- a/engine/http/ftpserver.c +++ b/engine/http/ftpserver.c @@ -506,6 +506,7 @@ iwboolean FTP_ServerThinkForConnection(FTPclient_t *cl) } if (cl->dataislisten) //accept a connect. { + int _true = true; int temp; struct sockaddr_in adr; int adrlen = sizeof(adr); @@ -519,6 +520,8 @@ iwboolean FTP_ServerThinkForConnection(FTPclient_t *cl) QueueMessageva (cl, "425 Your client connected too slowly - %i.\r\n", qerrno); continue; } + else + ioctlsocket(cl->datasock, FIONBIO, &_true); } if (cl->datasock == INVALID_SOCKET) { @@ -571,6 +574,8 @@ iwboolean FTP_ServerThinkForConnection(FTPclient_t *cl) QueueMessageva (cl, "425 Your client connected too slowly - %i.\r\n", qerrno); continue; } + else + ioctlsocket(cl->datasock, FIONBIO, &_true); } if (cl->datasock == INVALID_SOCKET) { @@ -647,6 +652,8 @@ iwboolean FTP_ServerThinkForConnection(FTPclient_t *cl) QueueMessageva (cl, "425 Your client connected too slowly - %i.\r\n", qerrno); continue; } + else + ioctlsocket(cl->datasock, FIONBIO, &_true); } if (cl->datasock == INVALID_SOCKET) { @@ -815,7 +822,6 @@ unsigned long _true = true; return false; } - //is this needed? if (ioctlsocket (clientsock, FIONBIO, &_true) == -1) { IWebPrintf ("FTP_ServerRun: blocking error: %s\n", strerror(qerrno)); diff --git a/engine/http/httpserver.c b/engine/http/httpserver.c index f1d6c08e3..1ed5a1261 100644 --- a/engine/http/httpserver.c +++ b/engine/http/httpserver.c @@ -482,6 +482,7 @@ qboolean HTTP_ServerPoll(qboolean httpserverwanted) //loop while true struct sockaddr_in from; int fromlen; int clientsock; + int _true = true; HTTP_active_connections_t *cl; @@ -522,6 +523,8 @@ qboolean HTTP_ServerPoll(qboolean httpserverwanted) //loop while true return false; } + ioctlsocket(clientsock, FIONBIO, &_true); + cl = IWebMalloc(sizeof(HTTP_active_connections_t)); cl->datasock = clientsock; diff --git a/engine/server/sv_mvd.c b/engine/server/sv_mvd.c index 487304ec4..6bc95c464 100644 --- a/engine/server/sv_mvd.c +++ b/engine/server/sv_mvd.c @@ -2372,6 +2372,7 @@ void SV_MVDStream_Poll(void) { static int listensocket=INVALID_SOCKET; static int listenport; + int _true = true; int client; netadr_t na; @@ -2420,6 +2421,8 @@ void SV_MVDStream_Poll(void) if (client == INVALID_SOCKET) return; + ioctlsocket(client, FIONBIO, &_true); + if (qtv_maxstreams.value > 0) { count = 0;