From f3ebd00f119f322f2887f88c37d3fce7743d9587 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Wed, 11 Jun 2014 14:30:17 +0200 Subject: m_spanningtree Send, parse and translate IJOINs with membership ids --- src/modules/m_spanningtree/compat.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/modules/m_spanningtree/compat.cpp') 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 - // : IJOIN [ []] + // : IJOIN [ []] // to // : FJOIN + [], 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 -- cgit v1.2.3