diff options
-rw-r--r-- | src/modules/m_spanningtree/treesocket2.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp index 83b8a8720..527f980bb 100644 --- a/src/modules/m_spanningtree/treesocket2.cpp +++ b/src/modules/m_spanningtree/treesocket2.cpp @@ -1414,10 +1414,30 @@ bool TreeSocket::ProcessLine(std::string &line) } else { - // not a special inter-server command. - // Emulate the actual user doing the command, - // this saves us having a huge ugly parser. - userrec* who = this->Instance->FindNick(prefix); + /* + * Not a special s2s command. Emulate the user doing it. + * This saves us having a huge ugly command parser again. + */ + + + /* + * + * First, let's find them by UID. If we don't find, try again + * by nick (to catch legacy commands temporarily). + * If we still don't .. carry on and pray. -- w00t + */ + userrec *who = this->Instance->FindUUID(prefix); + + if (!who) + { + userrec* who = this->Instance->FindNick(prefix); + + if (who) + { + Instance->Log(DEBUG, "Glark! I got a legacy command!"); + } + } + std::string sourceserv = this->myhost; if (!this->InboundServerName.empty()) { |