diff options
| author | Nakidai <nakidai@disroot.org> | 2026-02-12 18:26:21 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2026-02-12 18:26:21 +0300 |
| commit | ec97c603288869efad52ed7235ae770f85a9d7e8 (patch) | |
| tree | 6bdf1429ce95f1a40fe7b9c02428ab649b8caef9 | |
| parent | 113055484c7a2103a080953e4008e3098e4c7131 (diff) | |
| download | libreircd-ec97c603288869efad52ed7235ae770f85a9d7e8.tar.gz libreircd-ec97c603288869efad52ed7235ae770f85a9d7e8.zip | |
Fix KICK permissions
IRC operators should be able to change channel modes as well
| -rw-r--r-- | handle.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/handle.c b/handle.c index a8b1e5f..2190bcf 100644 --- a/handle.c +++ b/handle.c @@ -93,7 +93,7 @@ kick(struct Message *msg, struct Peer *peer) if (ch->peers[i].p->fd == peer->fd) break; ensure(i != ch->peers_c, reply(peer, 442, ch->name), 0); - ensure(ch->peers[i].modes & CHANNEL_OPER, reply(peer, 482, ch->name), 0); + ensure(peer->modes & OPER || ch->peers[i].modes & CHANNEL_OPER, reply(peer, 482, ch->name), 0); for (i = 0; i < ch->peers_c; ++i) if (!strcmp(ch->peers[i].p->nick, msg->params[1])) |