diff options
author | linuxdaemon <linuxdaemon@snoonet.org> | 2019-03-12 09:48:28 -0500 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2019-03-12 17:14:53 +0000 |
commit | dfb1e0da7823641ad648f9fbd19b43d2e6b0d7ad (patch) | |
tree | 7ef8b5ae60b08765f6e2e04fa43b5a954dbcf87e /src/modules | |
parent | f87b72b76f9ef198bdbbb01f9ca409501666c6a2 (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.cpp | 19 | ||||
-rw-r--r-- | src/modules/m_namesx.cpp | 19 |
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) |