X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcoremods%2Fcore_whois.cpp;h=bd05029980b2cb1ba106d6b9b10b70af04633a40;hb=a30a0074edac353cb60e134b43fa8ff0ffb67f8b;hp=455260051e78c29ad70872f26a7bf8ae55df1522;hpb=ff5fdd21c161f8fec055fa93f7d460e1e83b9658;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_whois.cpp b/src/coremods/core_whois.cpp index 455260051..bd0502998 100644 --- a/src/coremods/core_whois.cpp +++ b/src/coremods/core_whois.cpp @@ -1,9 +1,17 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2019 Matt Schatz + * Copyright (C) 2018 linuxdaemon + * Copyright (C) 2018 Dylan Frank + * Copyright (C) 2017-2018, 2020 Sadie Powell + * Copyright (C) 2012-2016 Attila Molnar + * Copyright (C) 2012, 2019 Robby + * Copyright (C) 2009 Uli Schlachter * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2008 Thomas Stagner * Copyright (C) 2007 Robin Burchell + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006-2008, 2010 Craig Edwards * * 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 @@ -88,7 +96,7 @@ class CommandWhois : public SplitCommand void SendChanList(WhoisContextImpl& whois); public: - /** If true then all opers are shown with a generic 'is an IRC operator' line rather than the oper type. */ + /** If true then all opers are shown with a generic 'is a server operator' line rather than the oper type. */ bool genericoper; /** How to handle private/secret channels in the WHOIS response. */ @@ -107,7 +115,7 @@ class CommandWhois : public SplitCommand , lineevprov(parent, "event/whoisline") { Penalty = 2; - syntax = "{,}"; + syntax = "[] [,]+"; } /** Handle command. @@ -242,7 +250,7 @@ void CommandWhois::DoWhois(LocalUser* user, User* dest, time_t signon, unsigned if (dest->IsOper()) { if (genericoper) - whois.SendLine(RPL_WHOISOPERATOR, "is an IRC operator"); + whois.SendLine(RPL_WHOISOPERATOR, "is a server operator"); else whois.SendLine(RPL_WHOISOPERATOR, InspIRCd::Format("is %s %s on %s", (strchr("AEIOUaeiou",dest->oper->name[0]) ? "an" : "a"), dest->oper->name.c_str(), ServerInstance->Config->Network.c_str())); } @@ -304,8 +312,8 @@ CmdResult CommandWhois::HandleLocal(LocalUser* user, const Params& parameters) return CMD_SUCCESS; /* - * If 2 paramters are specified (/whois nick nick), ignore the first one like spanningtree - * does, and use the second one, otherwise, use the only paramter. -- djGrrr + * If 2 parameters are specified (/whois nick nick), ignore the first one like spanningtree + * does, and use the second one, otherwise, use the only parameter. -- djGrrr */ if (parameters.size() > 1) userindex = 1; @@ -356,18 +364,20 @@ class CoreModWhois : public Module void ReadConfig(ConfigStatus&) CXX11_OVERRIDE { ConfigTag* tag = ServerInstance->Config->ConfValue("options"); - const std::string splitwhois = tag->getString("splitwhois", "no"); + const std::string splitwhois = tag->getString("splitwhois", "no", 1); + SplitWhoisState newsplitstate; if (stdalgo::string::equalsci(splitwhois, "no")) - cmd.splitwhois = SPLITWHOIS_NONE; + newsplitstate = SPLITWHOIS_NONE; else if (stdalgo::string::equalsci(splitwhois, "split")) - cmd.splitwhois = SPLITWHOIS_SPLIT; + newsplitstate = SPLITWHOIS_SPLIT; else if (stdalgo::string::equalsci(splitwhois, "splitmsg")) - cmd.splitwhois = SPLITWHOIS_SPLITMSG; + newsplitstate = SPLITWHOIS_SPLITMSG; else - throw ModuleException(splitwhois + " is an invalid value, at " + tag->getTagLocation()); + throw ModuleException(splitwhois + " is an invalid value, at " + tag->getTagLocation()); ConfigTag* security = ServerInstance->Config->ConfValue("security"); cmd.genericoper = security->getBool("genericoper"); + cmd.splitwhois = newsplitstate; } Version GetVersion() CXX11_OVERRIDE