summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/m_spanningtree/treesocket2.cpp28
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())
{