summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcertus 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
committercertus 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
commitfcd9c968eebde92ffeec44ea4a233edc347b6c57 (patch)
tree526406eddcb901fe282f219a060100bf0ef30f77 /src
parent3a4570a131944cd814f84075cfb15a30904d6a3b (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.c2
-rw-r--r--src/nickserv.c24
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);