summaryrefslogtreecommitdiff
path: root/src/connection.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-06-01 13:23:19 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-06-01 13:23:19 +0000
commit32cf50f38c39fb101b6ba0bc27316ac26f145a58 (patch)
treed43c4d502a623130a6692878b24d876e710035f4 /src/connection.cpp
parent06c7bb33fe210ad7ebf71c0028ca7b31707652b0 (diff)
Many linking fixes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1578 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/connection.cpp')
-rw-r--r--src/connection.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/connection.cpp b/src/connection.cpp
index 4bd237e37..4db485a14 100644
--- a/src/connection.cpp
+++ b/src/connection.cpp
@@ -220,7 +220,7 @@ void ircd_connector::ResetPing()
// send AS MUCH OF THE USERS SENDQ as we are able to (might not be all of it)
bool ircd_connector::FlushWriteBuf()
{
- if (this->GetState() == STATE_NOAUTH_OUTBOUND)
+ if ((this->GetState() == STATE_NOAUTH_OUTBOUND) || (this->GetState() == STATE_COOKIE_OUTBOUND))
{
// if the outbound socket hasnt connected yet... return true and don't
// actually do anything until it IS connected. This should probably
@@ -233,6 +233,19 @@ bool ircd_connector::FlushWriteBuf()
return true;
// this falls through and sends any waiting data, which can put it into the
// connected state.
+ if (this->GetState() == STATE_COOKIE_OUTBOUND)
+ {
+ log(DEBUG,"Moving cookie_outbound into STATE_CONNECTED state");
+ this->SetState(STATE_CONNECTED);
+ for (int t = 0; t < 32; t++) if (me[t]) for (unsigned int l = 0; l < me[t]->connectors.size(); l++)
+ {
+ if (me[t]->connectors[l].GetDescription() != "")
+ {
+ snprintf(buffer,MAXBUF,"%s = %s :%s\r\n",CreateSum().c_str(),me[t]->connectors[l].GetServerName().c_str(),me[t]->connectors[l].GetDescription().c_str());
+ this->AddWriteBuf(buffer);
+ }
+ }
+ }
}
if ((sendq.length()) && (this->GetState() != STATE_DISCONNECTED))
{