summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-03-30 22:42:42 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-03-30 22:42:42 +0000
commitb3d33859b163854926b2e8c4f374e33055b7bad2 (patch)
treeb5b81823a1e7a0e352f59a65e35bbbf12097c7f8
parentd48726ce802019f2e1573ebef7ae9f50a14f0a31 (diff)
Make sure CAPAB always comes before SERVER on either side of the link at all times
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9229 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_spanningtree/capab.cpp4
-rw-r--r--src/modules/m_spanningtree/server.cpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/capab.cpp b/src/modules/m_spanningtree/capab.cpp
index d0ddc989e..aa69e2ee6 100644
--- a/src/modules/m_spanningtree/capab.cpp
+++ b/src/modules/m_spanningtree/capab.cpp
@@ -201,6 +201,7 @@ bool TreeSocket::Capab(const std::deque<std::string> &params)
this->SetTheirChallenge(n->second);
if (!this->GetTheirChallenge().empty() && (this->LinkState == CONNECTING))
{
+ this->SendCapabilities();
this->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+this->MakePass(OutboundPass, this->GetTheirChallenge())+" 0 "+
Instance->Config->GetSID()+" :"+this->Instance->Config->ServerDesc);
}
@@ -209,7 +210,10 @@ bool TreeSocket::Capab(const std::deque<std::string> &params)
{
/* They didnt specify a challenge or we don't have m_sha256.so, we use plaintext */
if (this->LinkState == CONNECTING)
+ {
+ this->SendCapabilities();
this->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+OutboundPass+" 0 "+Instance->Config->GetSID()+" :"+this->Instance->Config->ServerDesc);
+ }
}
if (reason.length())
diff --git a/src/modules/m_spanningtree/server.cpp b/src/modules/m_spanningtree/server.cpp
index d98d73050..5213729a7 100644
--- a/src/modules/m_spanningtree/server.cpp
+++ b/src/modules/m_spanningtree/server.cpp
@@ -238,6 +238,7 @@ bool TreeSocket::Inbound_Server(std::deque<std::string> &params)
// this is good. Send our details: Our server name and description and hopcount of 0,
// along with the sendpass from this block.
+ this->SendCapabilities();
this->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+this->MakePass(x->SendPass, this->GetTheirChallenge())+" 0 "+Instance->Config->GetSID()+" :"+this->Instance->Config->ServerDesc);
// move to the next state, we are now waiting for THEM.
this->LinkState = WAIT_AUTH_2;