1
0
mirror of https://github.com/anope/anope.git synced 2026-07-07 12:23:13 +02:00

Added notifications directive to operserv block in new config.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1480 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
Naram Qashat cyberbotx@cyberbotx.com
2008-10-26 19:48:13 +00:00
parent 07824df829
commit 66ea87314c
3 changed files with 111 additions and 67 deletions
+33
View File
@@ -752,4 +752,37 @@ operserv
* supported.
*/
disableraw = yes
/*
* Defines what actions should trigger notifications. The list must be separated by spaces.
*
* The notifications are:
* - oper: A user has become an IRC operator
* - bados: A non-IRCop attempts to use OperServ
* - osglobal: OperServ's GLOBAL command was used
* - osmode: OperServ's MODE command was used
* - osclearmodes: OperServ's CLEARMODES command was used
* - oskick: OperServ's KICK command was used
* - osakill: OperServ's AKILL command was used
* - ossgline: OperServ's SGLINE command was used
* - ossqline: OperServ's SQLINE command was used
* - osszline: OperServ's SZLINE command was used
* - osnoop: OperServ's NOOP command was used
* - osjupe: OperServ's JUPE command was used
* - osraw: OperServ's RAW command was used
* - akillexpire: An AKILL has expired
* - sglineexpire: An SGLINE has expired
* - sqlineexpire: An SQLINE has expired
* - szlineexpire: An SZLINE has expired
* - exceptionexpire: A session exception has expired
* - getpass: NickServ's or ChanServ's GETPASS command was used
* - setpass: A Services Admin has set the password of a nickname or channel they do
* not normally have access to
* - forbid: NickServ's or ChanServ's FORBID command was used
* - drop: A Services Admin has dropped a nickname or channel they do not normally
* have access to
*
* This directive is optional, if left blank, there will be no notifications.
*/
notifications="osglobal osmode osclearmodes oskick osakill ossgline ossqline osszline osnoop osjupe osraw getpass setpass forbid drop"
}
+22 -22
View File
@@ -387,28 +387,28 @@ E bool AkillOnAdd;
E bool KillonSGline;
E bool KillonSQline;
E bool DisableRaw;
E int WallOper;
E int WallBadOS;
E int WallOSGlobal;
E int WallOSMode;
E int WallOSClearmodes;
E int WallOSKick;
E int WallOSAkill;
E int WallOSSGLine;
E int WallOSSQLine;
E int WallOSSZLine;
E int WallOSNoOp;
E int WallOSJupe;
E int WallOSRaw;
E int WallAkillExpire;
E int WallSGLineExpire;
E int WallSQLineExpire;
E int WallSZLineExpire;
E int WallExceptionExpire;
E int WallDrop;
E int WallForbid;
E int WallGetpass;
E int WallSetpass;
E bool WallOper;
E bool WallBadOS;
E bool WallOSGlobal;
E bool WallOSMode;
E bool WallOSClearmodes;
E bool WallOSKick;
E bool WallOSAkill;
E bool WallOSSGLine;
E bool WallOSSQLine;
E bool WallOSSZLine;
E bool WallOSNoOp;
E bool WallOSJupe;
E bool WallOSRaw;
E bool WallAkillExpire;
E bool WallSGLineExpire;
E bool WallSQLineExpire;
E bool WallSZLineExpire;
E bool WallExceptionExpire;
E bool WallDrop;
E bool WallForbid;
E bool WallGetpass;
E bool WallSetpass;
E int AddAkiller;
E int parse_directive(Directive * d, char *dir, int ac, char *av[MAXPARAMS], int linenum, int reload, char *s);
+56 -45
View File
@@ -192,28 +192,29 @@ time_t SZLineExpiry;
bool AkillOnAdd;
bool KillonSGline;
bool KillonSQline;
int WallOper;
int WallBadOS;
int WallOSGlobal;
int WallOSMode;
int WallOSClearmodes;
int WallOSKick;
int WallOSAkill;
int WallOSSGLine;
int WallOSSQLine;
int WallOSSZLine;
int WallOSNoOp;
int WallOSJupe;
int WallOSRaw;
int WallAkillExpire;
int WallSGLineExpire;
int WallSQLineExpire;
int WallSZLineExpire;
int WallExceptionExpire;
int WallDrop;
int WallForbid;
int WallGetpass;
int WallSetpass;
static std::string OSNotifications;
bool WallOper;
bool WallBadOS;
bool WallOSGlobal;
bool WallOSMode;
bool WallOSClearmodes;
bool WallOSKick;
bool WallOSAkill;
bool WallOSSGLine;
bool WallOSSQLine;
bool WallOSSZLine;
bool WallOSNoOp;
bool WallOSJupe;
bool WallOSRaw;
bool WallAkillExpire;
bool WallSGLineExpire;
bool WallSQLineExpire;
bool WallSZLineExpire;
bool WallExceptionExpire;
bool WallDrop;
bool WallForbid;
bool WallGetpass;
bool WallSetpass;
int AddAkiller;
int LimitSessions;
@@ -656,6 +657,7 @@ int ServerConfig::Read(bool bail)
{"operserv", "killonsgline", "no", new ValueContainerBool(&KillonSGline), DT_BOOLEAN, NoValidation},
{"operserv", "killonsqline", "no", new ValueContainerBool(&KillonSQline), DT_BOOLEAN, NoValidation},
{"operserv", "disableraw", "no", new ValueContainerBool(&DisableRaw), DT_BOOLEAN, NoValidation},
{"operserv", "notifications", "", new ValueContainerString(&OSNotifications), DT_STRING, NoValidation},
{NULL, NULL, NULL, NULL, DT_NOTHING, NoValidation}
};
/* These tags can occur multiple times, and therefore they have special code to read them
@@ -1335,29 +1337,6 @@ Directive directives[] = {
{"UseTokens", {{PARAM_SET, 0, &UseTokens}}},
{"UseTS6", {{PARAM_SET, 0, &UseTS6}}},
{"UnRestrictSAdmin", {{PARAM_SET, PARAM_RELOAD, &UnRestrictSAdmin}}},
{"WallAkillExpire", {{PARAM_SET, PARAM_RELOAD, &WallAkillExpire}}},
{"WallBadOS", {{PARAM_SET, PARAM_RELOAD, &WallBadOS}}},
{"WallDrop", {{PARAM_SET, PARAM_RELOAD, &WallDrop}}},
{"WallExceptionExpire",
{{PARAM_SET, PARAM_RELOAD, &WallExceptionExpire}}},
{"WallForbid", {{PARAM_SET, PARAM_RELOAD, &WallForbid}}},
{"WallGetpass", {{PARAM_SET, PARAM_RELOAD, &WallGetpass}}},
{"WallOper", {{PARAM_SET, PARAM_RELOAD, &WallOper}}},
{"WallOSAkill", {{PARAM_SET, PARAM_RELOAD, &WallOSAkill}}},
{"WallOSClearmodes", {{PARAM_SET, PARAM_RELOAD, &WallOSClearmodes}}},
{"WallOSGlobal", {{PARAM_SET, PARAM_RELOAD, &WallOSGlobal}}},
{"WallOSKick", {{PARAM_SET, PARAM_RELOAD, &WallOSKick}}},
{"WallOSJupe", {{PARAM_SET, PARAM_RELOAD, &WallOSJupe}}},
{"WallOSMode", {{PARAM_SET, PARAM_RELOAD, &WallOSMode}}},
{"WallOSNoOp", {{PARAM_SET, PARAM_RELOAD, &WallOSNoOp}}},
{"WallOSRaw", {{PARAM_SET, PARAM_RELOAD, &WallOSRaw}}},
{"WallOSSGLine", {{PARAM_SET, PARAM_RELOAD, &WallOSSGLine}}},
{"WallOSSQLine", {{PARAM_SET, PARAM_RELOAD, &WallOSSQLine}}},
{"WallOSSZLine", {{PARAM_SET, PARAM_RELOAD, &WallOSSZLine}}},
{"WallSetpass", {{PARAM_SET, PARAM_RELOAD, &WallSetpass}}},
{"WallSGLineExpire", {{PARAM_SET, PARAM_RELOAD, &WallSGLineExpire}}},
{"WallSQLineExpire", {{PARAM_SET, PARAM_RELOAD, &WallSQLineExpire}}},
{"WallSZLineExpire", {{PARAM_SET, PARAM_RELOAD, &WallSZLineExpire}}},
{"WarningTimeout", {{PARAM_TIME, PARAM_RELOAD, &WarningTimeout}}},
{"GlobalOnDefcon", {{PARAM_SET, PARAM_RELOAD, &GlobalOnDefcon}}},
{"GlobalOnDefconMore",
@@ -1806,6 +1785,38 @@ int read_config(int reload)
}
}
WallOper = WallBadOS = WallOSGlobal = WallOSMode = WallOSClearmodes = WallOSKick = WallOSAkill = WallOSSGLine = WallOSSQLine = WallOSSZLine = WallOSNoOp =
WallOSJupe = WallOSRaw = WallAkillExpire = WallSGLineExpire = WallSQLineExpire = WallSZLineExpire = WallExceptionExpire = WallGetpass = WallSetpass =
WallForbid = WallDrop = false;
if (!OSNotifications.empty()) {
spacesepstream notifications(OSNotifications);
std::string notice;
while (notifications.GetToken(notice)) {
if (notice == "oper") WallOper = true;
else if (notice == "bados") WallBadOS = true;
else if (notice == "osglobal") WallOSGlobal = true;
else if (notice == "osmode") WallOSMode = true;
else if (notice == "osclearmodes") WallOSClearmodes = true;
else if (notice == "oskick") WallOSKick = true;
else if (notice == "osakill") WallOSAkill = true;
else if (notice == "ossgline") WallOSSGLine = true;
else if (notice == "ossqline") WallOSSQLine = true;
else if (notice == "osszline") WallOSSZLine = true;
else if (notice == "osnoop") WallOSNoOp = true;
else if (notice == "osjupe") WallOSJupe = true;
else if (notice == "osraw") WallOSRaw = true;
else if (notice == "akillexpire") WallAkillExpire = true;
else if (notice == "sglineexpire") WallSGLineExpire = true;
else if (notice == "sqlineexpire") WallSQLineExpire = true;
else if (notice == "szlineexpire") WallSZLineExpire = true;
else if (notice == "exceptionexpire") WallExceptionExpire = true;
else if (notice == "getpass") WallGetpass = true;
else if (notice == "setpass") WallSetpass = true;
else if (notice == "forbid") WallForbid = true;
else if (notice == "drop") WallDrop = true;
}
}
/* Services Root building */
if (ServicesRoot && !reload) { /* Check to prevent segmentation fault if it's missing */