]> jfr.im git - solanum.git/blobdiff - src/s_conf.c
Pace aways.
[solanum.git] / src / s_conf.c
index 42c274c5d6509124c369ccfa076e5d1a47e967f4..93849e028e7536dce8fa971c9189b7f010689419 100644 (file)
@@ -51,6 +51,7 @@
 #include "sslproc.h"
 #include "bandbi.h"
 #include "operhash.h"
+#include "chmode.h"
 
 struct config_server_hide ConfigServerHide;
 
@@ -744,6 +745,8 @@ set_default_conf(void)
        ConfigFileEntry.global_snotices = YES;
        ConfigFileEntry.operspy_dont_care_user_info = NO;
        ConfigFileEntry.use_propagated_bans = YES;
+       ConfigFileEntry.max_ratelimit_tokens = 30;
+       ConfigFileEntry.away_interval = 30;
 
 #ifdef HAVE_LIBZ
        ConfigFileEntry.compression_level = 4;
@@ -756,6 +759,7 @@ set_default_conf(void)
 
        ConfigChannel.use_except = YES;
        ConfigChannel.use_invex = YES;
+       ConfigChannel.use_forward = YES;
        ConfigChannel.use_knock = YES;
        ConfigChannel.knock_delay = 300;
        ConfigChannel.knock_delay_channel = 60;
@@ -799,6 +803,8 @@ set_default_conf(void)
 
        ServerInfo.default_max_clients = MAXCONNECTIONS;
 
+       ConfigFileEntry.nicklen = NICKLEN;
+
        if (!alias_dict)
                alias_dict = irc_dictionary_create(strcasecmp);
 }
@@ -825,6 +831,7 @@ read_conf(FILE * file)
        /* Some global values are also loaded here. */
        check_class();          /* Make sure classes are valid */
        privilegeset_delete_all_illegal();
+       construct_cflags_strings();
 }
 
 static void
@@ -862,6 +869,18 @@ validate_conf(void)
                                
        }
 
+       /* RFC 1459 says 1 message per 2 seconds on average and bursts of
+        * 5 messages are acceptable, so allow at least that.
+        */
+       if(ConfigFileEntry.client_flood_burst_rate < 5)
+               ConfigFileEntry.client_flood_burst_rate = 5;
+       if(ConfigFileEntry.client_flood_burst_max < 5)
+               ConfigFileEntry.client_flood_burst_max = 5;
+       if(ConfigFileEntry.client_flood_message_time >
+                       ConfigFileEntry.client_flood_message_num * 2)
+               ConfigFileEntry.client_flood_message_time =
+                       ConfigFileEntry.client_flood_message_num * 2;
+
        if((ConfigFileEntry.client_flood_max_lines < CLIENT_FLOOD_MIN) ||
           (ConfigFileEntry.client_flood_max_lines > CLIENT_FLOOD_MAX))
                ConfigFileEntry.client_flood_max_lines = CLIENT_FLOOD_MAX;