From 663a113180ceeab1fe5e86412de3c2afc1e23d4f Mon Sep 17 00:00:00 2001 From: brain Date: Mon, 9 Apr 2007 14:46:39 +0000 Subject: [PATCH] Test code that pretends to send a hashed value if its got a challenge - don't use this, it wont connect git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6768 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/handshaketimer.cpp | 4 ++-- src/modules/m_spanningtree/treesocket.h | 5 +++++ src/modules/m_spanningtree/treesocket1.cpp | 14 ++++++++++---- src/modules/m_spanningtree/treesocket2.cpp | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/modules/m_spanningtree/handshaketimer.cpp b/src/modules/m_spanningtree/handshaketimer.cpp index 57a7eeced..e57141a7c 100644 --- a/src/modules/m_spanningtree/handshaketimer.cpp +++ b/src/modules/m_spanningtree/handshaketimer.cpp @@ -45,7 +45,7 @@ void HandshakeTimer::Tick(time_t TIME) { sock->SendCapabilities(); if (sock->GetLinkState() == CONNECTING) - sock->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+lnk->SendPass+" 0 :"+this->Instance->Config->ServerDesc); + sock->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+sock->MakePass(lnk->SendPass)+" 0 :"+this->Instance->Config->ServerDesc); } else { @@ -54,7 +54,7 @@ void HandshakeTimer::Tick(time_t TIME) InspSocketAttachCertRequest(sock, (Module*)Utils->Creator, sock->GetHook()).Send(); sock->SendCapabilities(); if (sock->GetLinkState() == CONNECTING) - sock->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+lnk->SendPass+" 0 :"+this->Instance->Config->ServerDesc); + sock->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+sock->MakePass(lnk->SendPass)+" 0 :"+this->Instance->Config->ServerDesc); } else { diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index 2fd18b35a..82a066be6 100644 --- a/src/modules/m_spanningtree/treesocket.h +++ b/src/modules/m_spanningtree/treesocket.h @@ -149,6 +149,11 @@ class TreeSocket : public InspSocket */ std::string RandString(unsigned int length); + /** Construct a password, optionally hashed with the other side's + * challenge string + */ + std::string MakePass(const std::string &password); + /** When an outbound connection finishes connecting, we receive * this event, and must send our SERVER string to the other * side. If the other side is happy, as outlined in the server diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index fdf88f071..8ccd83b3a 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -121,6 +121,15 @@ void TreeSocket::SetTheirChallenge(const std::string &c) this->theirchallenge = c; } +std::string TreeSocket::MakePass(const std::string &password) +{ + if ((this->GetOurChallenge() != "") && (this->GetTheirChallenge() != "")) + { + return password + ":" + this->GetTheirChallenge(); + } + return password; +} + /** When an outbound connection finishes connecting, we receive * this event, and must send our SERVER string to the other * side. If the other side is happy, as outlined in the server @@ -145,10 +154,7 @@ bool TreeSocket::OnConnected() else this->SendCapabilities(); /* found who we're supposed to be connecting to, send the neccessary gubbins. */ - /*if (Hook)*/ - Instance->Timers->AddTimer(new HandshakeTimer(Instance, this, &(*x), this->Utils)); - /*else - this->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+x->SendPass+" 0 :"+this->Instance->Config->ServerDesc);*/ + Instance->Timers->AddTimer(new HandshakeTimer(Instance, this, &(*x), this->Utils)); return true; } } diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp index da456603f..1e915cddc 100644 --- a/src/modules/m_spanningtree/treesocket2.cpp +++ b/src/modules/m_spanningtree/treesocket2.cpp @@ -902,7 +902,7 @@ bool TreeSocket::Inbound_Server(std::deque ¶ms) this->InboundDescription = description; // this is good. Send our details: Our server name and description and hopcount of 0, // along with the sendpass from this block. - this->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+x->SendPass+" 0 :"+this->Instance->Config->ServerDesc); + this->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+this->MakePass(x->SendPass)+" 0 :"+this->Instance->Config->ServerDesc); // move to the next state, we are now waiting for THEM. this->LinkState = WAIT_AUTH_2; return true; -- 2.39.5