[srvx-commits] CVS: services/src chanserv.c,1.390,1.391
Brought to you by:
entrope
|
From: Entrope <en...@us...> - 2003-11-05 13:51:52
|
Update of /cvsroot/srvx/services/src
In directory sc8-pr-cvs1:/tmp/cvs-serv14435/src
Modified Files:
chanserv.c
Log Message:
apply account-based bans when a user auths
Index: chanserv.c
===================================================================
RCS file: /cvsroot/srvx/services/src/chanserv.c,v
retrieving revision 1.390
retrieving revision 1.391
diff -C2 -r1.390 -r1.391
*** chanserv.c 28 Oct 2003 04:55:30 -0000 1.390
--- chanserv.c 5 Nov 2003 13:51:38 -0000 1.391
***************
*** 6131,6134 ****
--- 6131,6135 ----
{
struct userData *channel;
+ unsigned int ii, jj;
if(!user->handle_info)
***************
*** 6172,6175 ****
--- 6173,6203 ----
channel->seen = now;
channel->present = 1;
+ }
+
+ for(ii = 0; ii < user->channels.used; ++ii)
+ {
+ struct chanNode *channel = user->channels.list[ii]->channel;
+ struct banData *ban;
+
+ if((user->channels.list[ii]->modes & (MODE_CHANOP|MODE_VOICE))
+ || !channel->channel_info)
+ continue;
+ for(jj = 0; jj < channel->banlist.used; ++jj)
+ if(user_matches_glob(user, channel->banlist.list[jj]->ban, 1))
+ break;
+ if(jj < channel->banlist.used)
+ continue;
+ for(ban = channel->channel_info->bans; ban; ban = ban->next)
+ {
+ unsigned char *argv[3];
+ char kick_reason[MAXLEN];
+
+ if(!user_matches_glob(user, ban->mask, 1))
+ continue;
+ sprintf(kick_reason, CSMSG_KICK_FORMAT, ban->reason, ban->owner);
+ AddChannelBan(1, &ban->mask, channel, chanserv, now, 1);
+ KickChannelUser(user, channel, chanserv, kick_reason);
+ break;
+ }
}
|