summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/protocol/inspircd11.c9
-rw-r--r--src/protocol/unreal32.c9
2 files changed, 18 insertions, 0 deletions
diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c
index 17e7f00fd..eb2b3c4a2 100644
--- a/src/protocol/inspircd11.c
+++ b/src/protocol/inspircd11.c
@@ -442,6 +442,15 @@ void inspircd_set_umode(User * user, int ac, char **av)
opcnt--;
}
break;
+ case 'a':
+ if (UnRestrictSAdmin) {
+ break;
+ }
+ if (add && !is_services_admin(user)) {
+ common_svsmode(user, "-a", NULL);
+ user->mode &= ~UMODE_a;
+ }
+ break;
case 'r':
user->svid = (add ? user->timestamp : 0);
if (add && !nick_identified(user)) {
diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c
index d4c526d14..39ec97db4 100644
--- a/src/protocol/unreal32.c
+++ b/src/protocol/unreal32.c
@@ -469,6 +469,15 @@ void unreal_set_umode(User * user, int ac, char **av)
opcnt--;
}
break;
+ case 'a':
+ if (UnRestrictSAdmin) {
+ break;
+ }
+ if (add && !is_services_admin(user)) {
+ common_svsmode(user, "-a", NULL);
+ user->mode &= ~UMODE_a;
+ }
+ break;
case 'r':
if (add && !nick_identified(user)) {
common_svsmode(user, "-r", NULL);