diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-24 17:26:22 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-24 17:26:22 +0000 |
commit | 688f218c733f9e750e53b4afd37b991648dfcd4f (patch) | |
tree | 7ef0072b71e57f560f21ef194d5e04507865f25c | |
parent | 9067d816e5797676004ae50babb262dc4ca702e1 (diff) |
Added code to not try and increment buffer if wrote 0 chars
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1500 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/connection.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/connection.cpp b/src/connection.cpp index 30a961e96..ce5ff3f9f 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -235,19 +235,22 @@ bool ircd_connector::FlushWriteBuf() { char* tb = (char*)this->sendq.c_str(); int n_sent = write(this->fd,tb,this->sendq.length()); - if (n_sent == -1) - { - this->SetWriteError(strerror(errno)); - return false; - } - else - { - log(DEBUG,"Wrote %d chars to socket",n_sent); - // advance the queue - tb += n_sent; - this->sendq = tb; - return true; - } + if (n_sent != 0) + { + if (n_sent == -1) + { + this->SetWriteError(strerror(errno)); + return false; + } + else + { + log(DEBUG,"Wrote %d chars to socket",n_sent); + // advance the queue + tb += n_sent; + this->sendq = tb; + return true; + } + } } return true; } |