aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/utils.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-06-07 06:59:23 +0100
committerGravatar Sadie Powell2021-06-07 07:15:39 +0100
commitd7f967bdfc2931771350a459c7eb77fa52f45517 (patch)
tree93597d65440b4e9166e02405cf2b8c7dd8d9d2ca /src/modules/m_spanningtree/utils.cpp
parentRelease v4.0.0 alpha 1. (diff)
parentAdd CI support for Windows. (diff)
Merge branch 'insp3' into master.
Diffstat (limited to 'src/modules/m_spanningtree/utils.cpp')
-rw-r--r--src/modules/m_spanningtree/utils.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp
index 50735dc1f..322488847 100644
--- a/src/modules/m_spanningtree/utils.cpp
+++ b/src/modules/m_spanningtree/utils.cpp
@@ -25,6 +25,7 @@
#include "inspircd.h"
+#include "listmode.h"
#include "main.h"
#include "utils.h"
@@ -381,3 +382,24 @@ std::string SpanningTreeUtilities::BuildLinkString(uint16_t proto, Module* mod)
}
return buffer.str();
}
+
+void SpanningTreeUtilities::SendListLimits(Channel* chan, TreeSocket* sock)
+{
+ std::stringstream buffer;
+ const ModeParser::ListModeList& listmodes = ServerInstance->Modes.GetListModes();
+ for (ModeParser::ListModeList::const_iterator i = listmodes.begin(); i != listmodes.end(); ++i)
+ {
+ ListModeBase* lm = *i;
+ buffer << lm->GetModeChar() << " " << lm->GetLimit(chan) << " ";
+ }
+
+ std::string bufferstr = buffer.str();
+ if (bufferstr.empty())
+ return; // Should never happen.
+
+ bufferstr.erase(bufferstr.end() - 1);
+ if (sock)
+ sock->WriteLine(CommandMetadata::Builder(chan, "maxlist", bufferstr));
+ else
+ CommandMetadata::Builder(chan, "maxlist", bufferstr).Broadcast();
+}