From 320cfcc36374cd247ae1c3b30dab8b9b2e5acd67 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 26 Feb 2006 21:08:32 +0000 Subject: Tweaks to closed socket detection git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3351 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree.cpp | 22 +++++++++++----------- src/socket.cpp | 6 +----- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index 732829ed8..7086ce1da 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -1210,7 +1210,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE Z %s %s %lu %lu :%s",sn,i->ipaddr,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1219,7 +1219,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE Q %s %s %lu %lu :%s",sn,i->nick,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1228,7 +1228,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE G %s %s %lu %lu :%s",sn,i->hostmask,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1237,7 +1237,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE E %s %s %lu %lu :%s",sn,i->hostmask,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1246,7 +1246,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE Z %s %s %lu %lu :%s",sn,i->ipaddr,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1255,7 +1255,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE Q %s %s %lu %lu :%s",sn,i->nick,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1264,7 +1264,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE G %s %s %lu %lu :%s",sn,i->hostmask,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1273,7 +1273,7 @@ class TreeSocket : public InspSocket { snprintf(data,MAXBUF,":%s ADDLINE E %s %s %lu %lu :%s",sn,i->hostmask,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1386,7 +1386,6 @@ class TreeSocket : public InspSocket */ virtual bool OnDataReady() { - log(DEBUG,"TreeSocket::OnDataReady"); int iterations = 0; char* data = this->Read(); /* Check that the data read is a valid pointer and it has some content */ @@ -1400,7 +1399,7 @@ class TreeSocket : public InspSocket while (in_buffer.find("\n") != std::string::npos) { iterations++; - if ((iterations % 20) == 0) + if ((iterations % 10) == 0) { ServerInstance->DoOneIteration(false); } @@ -1438,11 +1437,12 @@ class TreeSocket : public InspSocket return false; } } + return true; } /* EAGAIN returns an empty but non-NULL string, so this * evaluates to TRUE for EAGAIN but to FALSE for EOF. */ - return (data != NULL); + return false; } int WriteLine(std::string line) diff --git a/src/socket.cpp b/src/socket.cpp index 949cc44ac..fe6516bb5 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -303,8 +303,6 @@ bool InspSocket::Poll() int incoming = -1; bool n = true; - log(DEBUG,"InspSocket::Poll()"); - switch (this->state) { case I_RESOLVING: @@ -312,7 +310,7 @@ bool InspSocket::Poll() return this->DoResolve(); break; case I_CONNECTING: - log(DEBUG,"State = I_CONNECTED"); + log(DEBUG,"State = I_CONNECTING"); this->SetState(I_CONNECTED); /* Our socket was in write-state, so delete it and re-add it * in read-state. @@ -329,9 +327,7 @@ 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