summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorlinuxdaemon <linuxdaemon@snoonet.org>2019-03-12 09:48:28 -0500
committerPeter Powell <petpow@saberuk.com>2019-03-12 17:14:53 +0000
commitdfb1e0da7823641ad648f9fbd19b43d2e6b0d7ad (patch)
tree7ef8b5ae60b08765f6e2e04fa43b5a954dbcf87e /src/modules
parentf87b72b76f9ef198bdbbb01f9ca409501666c6a2 (diff)
Add Who::Request::GetFlagIndex to get field index
Replaces the dirty logic in m_hideoper and m_namesx
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_hideoper.cpp19
-rw-r--r--src/modules/m_namesx.cpp19
2 files changed, 6 insertions, 32 deletions
diff --git a/src/modules/m_hideoper.cpp b/src/modules/m_hideoper.cpp
index f04d88809..8feb1a852 100644
--- a/src/modules/m_hideoper.cpp
+++ b/src/modules/m_hideoper.cpp
@@ -123,22 +123,9 @@ class ModuleHideOper
if (request.flags['o'])
return MOD_RES_DENY;
- size_t flag_index = 5;
- if (request.whox)
- {
- // We only need to fiddle with the flags if they are present.
- if (!request.whox_fields['f'])
- return MOD_RES_PASSTHRU;
-
- // WHOX makes this a bit tricky as we need to work out the parameter which the flags are in.
- flag_index = 0;
- static const char* flags = "tcuihsn";
- for (size_t i = 0; i < strlen(flags); ++i)
- {
- if (request.whox_fields[flags[i]])
- flag_index += 1;
- }
- }
+ size_t flag_index;
+ if (!request.GetFlagIndex('f', flag_index))
+ return MOD_RES_PASSTHRU;
// hide the "*" that marks the user as an oper from the /WHO line
// #chan ident localhost insp22.test nick H@ :0 Attila
diff --git a/src/modules/m_namesx.cpp b/src/modules/m_namesx.cpp
index defb66b78..1e051e75c 100644
--- a/src/modules/m_namesx.cpp
+++ b/src/modules/m_namesx.cpp
@@ -84,22 +84,9 @@ class ModuleNamesX
if (prefixes.length() <= 1)
return MOD_RES_PASSTHRU;
- size_t flag_index = 5;
- if (request.whox)
- {
- // We only need to fiddle with the flags if they are present.
- if (!request.whox_fields['f'])
- return MOD_RES_PASSTHRU;
-
- // WHOX makes this a bit tricky as we need to work out the parameter which the flags are in.
- flag_index = 0;
- static const char* flags = "tcuihsn";
- for (size_t i = 0; i < strlen(flags); ++i)
- {
- if (request.whox_fields[flags[i]])
- flag_index += 1;
- }
- }
+ size_t flag_index;
+ if (!request.GetFlagIndex('f', flag_index))
+ return MOD_RES_PASSTHRU;
// #chan ident localhost insp22.test nick H@ :0 Attila
if (numeric.GetParams().size() <= flag_index)