diff options
author | Attila Molnar <attilamolnar@hush.com> | 2014-06-11 14:30:17 +0200 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2014-06-11 14:30:17 +0200 |
commit | f3ebd00f119f322f2887f88c37d3fce7743d9587 (patch) | |
tree | 980d45bd2d48d1f58c53969e56a979554191a0f0 /src/modules/m_spanningtree/compat.cpp | |
parent | c8f92d97c2cd92a07bbb76b96a67cd089c7e3407 (diff) |
m_spanningtree Send, parse and translate IJOINs with membership ids
Diffstat (limited to 'src/modules/m_spanningtree/compat.cpp')
-rw-r--r-- | src/modules/m_spanningtree/compat.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp index ca9fbfa6a..dc4315cb7 100644 --- a/src/modules/m_spanningtree/compat.cpp +++ b/src/modules/m_spanningtree/compat.cpp @@ -47,11 +47,17 @@ void TreeSocket::WriteLine(const std::string& original_line) if (command == "IJOIN") { // Convert - // :<uid> IJOIN <chan> [<ts> [<flags>]] + // :<uid> IJOIN <chan> <membid> [<ts> [<flags>]] // to // :<sid> FJOIN <chan> <ts> + [<flags>],<uuid> std::string::size_type c = line.find(' ', b + 1); if (c == std::string::npos) + return; + + std::string::size_type d = line.find(' ', c + 1); + // Erase membership id first + line.erase(c, d-c); + if (d == std::string::npos) { // No TS or modes in the command // :22DAAAAAB IJOIN #chan @@ -66,7 +72,7 @@ void TreeSocket::WriteLine(const std::string& original_line) } else { - std::string::size_type d = line.find(' ', c + 1); + d = line.find(' ', c + 1); if (d == std::string::npos) { // TS present, no modes |