summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/compat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_spanningtree/compat.cpp')
-rw-r--r--src/modules/m_spanningtree/compat.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp
index c14115bed..30b7ba8bb 100644
--- a/src/modules/m_spanningtree/compat.cpp
+++ b/src/modules/m_spanningtree/compat.cpp
@@ -112,6 +112,24 @@ void TreeSocket::WriteLine(std::string line)
line.erase(c, d-c);
}
}
+ else if (command == "FTOPIC")
+ {
+ // Drop channel TS for FTOPIC
+ // :sid FTOPIC #target TS TopicTS ...
+ // A B C D
+ if (b == std::string::npos)
+ return;
+
+ std::string::size_type c = line.find(' ', b + 1);
+ if (c == std::string::npos)
+ return;
+
+ std::string::size_type d = line.find(' ', c + 1);
+ if (d == std::string::npos)
+ return;
+
+ line.erase(c, d-c);
+ }
}
}
}
@@ -142,6 +160,11 @@ bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, std:
// :20D METADATA #channel extname :extdata
return InsertCurrentChannelTS(params);
}
+ else if ((cmd == "FTOPIC") && (params.size() >= 4))
+ {
+ // :20D FTOPIC #channel 100 Attila :topic text
+ return InsertCurrentChannelTS(params);
+ }
return true; // Passthru
}