added NeonSpamSettings & NeonSpamNode struct for later use
authorpk910 <philipp@zoelle1.de>
Tue, 18 Oct 2011 21:53:11 +0000 (23:53 +0200)
committerpk910 <philipp@zoelle1.de>
Tue, 18 Oct 2011 21:53:11 +0000 (23:53 +0200)
src/ChanNode.c
src/ChanNode.h
src/ChanUser.c
src/ChanUser.h
src/bot_NeonSpam.h

index a58b5922e78fa858369ef8e741f047381b174d7b..af8a5bb892a6b4ef985825cec97e54bdeebecb47 100644 (file)
@@ -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;
index 129ea95dd927c38c8e3867bbd13f07dc0801eb49..8dad409ec09fbbfaa14e439b774b794641fafeeb 100644 (file)
@@ -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;
 };
index 800f1fc22a860581d1e19418c4a0bf296d56d56c..05dbd88f0f609f63cde3a90a3d4367c422ec0c46 100644 (file)
@@ -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);
+    }
 }
 
index 2764d55ada5d20bfa19bb333825c1d38b41dcae4..65ef133c3ff298515cd8a7fa34b6cc99cfc19982 100644 (file)
@@ -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;
 };
index e350439bbaab0bb93a88cc91d60ac02b7b8c3da3..9b169f90eccb4f1426e834562abb27c9c6b530a4 100644 (file)
 
 #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();