diff --git a/HttpServer.cpp b/HttpServer.cpp index 80ba4595..6a18fd9d 100644 --- a/HttpServer.cpp +++ b/HttpServer.cpp @@ -59,7 +59,7 @@ bool HttpServer::init ( short port, //m_maxOpenSockets = 1000000; //well, not infinite - m_maxOpenSockets = g_conf.m_httpMaxSockets; + //m_maxOpenSockets = g_conf.m_httpMaxSockets; m_uncompressedBytes = m_bytesDownloaded = 1; @@ -79,7 +79,7 @@ bool HttpServer::init ( short port, getMsgPiece , port , //&g_conf.m_httpMaxSockets ) ) return false; - &m_maxOpenSockets ) ) return false; + &g_conf.m_httpMaxSockets ) ) return false; //g_conf.m_httpMaxReadBufSize , //g_conf.m_httpMaxSendBufSize ) ) return false; // set our secure TcpServer class @@ -424,6 +424,8 @@ bool HttpServer::getDoc ( long ip, // . callback will be called on completion of transaction // . be sure to free "req/reqSize" in callback() somewhere + // MDW: THIS IS RETURNING TRUE SOMEHOW w/o setting g_errno + if ( ! tcp->sendMsg ( ip , port , req , @@ -440,6 +442,7 @@ bool HttpServer::getDoc ( long ip, states[n] = NULL; callbacks[n] = NULL; s_numOutgoingSockets--; + log("http: sendmsg returned true!: %s",mstrerror(g_errno)); return true; } diff --git a/Msg13.cpp b/Msg13.cpp index 5ca48ae4..781b0878 100644 --- a/Msg13.cpp +++ b/Msg13.cpp @@ -787,7 +787,7 @@ void downloadTheDocForReals2 ( Msg13Request *r ) { NULL , r , // state data gotProxyHostReplyWrapper , - 10 )){// 10 sec timeout + 9999999 )){// 9999999 sec timeout // sanity check if ( ! g_errno ) { char *xx=NULL;*xx=0; } // report it @@ -809,7 +809,7 @@ void gotProxyHostReplyWrapper ( void *state , UdpSlot *slot ) { if ( g_errno ) { // note it log("sproxy: got proxy request error: %s",mstrerror(g_errno)); - g_udpServer.sendErrorReply(slot,g_errno); + g_udpServer.sendErrorReply(r->m_udpSlot,g_errno); return; } // @@ -823,7 +823,7 @@ void gotProxyHostReplyWrapper ( void *state , UdpSlot *slot ) { if ( replySize != sizeof(ProxyReply) ) { log("sproxy: bad 54 reply size of %li != %li", replySize,(long)sizeof(ProxyReply)); - g_udpServer.sendErrorReply(slot,g_errno); + g_udpServer.sendErrorReply(r->m_udpSlot,g_errno); return; } diff --git a/TcpServer.cpp b/TcpServer.cpp index 0d8ed599..d572ea9b 100644 --- a/TcpServer.cpp +++ b/TcpServer.cpp @@ -594,6 +594,7 @@ bool TcpServer::sendMsg ( long ip , // . adds socket to array for us and sets the fd non-blocking, etc. s = getNewSocket ( ); // return true if s is NULL and g_errno was set by getNewSocket() + // might set g_errno to EOUTOFSOCKETS if ( ! s ) { mfree ( sendBuf , sendBufSize,"TcpServer"); return true; } // set up the new TcpSocket for connecting s->m_state = state; @@ -764,7 +765,7 @@ TcpSocket *TcpServer::getNewSocket ( ) { long now = getTimeLocal(); static long s_last = 0; static long s_count = 0; - if ( now - s_last < 5 ) + if ( now - s_last < 5 && s_last ) s_count++; else { log("tcp: Out of sockets. Max sockets = %li. " @@ -779,6 +780,8 @@ TcpSocket *TcpServer::getNewSocket ( ) { // send email alert g_pingServer.sendEmailMsg ( &s_lastTime , "out of sockets on https"); + // in case sendEmailMsg resets g_errno somehow + g_errno = EOUTOFSOCKETS; return NULL; } @@ -877,7 +880,7 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) { long now = getTimeLocal(); static long s_last = 0; static long s_count = 0; - if ( now - s_last < 5 ) + if ( now - s_last < 5 && s_last ) s_count++; else { log("tcp: Out of sockets. Max sockets = %li. " @@ -892,6 +895,8 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) { // send email alert g_pingServer.sendEmailMsg ( &s_lastTime , "out of sockets on https"); + // in case sendEmailMsg resets g_errno somehow + g_errno = EOUTOFSOCKETS; return NULL; } // sanity check @@ -903,6 +908,8 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) { // send email alert g_pingServer.sendEmailMsg ( &s_lastTime , "out of sockets on https2"); + // in case sendEmailMsg resets g_errno somehow + g_errno = EOUTOFSOCKETS; return NULL; } // alloc a new TcpSocket @@ -922,6 +929,8 @@ TcpSocket *TcpServer::wrapSocket ( int sd , long niceness , bool isIncoming ) { g_pingServer.sendEmailMsg ( &s_lastTime , "out of sockets on https3"); //sleep(10000); + // in case sendEmailMsg resets g_errno somehow + g_errno = EOUTOFSOCKETS; return NULL; } // save this i guess