X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/e2994faec6aed8fc1912f1cda2facdb59734f029..afd4834b500ef6f53c3f70f44c73637e26dc94c1:/src/channel.c diff --git a/src/channel.c b/src/channel.c index 9134b57..1e35f3d 100644 --- a/src/channel.c +++ b/src/channel.c @@ -904,6 +904,32 @@ find_bannickchange_channel(struct Client *client_p) return NULL; } +/* find_nonickchange_channel() + * Input: client to check + * Output: channel preventing nick change + */ +struct Channel * +find_nonickchange_channel(struct Client *client_p) +{ + struct Channel *chptr; + struct membership *msptr; + rb_dlink_node *ptr; + + if (!MyClient(client_p)) + return NULL; + + RB_DLINK_FOREACH(ptr, client_p->user->channel.head) + { + msptr = ptr->data; + chptr = msptr->chptr; + if (is_chanop_voiced(msptr)) + continue; + if (chptr->mode.mode & MODE_NONICK) + return chptr; + } + return NULL; +} + /* void check_spambot_warning(struct Client *source_p) * Input: Client to check, channel name or NULL if this is a part. * Output: none