diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-03-05 01:27:19 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-03-05 01:27:19 +0000 |
commit | 75f147a25e8ecd30ada36c4b0a60c1b8c0e0717f (patch) | |
tree | cae67402ef9fdef28336179604f030fa4dfc169a /src/modules/m_spanningtree/treeserver.cpp | |
parent | 94ed0a3ed403a0b48d91fa8905cc6af4a06324be (diff) |
Fix crash when services (or a misbehaving remote server) introduces a server with duplicate SID
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11171 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/treeserver.cpp')
-rw-r--r-- | src/modules/m_spanningtree/treeserver.cpp | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp index 49d345383..6c3e0f87d 100644 --- a/src/modules/m_spanningtree/treeserver.cpp +++ b/src/modules/m_spanningtree/treeserver.cpp @@ -32,7 +32,7 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance, const st VersionString.clear(); ServerUserCount = ServerOperCount = 0; StartBurst = rtt = 0; - Warned = Hidden = DupError = false; + Warned = Hidden = false; VersionString = ServerInstance->GetVersionString(); SetID(id); } @@ -52,7 +52,7 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance, std::str Route = NULL; Socket = NULL; /* Fix by brain */ StartBurst = rtt = 0; - Warned = Hidden = DupError = false; + Warned = Hidden = false; AddHashEntry(); SetID(id); } @@ -69,7 +69,7 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance, std::str ServerUserCount = ServerOperCount = 0; this->SetNextPingTime(ServerInstance->Time() + Utils->PingFreq); this->SetPingFlag(); - Warned = DupError = false; + Warned = false; StartBurst = rtt = 0; timeval t; @@ -156,16 +156,7 @@ void TreeServer::SetID(const std::string &id) { ServerInstance->Logs->Log("m_spanningtree",DEBUG, "Setting SID to " + id); sid = id; - server_hash::iterator iter = Utils->sidlist.find(sid); - if (iter == Utils->sidlist.end()) - Utils->sidlist[sid] = this; - else - DupError = true; -} - -bool TreeServer::DuplicateID() -{ - return DupError; + Utils->sidlist[sid] = this; } int TreeServer::QuitUsers(const std::string &reason) |