From dc2703b066bca07dcbe032c07b70e6c0270d5a0a Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 31 Aug 2008 15:54:43 +0000 Subject: Two fixes: Ignore + when parsing mode string in UID, and dont prepend + if we already have one, to prevent '++' git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10368 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/uid.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/modules/m_spanningtree/uid.cpp') diff --git a/src/modules/m_spanningtree/uid.cpp b/src/modules/m_spanningtree/uid.cpp index b0f5df21d..14c4e2bb5 100644 --- a/src/modules/m_spanningtree/uid.cpp +++ b/src/modules/m_spanningtree/uid.cpp @@ -114,6 +114,9 @@ bool TreeSocket::ParseUID(const std::string &source, std::deque &pa unsigned int paramptr = 9; for (std::string::iterator v = params[8].begin(); v != params[8].end(); v++) { + if (*v == '+') + continue; + /* For each mode thats set, increase counter */ ModeHandler* mh = Instance->Modes->FindMode(*v, MODETYPE_USER); @@ -138,7 +141,8 @@ bool TreeSocket::ParseUID(const std::string &source, std::deque &pa //_new->ProcessNoticeMasks(params[7].c_str()); /* now we've done with modes processing, put the + back for remote servers */ - params[8] = "+" + params[8]; + if (params[8][0] != '+') + params[8] = "+" + params[8]; #ifdef SUPPORT_IP6LINKS if (params[6].find_first_of(":") != std::string::npos) -- cgit v1.2.3