summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chanserv.c4
-rw-r--r--src/operserv.c16
2 files changed, 14 insertions, 6 deletions
diff --git a/src/chanserv.c b/src/chanserv.c
index 073cb2f2a..c8aad1ade 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -1672,6 +1672,10 @@ int check_kick(User * user, char *chan)
}
}
+ if (is_ulined(user->server->name)) {
+ return 0;
+ }
+
if (check_access(user, ci, CA_NOJOIN)) {
get_idealban(ci, user, mask, sizeof(mask));
reason = getstring(user->na, CHAN_NOT_ALLOWED_TO_JOIN);
diff --git a/src/operserv.c b/src/operserv.c
index 588331da9..11fe65219 100644
--- a/src/operserv.c
+++ b/src/operserv.c
@@ -2599,12 +2599,14 @@ int add_sgline(User * u, char *mask, const char *by, const time_t expires,
anope_cmd_sgline(entry->mask, entry->reason);
if (KillonSGline && !ircd->sglineenforce) {
+ snprintf(buf, (BUFSIZE - 1), "G-Lined: %s", entry->reason);
u2 = firstuser();
while (u2) {
next = nextuser();
- if (match_wild_nocase(entry->mask, u2->realname)) {
- snprintf(buf, (BUFSIZE - 1), "G-Lined: %s", entry->reason);
- kill_user(ServerName, u2->nick, buf);
+ if (!is_oper(u2)) {
+ if (match_wild_nocase(entry->mask, u2->realname)) {
+ kill_user(ServerName, u2->nick, buf);
+ }
}
u2 = next;
}
@@ -3070,12 +3072,14 @@ int add_sqline(User * u, char *mask, const char *by, const time_t expires,
sqline(entry->mask, entry->reason);
if (KillonSQline) {
+ snprintf(buf, (BUFSIZE - 1), "Q-Lined: %s", entry->reason);
u2 = firstuser();
while (u2) {
next = nextuser();
- if (match_wild_nocase(entry->mask, u2->nick)) {
- snprintf(buf, (BUFSIZE - 1), "Q-Lined: %s", entry->reason);
- kill_user(ServerName, u2->nick, buf);
+ if (!is_oper(u2)) {
+ if (match_wild_nocase(entry->mask, u2->nick)) {
+ kill_user(ServerName, u2->nick, buf);
+ }
}
u2 = next;
}