]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/spamserv.c
Added debug_channel_modes option for spamserv
[irc/evilnet/x3.git] / src / spamserv.c
index 1b3ae728ca30cfe539755cd745c0eb979291e322..a452614284eefd2e492fb764d8a25b74e91bea86 100644 (file)
@@ -43,6 +43,7 @@
 #define KEY_ISSUED                  "issued"
 #define KEY_TRUSTED_ACCOUNTS        "trusted"
 #define KEY_DEBUG_CHANNEL            "debug_channel"
+#define KEY_DEBUG_CHANNEL_MODES      "debug_channel_modes"
 #define KEY_GLOBAL_EXCEPTIONS        "global_exceptions"
 #define KEY_GLOBAL_BADWORDS          "global_badwords"
 #define KEY_NETWORK_RULES            "network_rules"
@@ -633,7 +634,7 @@ spamserv_new_user_func(struct userNode *user, UNUSED_ARG(void *extra))
 }
 
 static void
-spamserv_del_user_func(struct userNode *user, struct userNode *killer, UNUSED_ARG(const char *why))
+spamserv_del_user_func(struct userNode *user, struct userNode *killer, UNUSED_ARG(const char *why), UNUSED_ARG(void *extra))
 {
        struct userInfo *uInfo = get_userInfo(user->nick);
        struct killNode *kNode;
@@ -663,7 +664,7 @@ spamserv_del_user_func(struct userNode *user, struct userNode *killer, UNUSED_AR
 }
 
 static void
-spamserv_nick_change_func(struct userNode *user, const char *old_nick)
+spamserv_nick_change_func(struct userNode *user, const char *old_nick, UNUSED_ARG(void *extra))
 {
        struct userInfo *uInfo = get_userInfo(old_nick);
 
@@ -674,7 +675,7 @@ spamserv_nick_change_func(struct userNode *user, const char *old_nick)
 }
 
 static int
-spamserv_user_join(struct modeNode *mNode)
+spamserv_user_join(struct modeNode *mNode, UNUSED_ARG(void *extra))
 {
        struct chanNode *channel = mNode->channel;
        struct userNode *user = mNode->user;    
@@ -719,7 +720,7 @@ spamserv_user_join(struct modeNode *mNode)
 }
 
 static void
-spamserv_user_part(struct modeNode *mn, UNUSED_ARG(const char *reason))
+spamserv_user_part(struct modeNode *mn, UNUSED_ARG(const char *reason), UNUSED_ARG(void *extra))
 {
        struct userNode *user = mn->user;
        struct chanNode *channel = mn->channel;
@@ -3116,7 +3117,7 @@ static void
 spamserv_conf_read(void)
 {
        dict_t conf_node;
-       const char *str
+       const char *str, *modes;
 
        if(!(conf_node = conf_get_data(SPAMSERV_CONF_NAME, RECDB_OBJECT)))
        {
@@ -3128,7 +3129,9 @@ spamserv_conf_read(void)
 
        if(str)
        {
-               spamserv_conf.debug_channel = AddChannel(str, now, "+tinms", NULL, NULL);
+               modes = database_get_data(conf_node, KEY_DEBUG_CHANNEL_MODES, RECDB_QSTRING);
+
+               spamserv_conf.debug_channel = AddChannel(str, now, (modes ? modes : "+tinms"), NULL, NULL);
 
                if(spamserv_conf.debug_channel)
                        spamserv_join_channel(spamserv_conf.debug_channel);
@@ -3186,7 +3189,7 @@ spamserv_conf_read(void)
 }
 
 static void
-spamserv_db_cleanup(void)
+spamserv_db_cleanup(UNUSED_ARG(void* extra))
 {
        dict_iterator_t it;
 
@@ -3242,10 +3245,10 @@ init_spamserv(const char *nick)
        saxdb_register("SpamServ", spamserv_saxdb_read, spamserv_saxdb_write);
 
        reg_new_user_func(spamserv_new_user_func, NULL);
-       reg_del_user_func(spamserv_del_user_func);
-       reg_nick_change_func(spamserv_nick_change_func);
-       reg_join_func(spamserv_user_join);
-       reg_part_func(spamserv_user_part);
+       reg_del_user_func(spamserv_del_user_func, NULL);
+       reg_nick_change_func(spamserv_nick_change_func, NULL);
+       reg_join_func(spamserv_user_join, NULL);
+       reg_part_func(spamserv_user_part, NULL);
 
        timeq_add(now + FLOOD_TIMEQ_FREQ, timeq_flood, NULL);
        timeq_add(now + JOINFLOOD_TIMEQ_FREQ, timeq_joinflood, NULL);
@@ -3300,7 +3303,7 @@ init_spamserv(const char *nick)
             }
         }
 
-       reg_exit_func(spamserv_db_cleanup);
+       reg_exit_func(spamserv_db_cleanup, NULL);
        message_register_table(msgtab);
        crc32_init();
 }