diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-08-31 15:54:43 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-08-31 15:54:43 +0000 |
commit | dc2703b066bca07dcbe032c07b70e6c0270d5a0a (patch) | |
tree | ea5b48f8cab23a7373c5926a1bc0e6df1285fc66 /src | |
parent | 7e5439b27f0f64d876034de22c18fe306d9e742d (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_spanningtree/uid.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
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<std::string> &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<std::string> &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) |