aboutsummaryrefslogtreecommitdiff
path: root/src/listmode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/listmode.cpp')
-rw-r--r--src/listmode.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/listmode.cpp b/src/listmode.cpp
index 48fe52b80..e224f1168 100644
--- a/src/listmode.cpp
+++ b/src/listmode.cpp
@@ -22,11 +22,10 @@
#include "inspircd.h"
#include "listmode.h"
-ListModeBase::ListModeBase(Module* Creator, const std::string& Name, char modechar, unsigned int lnum, unsigned int eolnum, bool autotidy)
+ListModeBase::ListModeBase(Module* Creator, const std::string& Name, char modechar, unsigned int lnum, unsigned int eolnum)
: ModeHandler(Creator, Name, modechar, PARAM_ALWAYS, MODETYPE_CHANNEL, MC_LIST)
, listnumeric(lnum)
, endoflistnumeric(eolnum)
- , tidy(autotidy)
, extItem(Creator, "list-mode-" + name, ExtensionType::CHANNEL)
{
list = true;
@@ -156,8 +155,10 @@ ModeAction ListModeBase::OnModeChange(User* source, User*, Channel* channel, Mod
if (change.adding)
{
- if (tidy)
- ModeParser::CleanMask(change.param);
+ // Try to canonicalise the parameter locally.
+ LocalUser* lsource = IS_LOCAL(source);
+ if (lsource && !CanonicalizeParam(lsource, channel, change.param))
+ return MODEACTION_DENY;
// If there was no list
if (!cd)
@@ -230,6 +231,11 @@ ModeAction ListModeBase::OnModeChange(User* source, User*, Channel* channel, Mod
}
}
+bool ListModeBase::CanonicalizeParam(LocalUser* user, Channel* channel, std::string& parameter)
+{
+ return true;
+}
+
bool ListModeBase::ValidateParam(User* user, Channel* channel, const std::string& parameter)
{
return true;