From e9b85e303c7e978161d189db6ac459f7d9fa14ca Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 15 Feb 2006 21:33:21 +0000 Subject: Test for bug reported by TDC git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3227 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/socket.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/socket.cpp b/src/socket.cpp index 7e36d8fb8..da179d9c8 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -102,7 +102,7 @@ InspSocket::InspSocket(std::string host, int port, bool listening, unsigned long /* Its not an ip, spawn the resolver */ this->dns.SetNS(std::string(Config->DNSServer)); this->dns.ForwardLookupWithFD(host,fd); - timeout_end = time(NULL)+maxtime; + timeout_end = time(NULL) + maxtime; timeout = false; this->state = I_RESOLVING; socket_ref[this->fd] = this; @@ -111,6 +111,7 @@ InspSocket::InspSocket(std::string host, int port, bool listening, unsigned long { log(DEBUG,"No need to resolve %s",this->host.c_str()); this->IP = host; + timeout_end = time(NULL) + maxtime; this->DoConnect(); } } @@ -271,6 +272,7 @@ bool InspSocket::Timeout(time_t current) { if (((this->state == I_RESOLVING) || (this->state == I_CONNECTING)) && (current > timeout_end)) { + log(DEBUG,"Timed out, current=%lu timeout_end=%lu"); // for non-listening sockets, the timeout can occur // which causes termination of the connection after // the given number of seconds without a successful @@ -289,6 +291,8 @@ bool InspSocket::Poll() { int incoming = -1; bool n = true; + + log(DEBUG,"InspSocket::Poll()"); switch (this->state) { @@ -314,7 +318,9 @@ bool InspSocket::Poll() return true; break; case I_CONNECTED: + log(DEBUG,"State = I_CONNECTED"); n = this->OnDataReady(); + log(DEBUG,"State return: %d",(int)n); /* Flush any pending, but not till after theyre done with the event * so there are less write calls involved. */ this->FlushWriteBuffer(); -- cgit v1.2.3