summaryrefslogtreecommitdiff
path: root/src/operserv.c
diff options
context:
space:
mode:
authortrystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-11-29 02:26:59 +0000
committertrystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-11-29 02:26:59 +0000
commitbd4d81fb5fb82bb12e4b505d6b6cf1cf0ea82c90 (patch)
tree45eff7d122681100452f0359ea28c81cdbfe47f1 /src/operserv.c
parent28bb054da100e0f73a5eaabfd09e1f228f592130 (diff)
BUILD : 1.7.6 (465) BUGS : 218, 235 NOTES : 1. correct the grammer in the example.conf 2. SolidIRCD cmode +S 3. NSSecureAdmins now restricts /NS SET EMAIL 4. Unreals version of SVSHOLD 5. SolidIRCD halfop support 6. /os set list
git-svn-id: svn://svn.anope.org/anope/trunk@465 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@319 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/operserv.c')
-rw-r--r--src/operserv.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/operserv.c b/src/operserv.c
index fcc567541..900a828fb 100644
--- a/src/operserv.c
+++ b/src/operserv.c
@@ -169,6 +169,7 @@ void moduleAddOperServCmds(void) {
/* Commands for Services admins: */
c = createCommand("SET", do_set, is_services_admin,OPER_HELP_SET, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
+ c = createCommand("SET LIST", NULL, NULL,OPER_HELP_SET_LIST, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET READONLY", NULL, NULL,OPER_HELP_SET_READONLY, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET LOGCHAN", NULL, NULL,OPER_HELP_SET_LOGCHAN, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SET DEBUG", NULL, NULL,OPER_HELP_SET_DEBUG, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
@@ -4455,10 +4456,37 @@ static int do_set(User * u)
{
char *option = strtok(NULL, " ");
char *setting = strtok(NULL, " ");
+ int index;
- if (!option || !setting) {
+ if (!option) {
+ syntax_error(s_OperServ, u, "SET", OPER_SET_SYNTAX);
+ } else if (stricmp(option, "LIST") == 0) {
+ index =
+ (allow_ignore ? OPER_SET_LIST_OPTION_ON :
+ OPER_SET_LIST_OPTION_OFF);
+ notice_lang(s_OperServ, u, index, "IGNORE");
+ index =
+ (readonly ? OPER_SET_LIST_OPTION_ON :
+ OPER_SET_LIST_OPTION_OFF);
+ notice_lang(s_OperServ, u, index, "READONLY");
+ index =
+ (logchan ? OPER_SET_LIST_OPTION_ON : OPER_SET_LIST_OPTION_OFF);
+ notice_lang(s_OperServ, u, index, "LOGCHAN");
+ index =
+ (debug ? OPER_SET_LIST_OPTION_ON : OPER_SET_LIST_OPTION_OFF);
+ notice_lang(s_OperServ, u, index, "DEBUG");
+ index =
+ (noexpire ? OPER_SET_LIST_OPTION_ON :
+ OPER_SET_LIST_OPTION_OFF);
+ notice_lang(s_OperServ, u, index, "NOEXPIRE");
+#ifdef USE_MYSQL
+ index =
+ (do_mysql ? OPER_SET_LIST_OPTION_ON :
+ OPER_SET_LIST_OPTION_OFF);
+ notice_lang(s_OperServ, u, index, "SQL");
+#endif
+ } else if (!setting) {
syntax_error(s_OperServ, u, "SET", OPER_SET_SYNTAX);
-
} else if (stricmp(option, "IGNORE") == 0) {
if (stricmp(setting, "on") == 0) {
allow_ignore = 1;
@@ -4515,11 +4543,11 @@ static int do_set(User * u)
alog("Now sending log messages to %s", LogChannel);
notice_lang(s_OperServ, u, OPER_SET_LOGCHAN_ON, LogChannel);
} else if (LogChannel && (stricmp(setting, "off") == 0)) {
+ alog("No longer sending log messages to a channel");
if (ircd->join2msg) {
anope_cmd_part(s_GlobalNoticer, LogChannel, NULL);
}
logchan = 0;
- alog("No longer sending log messages to a channel");
notice_lang(s_OperServ, u, OPER_SET_LOGCHAN_OFF);
} else {
notice_lang(s_OperServ, u, OPER_SET_LOGCHAN_ERROR);
@@ -4577,7 +4605,6 @@ static int do_set(User * u)
} else {
notice_lang(s_OperServ, u, OPER_SET_NOEXPIRE_ERROR);
}
-
} else {
notice_lang(s_OperServ, u, OPER_SET_UNKNOWN_OPTION, option);
}