diff options
author | certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-09-20 17:05:47 +0000 |
---|---|---|
committer | certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-09-20 17:05:47 +0000 |
commit | fcd9c968eebde92ffeec44ea4a233edc347b6c57 (patch) | |
tree | 526406eddcb901fe282f219a060100bf0ef30f77 /src | |
parent | 3a4570a131944cd814f84075cfb15a30904d6a3b (diff) |
BUILD : 1.7.5 (354) BUGS : NOTES : Added RestrictOpernicks by request. Small feature.
git-svn-id: svn://svn.anope.org/anope/trunk@354 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@230 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/config.c | 2 | ||||
-rw-r--r-- | src/nickserv.c | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/config.c b/src/config.c index 10c817668..8bbbd077d 100644 --- a/src/config.c +++ b/src/config.c @@ -225,6 +225,7 @@ int BSCaseSensitive; int HideStatsO; int GlobalOnCycle; int AnonymousGlobal; +int RestrictOperNicks; char *GlobalOnCycleMessage; char *GlobalOnCycleUP; char *ServicesRoot; @@ -590,6 +591,7 @@ Directive directives[] = { {PARAM_PORT, 0, &RemotePort3}, {PARAM_STRING, 0, &RemotePassword3}}}, {"RestrictMail", {{PARAM_SET, PARAM_RELOAD, &RestrictMail}}}, + {"RestrictOperNicks", {{PARAM_SET, PARAM_RELOAD, &RestrictOperNicks}}}, {"SendMailPath", {{PARAM_STRING, PARAM_RELOAD, &SendMailPath}}}, {"SendFrom", {{PARAM_STRING, PARAM_RELOAD, &SendFrom}}}, {"ServerDesc", {{PARAM_STRING, 0, &ServerDesc}}}, diff --git a/src/nickserv.c b/src/nickserv.c index 1ca4a90e7..932a1b82f 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -1930,12 +1930,13 @@ static int do_help(User * u) static int do_register(User * u) { NickRequest *nr = NULL, *anr = NULL; + NickCore *nc = NULL; int prefixlen = strlen(NSGuestNickPrefix); int nicklen = strlen(u->nick); char *pass = strtok(NULL, " "); char *email = strtok(NULL, " "); char passcode[11]; - int idx, min = 1, max = 62; + int idx, min = 1, max = 62, i = 0; int chars[] = { ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', @@ -1976,6 +1977,27 @@ static int do_register(User * u) return MOD_CONT; } + if (RestrictOperNicks) { + for (i = 0; i < RootNumber; i++) { + if (strstr(u->nick, ServicesRoots[i]) && !is_oper(u)) { + notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick); + return MOD_CONT; + } + } + for (i = 0; i < servadmins.count && (nc = servadmins.list[i]);i++) { + if (strstr(u->nick, nc->display) && !is_oper(u)) { + notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick); + return MOD_CONT; + } + } + for (i = 0; i < servopers.count && (nc = servopers.list[i]);i++) { + if (strstr(u->nick, nc->display) && !is_oper(u)) { + notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick); + return MOD_CONT; + } + } + } + if (!pass || (NSForceEmail && !email)) { syntax_error(s_NickServ, u, "REGISTER", NICK_REGISTER_SYNTAX_EMAIL); |