summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nickserv.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/nickserv.c b/src/nickserv.c
index 8e3974ef8..784efa341 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -2319,6 +2319,7 @@ static int do_confirm(User * u)
static int do_group(User * u)
{
NickAlias *na, *target;
+ NickCore *nc;
char *nick = strtok(NULL, " ");
char *pass = strtok(NULL, " ");
int i;
@@ -2338,6 +2339,30 @@ static int do_group(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 (!nick || !pass) {
syntax_error(s_NickServ, u, "GROUP", NICK_GROUP_SYNTAX);
} else if (time(NULL) < u->lastnickreg + NSRegDelay) {