# arch-tag: automatic-ChangeLog--srvx@srvx.net--2006/srvx--devo--1.3
#
+2006-05-02 02:46:39 GMT Michael Poole <mdpoole@troilus.org> patch-14
+
+ Summary:
+ Make some ChanServ ban checks see through hidden hosts.
+ Revision:
+ srvx--devo--1.3--patch-14
+
+ src/chanserv.c (handle_join): Make this function see through hidden
+ hosts when matching users against bans. Add comment before the
+ non-burst section; remove a redundant burst check there.
+ (handle_auth): See through hidden hosts when checking against active
+ bans. Inactive ban check keeps MATCH_VISIBLE since bans on the true
+ hostname should have already been applied.
+ (handle_nick_change): Same as handle_auth.
+
+ modified files:
+ ChangeLog src/chanserv.c
+
+
2006-04-29 03:11:35 GMT Michael Poole <mdpoole@troilus.org> patch-13
Summary:
unsigned int ii;
for(ii = 0; ii < channel->banlist.used; ii++)
{
- if(user_matches_glob(user, channel->banlist.list[ii]->ban, MATCH_USENICK | MATCH_VISIBLE))
+ if(user_matches_glob(user, channel->banlist.list[ii]->ban, MATCH_USENICK))
{
/* Riding a netburst. Naughty. */
KickChannelUser(user, channel, chanserv, "User from far side of netsplit should have been banned - bye.");
{
/* Not joining through a ban. */
for(bData = cData->bans;
- bData && !user_matches_glob(user, bData->mask, MATCH_USENICK | MATCH_VISIBLE);
+ bData && !user_matches_glob(user, bData->mask, MATCH_USENICK);
bData = bData->next);
if(bData)
uData->present = 1;
}
}
+
+ /* If user joining normally (not during burst), apply op or voice,
+ * and send greeting/userinfo as appropriate.
+ */
if(!user->uplink->burst)
{
if(modes)
change.args[0].u.member = mNode;
mod_chanmode_announce(chanserv, channel, &change);
}
- if(greeting && !user->uplink->burst)
+ if(greeting)
send_message_type(4, user, chanserv, "(%s) %s", channel->name, greeting);
if(uData && info)
send_target_message(5, channel->name, chanserv, "[%s] %s", user->nick, uData->info);
|| IsSuspended(channel->channel_info))
continue;
for(jj = 0; jj < channel->banlist.used; ++jj)
- if(user_matches_glob(user, channel->banlist.list[jj]->ban, MATCH_USENICK | MATCH_VISIBLE))
+ if(user_matches_glob(user, channel->banlist.list[jj]->ban, MATCH_USENICK))
break;
if(jj < channel->banlist.used)
continue;
continue;
/* Look for a matching ban already on the channel. */
for(jj = 0; jj < channel->banlist.used; ++jj)
- if(user_matches_glob(user, channel->banlist.list[jj]->ban, MATCH_USENICK | MATCH_VISIBLE))
+ if(user_matches_glob(user, channel->banlist.list[jj]->ban, MATCH_USENICK))
break;
/* Need not act if we found one. */
if(jj < channel->banlist.used)