#include "sslproc.h"
#include "bandbi.h"
#include "operhash.h"
+#include "chmode.h"
struct config_server_hide ConfigServerHide;
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;
ConfigChannel.use_except = YES;
ConfigChannel.use_invex = YES;
- ConfigChannel.use_knock = YES;
ConfigChannel.use_forward = YES;
+ ConfigChannel.use_knock = YES;
ConfigChannel.knock_delay = 300;
ConfigChannel.knock_delay_channel = 60;
ConfigChannel.max_chans_per_user = 15;
ConfigFileEntry.min_nonwildcard_simple = 3;
ConfigFileEntry.default_floodcount = 8;
ConfigFileEntry.default_ident_timeout = 5;
- ConfigFileEntry.client_flood = CLIENT_FLOOD_DEFAULT;
ConfigFileEntry.tkline_expire_notices = 0;
ConfigFileEntry.reject_after_count = 5;
ConfigFileEntry.throttle_count = 4;
ConfigFileEntry.throttle_duration = 60;
+ ConfigFileEntry.client_flood_max_lines = CLIENT_FLOOD_DEFAULT;
+ ConfigFileEntry.client_flood_burst_rate = 5;
+ ConfigFileEntry.client_flood_burst_max = 5;
+ ConfigFileEntry.client_flood_message_time = 1;
+ ConfigFileEntry.client_flood_message_num = 2;
+
ServerInfo.default_max_clients = MAXCONNECTIONS;
+ ConfigFileEntry.nicklen = NICKLEN;
+
if (!alias_dict)
alias_dict = irc_dictionary_create(strcasecmp);
}
/* Some global values are also loaded here. */
check_class(); /* Make sure classes are valid */
privilegeset_delete_all_illegal();
+ construct_cflags_strings();
}
static void
}
- if((ConfigFileEntry.client_flood < CLIENT_FLOOD_MIN) ||
- (ConfigFileEntry.client_flood > CLIENT_FLOOD_MAX))
- ConfigFileEntry.client_flood = CLIENT_FLOOD_MAX;
+ /* 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;
if(!split_users || !split_servers ||
(!ConfigChannel.no_create_on_split && !ConfigChannel.no_join_on_split))