#include "ChanNode.h"
#include "ChanUser.h"
#include "UserNode.h"
+#include "BanNode.h"
#include "modcmd.h"
static struct ChanNode **chanList;
}
}
+void free_ChanNode() {
+ //kamikaze free all channels and chanusers
+ int i;
+ struct ChanNode *chan, *next;
+ struct ChanUser *chanuser, *next_chanuser;
+ for(i = 0; i < 47; i++) {
+ for(chan = chanList[i]; chan; chan = next) {
+ next = chan->next;
+ for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = next_chanuser) {
+ next_chanuser = getChannelUsers(chan, chanuser);
+ free(chanuser);
+ }
+ freeChanNode(chan);
+ }
+ }
+ free(chanList);
+}
+
int is_valid_chan(const char *name) {
unsigned int ii;
if (*name !='#')
}
strcpy(chan->name, name);
chan->user = NULL;
+ chan->bans = NULL;
+ chan->usercount = 0;
chan->chanbot = NULL;
chan->topic[0] = 0;
chan->flags = 0;
}
free(chan->mode_str_args);
free(chan->mode_int_args);
+ if(chan->bans)
+ removeChannelBans(chan);
free(chan);
}
}
static void parseModesBan(struct ChanNode* chan, int add, char *mask) {
- //to be continued...
+ if(add)
+ addChannelBan(chan, mask);
+ else
+ removeChannelBanMask(chan, mask);
}
void parseModes(struct ChanNode* chan, char *modeStr, char **argv, int argc) {
#undef MODE_VALUE
#undef MODE_VALUE_INDEX
}
-