*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
//kamikaze free all channels and chanusers
int i;
struct ChanNode *chan, *next;
//kamikaze free all channels and chanusers
int i;
struct ChanNode *chan, *next;
next = chan->next;
for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = next_chanuser) {
next_chanuser = getChannelUsers(chan, chanuser);
next = chan->next;
for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = next_chanuser) {
next_chanuser = getChannelUsers(chan, chanuser);
void delChannel(struct ChanNode* chan, int freeChan) {
int chanListIndex = get_chanlist_entry(chan->name[1]);
if(chanListIndex == -1) return;
void delChannel(struct ChanNode* chan, int freeChan) {
int chanListIndex = get_chanlist_entry(chan->name[1]);
if(chanListIndex == -1) return;
struct ChanNode *cchan, *last_chan = NULL;
for(cchan = chanList[chanListIndex]; cchan; cchan = cchan->next) {
if(cchan == chan) {
struct ChanNode *cchan, *last_chan = NULL;
for(cchan = chanList[chanListIndex]; cchan; cchan = cchan->next) {
if(cchan == chan) {
if(chan->trigger) {
struct trigger_cache *trigger, *next_trigger;
for(trigger = chan->trigger; trigger; trigger = next_trigger) {
if(chan->trigger) {
struct trigger_cache *trigger, *next_trigger;
for(trigger = chan->trigger; trigger; trigger = next_trigger) {
struct ChanUser *chanuser, *next;
for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) {
struct ChanUser *chanuser, *next;
for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) {
for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = next) {
next = getChannelUsers(chan, chanuser);
//remove the channel from the user's channel-list
for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = next) {
next = getChannelUsers(chan, chanuser);
//remove the channel from the user's channel-list
//free the user (no more channels)
delUser(chanuser->user, 1);
}
//free the user (no more channels)
delUser(chanuser->user, 1);
}