From: Shawn Smith Date: Mon, 26 May 2014 07:18:55 +0000 (-0400) Subject: Removed config option for +L redirect. X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=ecb7891090387accc01d01afc7e2d722fd02889a;p=user%2Fhenk%2Fcode%2Finspircd.git Removed config option for +L redirect. Closes #466. --- diff --git a/docs/conf/modules.conf.example b/docs/conf/modules.conf.example index b2d759ff8..e5fbab7e0 100644 --- a/docs/conf/modules.conf.example +++ b/docs/conf/modules.conf.example @@ -1517,17 +1517,10 @@ # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Redirect module: Adds channel redirection mode +L. # -# Optional: to add usermode +L to stop forced # -# redirection and instead print an error. # -# # -# Note: You can not update this with a simple rehash, it requires # -# reloading the module for it to take effect. # -# This also breaks linking to servers that do not have the option. # -# This defaults to false for the 2.0 version, it will be enabled in # -# all the future versions. # +# Redirect module: Adds channel mode +L which redirects users to # +# another channel when the channel has reached its user limit and # +# user mode +L which stops redirection. # # -# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Regular expression provider for glob or wildcard (?/*) matching. diff --git a/src/modules/m_redirect.cpp b/src/modules/m_redirect.cpp index 479dd6d0f..b3dc6e94d 100644 --- a/src/modules/m_redirect.cpp +++ b/src/modules/m_redirect.cpp @@ -72,39 +72,20 @@ class Redirect : public ParamMode } }; -/** Handles usermode +L to stop forced redirection and print an error. -*/ -class AntiRedirect : public SimpleUserModeHandler -{ - public: - AntiRedirect(Module* Creator) : SimpleUserModeHandler(Creator, "antiredirect", 'L') - { - if (!ServerInstance->Config->ConfValue("redirect")->getBool("antiredirect")) - DisableAutoRegister(); - } -}; - class ModuleRedirect : public Module { Redirect re; - AntiRedirect re_u; + SimpleUserModeHandler antiredirectmode; ChanModeReference limitmode; - bool UseUsermode; public: ModuleRedirect() : re(this) - , re_u(this) + , antiredirectmode(this, "antiredirect", 'L') , limitmode(this, "limit") { } - void init() CXX11_OVERRIDE - { - /* Setting this here so it isn't changable by rehasing the config later. */ - UseUsermode = ServerInstance->Config->ConfValue("redirect")->getBool("antiredirect"); - } - ModResult OnUserPreJoin(LocalUser* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven) CXX11_OVERRIDE { if (chan) @@ -122,9 +103,8 @@ class ModuleRedirect : public Module user->WriteNumeric(470, cname, '*', "You may not join this channel. A redirect is set, but you may not be redirected as it is a circular loop."); return MOD_RES_DENY; } - /* We check the bool value here to make sure we have it enabled, if we don't then - usermode +L might be assigned to something else. */ - if (UseUsermode && user->IsModeSet(re_u)) + + if (user->IsModeSet(antiredirectmode)) { user->WriteNumeric(470, cname, channel, "Force redirection stopped."); return MOD_RES_DENY;