From: pk910 Date: Tue, 18 Oct 2011 21:53:11 +0000 (+0200) Subject: added NeonSpamSettings & NeonSpamNode struct for later use X-Git-Tag: v5.3~280 X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=30b61f872c5258918ebc71b9677623de40b630a2 added NeonSpamSettings & NeonSpamNode struct for later use --- diff --git a/src/ChanNode.c b/src/ChanNode.c index a58b592..af8a5bb 100644 --- a/src/ChanNode.c +++ b/src/ChanNode.c @@ -47,6 +47,8 @@ void free_ChanNode() { next = chan->next; for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = next_chanuser) { next_chanuser = getChannelUsers(chan, chanuser); + if(chanuser->spamnode) + free(chanuser->spamnode); free(chanuser); } freeChanNode(chan); @@ -132,6 +134,7 @@ struct ChanNode* addChannel(const char *name) { strcpy(chan->name, name); chan->user = NULL; chan->bans = NULL; + chan->spam_settings = NULL; chan->usercount = 0; chan->chanbot = NULL; chan->topic[0] = 0; @@ -220,6 +223,8 @@ void freeChanNode(struct ChanNode* chan) { freeModeNode(chan->modes); if(chan->bans) removeChannelBans(chan); + if(chan->spam_settings) + free(chan->spam_settings); free(chan); } @@ -240,6 +245,8 @@ void checkChannelVisibility(struct ChanNode* chan) { //free the user (no more channels) delUser(chanuser->user, 1); } + if(chanuser->spamnode) + free(chanuser->spamnode); free(chanuser); } chan->user = NULL; diff --git a/src/ChanNode.h b/src/ChanNode.h index 129ea95..8dad409 100644 --- a/src/ChanNode.h +++ b/src/ChanNode.h @@ -21,6 +21,7 @@ struct ChanUser; struct trigger_cache; struct ModeNode; +struct NeonSpamSettings; #define CHANFLAG_RECEIVED_USERLIST 0x01 #define CHANFLAG_REQUESTED_CHANINFO 0x02 @@ -39,6 +40,8 @@ struct ChanNode { struct UserNode *chanbot; struct trigger_cache *trigger; int channel_id; + + struct NeonSpamSettings *spam_settings; struct ChanNode *next; }; diff --git a/src/ChanUser.c b/src/ChanUser.c index 800f1fc..05dbd88 100644 --- a/src/ChanUser.c +++ b/src/ChanUser.c @@ -31,6 +31,7 @@ struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user) { chanuser->chan = chan; chanuser->changeTime = 0; + chanuser->spamnode = NULL; chanuser->next_user = chan->user; chan->user = chanuser; @@ -54,6 +55,7 @@ struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *us chanuser->chan = chan; chanuser->changeTime = 0; + chanuser->spamnode = NULL; chanuser->next_user = chan->user; chan->user = chanuser; @@ -125,9 +127,11 @@ void delChanUser(struct ChanUser *chanuser, int freeChanUser) { last = cchanuser; } - if(freeChanUser) + if(freeChanUser) { + if(chanuser->spamnode) + free(chanuser->spamnode); free(chanuser); - else { + } else { chanuser->next_chan = NULL; chanuser->next_user = NULL; } @@ -167,7 +171,10 @@ void removeChanUserFromLists(struct ChanUser *chanuser, int remove_from_userlist chanuser->next_chan = NULL; } - if(freeChanUser) + if(freeChanUser) { + if(chanuser->spamnode) + free(chanuser->spamnode); free(chanuser); + } } diff --git a/src/ChanUser.h b/src/ChanUser.h index 2764d55..65ef133 100644 --- a/src/ChanUser.h +++ b/src/ChanUser.h @@ -26,6 +26,7 @@ struct ChanNode; struct UserNode; +struct NeonSpamNode; struct ChanUser { unsigned char flags; @@ -35,6 +36,8 @@ struct ChanUser { int chageEvents; time_t changeTime; + struct NeonSpamNode *spamnode; + struct ChanUser *next_user; struct ChanUser *next_chan; }; diff --git a/src/bot_NeonSpam.h b/src/bot_NeonSpam.h index e350439..9b169f9 100644 --- a/src/bot_NeonSpam.h +++ b/src/bot_NeonSpam.h @@ -20,6 +20,25 @@ #include "main.h" +#define SPAMSETTINGS_SPAMSCAN 0x01 +#define SPAMSETTINGS_FLOODSCAN 0x02 +#define SPAMSETTINGS_JOINSCAN 0x04 +#define SPAMSETTINGS_SCANOPS 0x08 +#define SPAMSETTINGS_SCANVOICE 0x10 + +struct NeonSpamSettings { + unsigned int flags; + unsigned char spam_amount; + unsigned char spam_time; + unsigned char flood_amount; + unsigned char flood_time; + +}; + +struct NeonSpamNode { + unsigned int flags; +}; + void init_NeonSpam(); void loop_NeonSpam(); void free_NeonSpam();