[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; + } } |