X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreesocket2.cpp;h=04b850755020eebfdc0f87d820c62db5ac1e27b5;hb=1e96bca9b075aebec490e6892ef2da2a3048ba12;hp=1f98f78196277bc1491dddbb8a1745a373c91972;hpb=3ccae741b8c60acc2d95f2dc54d7e69014090807;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp index 1f98f7819..04b850755 100644 --- a/src/modules/m_spanningtree/treesocket2.cpp +++ b/src/modules/m_spanningtree/treesocket2.cpp @@ -220,10 +220,20 @@ User* TreeSocket::FindSource(const std::string& prefix, const std::string& comma if (prefix.empty()) return MyRoot->ServerUser; - // If the prefix string is a uuid or a sid FindUUID() returns the appropriate User object - User* who = ServerInstance->FindUUID(prefix); - if (who) - return who; + if (prefix.size() == 3) + { + // Prefix looks like a sid + TreeServer* server = Utils->FindServerID(prefix); + if (server) + return server->ServerUser; + } + else + { + // If the prefix string is a uuid FindUUID() returns the appropriate User object + User* user = ServerInstance->FindUUID(prefix); + if (user) + return user; + } // Some implementations wrongly send a server name as prefix occasionally, handle that too for now TreeServer* const server = Utils->FindServer(prefix); @@ -243,9 +253,9 @@ User* TreeSocket::FindSource(const std::string& prefix, const std::string& comma * command came from a server to avoid desync. */ - who = ServerInstance->FindUUID(prefix.substr(0, 3)); - if (who) - return who; + TreeServer* const usersserver = Utils->FindServerID(prefix.substr(0, 3)); + if (usersserver) + return usersserver->ServerUser; return this->MyRoot->ServerUser; } @@ -306,6 +316,11 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, this->Error(params); return; } + else if (command == "BURST") + { + // This is sent even when there is no need for it, drop it here for now + return; + } throw ProtocolException("Unknown command"); }