diff options
author | trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-11-24 03:54:03 +0000 |
---|---|---|
committer | trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-11-24 03:54:03 +0000 |
commit | 9233f879d14728673ca82b1a7d16341e79d609df (patch) | |
tree | 5f352da2ffe6ba00acea5afcbf435420ccca7f69 /src/operserv.c | |
parent | a82bbfb6a129e55b9e8bacf72189e053c261c0d4 (diff) |
BUILD : 1.7.6 (461) BUGS : 230 NOTES : 1. Moving Services Operators to Services Admins and vice-versa (230), 2. PTlink anope_cmd_server() had a minor issue thats now fixed
git-svn-id: svn://svn.anope.org/anope/trunk@461 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@315 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/operserv.c')
-rw-r--r-- | src/operserv.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/operserv.c b/src/operserv.c index 739ea2685..025005d44 100644 --- a/src/operserv.c +++ b/src/operserv.c @@ -4040,8 +4040,15 @@ static int do_admin(User * u) notice_lang(s_OperServ, u, OPER_ADMIN_REACHED_LIMIT, nick); return MOD_CONT; } else { - na->nc->flags |= NI_SERVICES_ADMIN; - notice_lang(s_OperServ, u, OPER_ADMIN_ADDED, nick); + if (na->nc->flags & NI_SERVICES_OPER + && (res = slist_indexof(&servopers, na->nc)) != -1) { + slist_delete(&servopers, res); + na->nc->flags |= NI_SERVICES_ADMIN; + notice_lang(s_OperServ, u, OPER_ADMIN_MOVED, nick); + } else { + na->nc->flags |= NI_SERVICES_ADMIN; + notice_lang(s_OperServ, u, OPER_ADMIN_ADDED, nick); + } } if (readonly) @@ -4329,8 +4336,15 @@ static int do_oper(User * u) notice_lang(s_OperServ, u, OPER_OPER_REACHED_LIMIT, nick); return MOD_CONT; } else { - na->nc->flags |= NI_SERVICES_OPER; - notice_lang(s_OperServ, u, OPER_OPER_ADDED, nick); + if (na->nc->flags & NI_SERVICES_ADMIN + && (res = slist_indexof(&servadmins, na->nc)) != -1) { + slist_delete(&servadmins, res); + na->nc->flags |= NI_SERVICES_OPER; + notice_lang(s_OperServ, u, OPER_OPER_MOVED, nick); + } else { + na->nc->flags |= NI_SERVICES_OPER; + notice_lang(s_OperServ, u, OPER_OPER_ADDED, nick); + } } if (readonly) |