From a9a224273f4cdc467ae6ff2768bea165ad3a2045 Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Tue, 15 Nov 2005 01:54:15 +0000 Subject: [PATCH] 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 --- ChangeLog | 5 +++++ ircd/channel.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) 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; } } -- 2.20.1