From: Michael Poole Date: Tue, 15 Nov 2005 01:54:15 +0000 (+0000) Subject: Limit nick changes when speaking is limited. X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=commitdiff_plain;h=a9a224273f4cdc467ae6ff2768bea165ad3a2045 Limit nick changes when speaking is limited. git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1552 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- diff --git a/ChangeLog b/ChangeLog index 6f84307..5979a74 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-11-14 Michael Poole + + * ircd/channel.c (find_no_nickchange_channel): Disallow nick + changes by voiceless no-account users on a +r channel. + 2005-11-14 Michael Poole * ircd/m_kick.c (ms_kick): Fix test for whether a client's own diff --git a/ircd/channel.c b/ircd/channel.c index 6ff0c82..57839aa 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -760,9 +760,11 @@ const char* find_no_nickchange_channel(struct Client* cptr) struct Membership* member; for (member = (cli_user(cptr))->channel; member; member = member->next_channel) { - if (!IsVoicedOrOpped(member) && - (is_banned(member) || - (member->channel->mode.mode & MODE_MODERATED))) + if (IsVoicedOrOpped(member)) + continue; + if ((member->channel->mode.mode & MODE_MODERATED) + || (member->channel->mode.mode & MODE_REGONLY && !IsAccount(cptr)) + || is_banned(member)) return member->channel->chname; } }