summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2015-02-22 20:42:12 +0100
committerAttila Molnar <attilamolnar@hush.com>2015-02-22 20:42:12 +0100
commit71f93ea1b3e5091620dd3a3faa04389447272223 (patch)
tree60f10499114fd175a9113bdb201cf86d65b2f91d
parentbdefe32944c2fa2d27dd00ba6eec8863d72d2dbd (diff)
parent76608ff23d515fbf5fcdbdc17b7f261339b2a276 (diff)
Merge pull request #916 from ShutterQuick/master+kickrejoinbound
Advertise m_kicknorejoin's upper bound. Closes #913
-rw-r--r--src/modules/m_kicknorejoin.cpp10
-rw-r--r--src/modules/m_spanningtree/capab.cpp5
2 files changed, 13 insertions, 2 deletions
diff --git a/src/modules/m_kicknorejoin.cpp b/src/modules/m_kicknorejoin.cpp
index ebe2d45c9..b8a776667 100644
--- a/src/modules/m_kicknorejoin.cpp
+++ b/src/modules/m_kicknorejoin.cpp
@@ -83,10 +83,11 @@ class KickRejoinData
*/
class KickRejoin : public ParamMode<KickRejoin, SimpleExtItem<KickRejoinData> >
{
- static const unsigned int max = 60;
+ const unsigned int max;
public:
KickRejoin(Module* Creator)
: ParamMode<KickRejoin, SimpleExtItem<KickRejoinData> >(Creator, "kicknorejoin", 'J')
+ , max(60)
{
}
@@ -107,6 +108,11 @@ class KickRejoin : public ParamMode<KickRejoin, SimpleExtItem<KickRejoinData> >
{
out.append(ConvToStr(krd->delay));
}
+
+ std::string GetModuleSettings() const
+ {
+ return ConvToStr(max);
+ }
};
class ModuleKickNoRejoin : public Module
@@ -147,7 +153,7 @@ public:
Version GetVersion() CXX11_OVERRIDE
{
- return Version("Channel mode to delay rejoin after kick", VF_VENDOR);
+ return Version("Channel mode to delay rejoin after kick", VF_VENDOR | VF_COMMON, kr.GetModuleSettings());
}
};
diff --git a/src/modules/m_spanningtree/capab.cpp b/src/modules/m_spanningtree/capab.cpp
index 047808c29..9035d89c9 100644
--- a/src/modules/m_spanningtree/capab.cpp
+++ b/src/modules/m_spanningtree/capab.cpp
@@ -33,6 +33,11 @@ std::string TreeSocket::MyModules(int filter)
std::string capabilities;
for (ModuleManager::ModuleMap::const_iterator i = modlist.begin(); i != modlist.end(); ++i)
{
+ // 2.2 advertises its settings for the benefit of services
+ // 2.0 would bork on this
+ if (proto_version < 1205 && i->second->ModuleSourceFile == "m_kicknorejoin.so")
+ continue;
+
Version v = i->second->GetVersion();
if (!(v.Flags & filter))
continue;