diff options
author | trystan 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 |
---|---|---|
committer | trystan 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 |
commit | bd4d81fb5fb82bb12e4b505d6b6cf1cf0ea82c90 (patch) | |
tree | 45eff7d122681100452f0359ea28c81cdbfe47f1 /src | |
parent | 28bb054da100e0f73a5eaabfd09e1f228f592130 (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')
-rw-r--r-- | src/nickserv.c | 5 | ||||
-rw-r--r-- | src/operserv.c | 35 | ||||
-rw-r--r-- | src/solidircd.c | 4 | ||||
-rw-r--r-- | src/unreal32.c | 6 |
4 files changed, 42 insertions, 8 deletions
diff --git a/src/nickserv.c b/src/nickserv.c index e025b8f75..d853464af 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -3010,6 +3010,11 @@ static int do_set_email(User * u, NickCore * nc, char *param) if (!param && NSForceEmail) { notice_lang(s_NickServ, u, NICK_SET_EMAIL_UNSET_IMPOSSIBLE); return MOD_CONT; + } else if (NSSecureAdmins && u->na->nc != nc + && nick_is_services_admin(nc) + && !is_services_root(u)) { + notice_lang(s_NickServ, u, PERMISSION_DENIED); + return MOD_CONT; } else if (param && !MailValidate(param)) { notice_lang(s_NickServ, u, MAIL_X_INVALID, param); return MOD_CONT; 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); } diff --git a/src/solidircd.c b/src/solidircd.c index 4dd736d28..d03d42e4d 100644 --- a/src/solidircd.c +++ b/src/solidircd.c @@ -60,7 +60,7 @@ IRCDVar ircd[] = { 1, /* Supports SGlines */ 1, /* Supports SQlines */ 1, /* Supports SZlines */ - 0, /* Supports Halfop +h */ + 1, /* Supports Halfop +h */ 3, /* Number of server args */ 0, /* Join 2 Set */ 0, /* Join 2 Message */ @@ -364,7 +364,7 @@ CBMode cbmodes[128] = { {0}, /* P */ {0}, /* Q */ {CMODE_R, 0, NULL, NULL}, /* R */ - {0}, /* S */ + {CMODE_S, 0, NULL, NULL}, /* S */ {0}, /* T */ {0}, /* U */ {0}, /* V */ diff --git a/src/unreal32.c b/src/unreal32.c index ae06b3fb2..90915071b 100644 --- a/src/unreal32.c +++ b/src/unreal32.c @@ -1886,13 +1886,15 @@ int anope_event_whois(char *source, int ac, char **av) /* SVSHOLD - set */ void anope_cmd_svshold(char *nick) { - /* Not supported by this IRCD */ + send_cmd(NULL, "TKL + Q H %s %s %ld %ld :%s", nick, ServerName, + (long int) time(NULL) + NSReleaseTimeout, + (long int) time(NULL), "Being held for registered user"); } /* SVSHOLD - release */ void anope_cmd_release_svshold(char *nick) { - /* Not Supported by this IRCD */ + send_cmd(NULL, "TKL - Q * %s %s", nick, ServerName); } /* UNSGLINE */ |