]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/spamserv.c
Fix for "whats the color" 8ball question formats
[irc/evilnet/x3.git] / src / spamserv.c
index 303a339cc0ad090bfc48a0b59ac103812c66986e..6d703bd6fef5f9c4867f4cb42518ea2013db77a6 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"
@@ -719,7 +720,7 @@ spamserv_user_join(struct modeNode *mNode, UNUSED_ARG(void *extra))
 }
 
 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;
@@ -2155,7 +2156,7 @@ static SPAMSERV_FUNC(cmd_oaddtrust)
         cInfo = get_chanInfo(channel->name);
         cData = channel->channel_info;
 
-        if (!cInfo || !channel->channel_info) {
+        if (!cInfo || !cData) {
             ss_reply("SSMSG_NOT_REGISTERED", channel->name);
             return 0;
         }
@@ -2289,7 +2290,7 @@ static SPAMSERV_FUNC(cmd_odeltrust)
         cInfo = get_chanInfo(channel->name);
         cData = channel->channel_info;
 
-        if (!cInfo || !channel->channel_info) {
+        if (!cInfo || !cData) {
             ss_reply("SSMSG_NOT_REGISTERED", channel->name);
             return 0;
         }
@@ -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;
 
@@ -3245,7 +3248,7 @@ init_spamserv(const char *nick)
        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);
+       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();
 }