/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2014 Adam <Adam@anope.org>
+ * Copyright (C) 2013, 2015, 2017-2018 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2008 Geoff Bricker <geoff.bricker@gmail.com>
* Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- * Copyright (C) 2007 Robin Burchell <robin+git@viroteck.net>
- * Copyright (C) 2006 Craig Edwards <craigedwards@brainbox.cc>
+ * Copyright (C) 2006, 2010 Craig Edwards <brain@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
Version GetVersion() CXX11_OVERRIDE
{
- return Version("Provides support for hiding oper status with user mode +H", VF_VENDOR);
+ return Version("Adds user mode H (hideoper) which hides the server operator status of a user from unprivileged users.", VF_VENDOR);
}
void OnUserQuit(User* user, const std::string&, const std::string&) CXX11_OVERRIDE
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.GetFieldIndex('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