From 504f309e38c6e5ae71d9ba2a6b5e401e03f042ae Mon Sep 17 00:00:00 2001 From: JD Horelick Date: Sat, 27 Mar 2010 14:58:04 -0400 Subject: [PATCH] Add option general::use_propagated_bans to allow disabling new KLINE. If this option is yes (default), KLINE by itself sets global (propagated) bans. If this option is no, KLINE by itself sets a local kline following cluster{}, compatible with 3.2 and older versions. --- doc/example.conf | 1 + doc/reference.conf | 7 +++++++ include/s_conf.h | 1 + modules/m_info.c | 6 ++++++ modules/m_kline.c | 2 +- src/newconf.c | 1 + src/s_conf.c | 1 + 7 files changed, 18 insertions(+), 1 deletion(-) diff --git a/doc/example.conf b/doc/example.conf index 3a852a4..aaf47cf 100755 --- a/doc/example.conf +++ b/doc/example.conf @@ -530,6 +530,7 @@ general { identify_command = "IDENTIFY"; non_redundant_klines = yes; warn_no_nline = yes; + use_propagated_bans = yes; stats_e_disabled = no; stats_c_oper_only=no; stats_h_oper_only=no; diff --git a/doc/reference.conf b/doc/reference.conf index 6c53d27..33f4a55 100755 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -1198,6 +1198,13 @@ general { */ warn_no_nline = yes; + /* use propagated bans: KLINE sets fully propagated bans. That means + * the klines are part of the netburst and restarted/split servers + * will get them, but they will not apply to 3.2 and older servers + * at all. + */ + use_propagated_bans = yes; + /* stats e disabled: disable stats e. useful if server ips are * exempted and you dont want them listing on irc. */ diff --git a/include/s_conf.h b/include/s_conf.h index a535d93..0ee207a 100644 --- a/include/s_conf.h +++ b/include/s_conf.h @@ -229,6 +229,7 @@ struct config_file_entry int default_umodes; int global_snotices; int operspy_dont_care_user_info; + int use_propagated_bans; int secret_channels_in_whois; int expire_override_time; }; diff --git a/modules/m_info.c b/modules/m_info.c index 716ca9d..e829127 100644 --- a/modules/m_info.c +++ b/modules/m_info.c @@ -530,6 +530,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.warn_no_nline, "Display warning if connecting server lacks N-line" }, + { + "use_propagated_bans", + OUTPUT_BOOLEAN, + &ConfigFileEntry.use_propagated_bans, + "KLINE sets fully propagated bans" + }, { "default_split_server_count", OUTPUT_DECIMAL, diff --git a/modules/m_kline.c b/modules/m_kline.c index 46ff730..364c30b 100644 --- a/modules/m_kline.c +++ b/modules/m_kline.c @@ -107,7 +107,7 @@ mo_kline(struct Client *client_p, struct Client *source_p, int parc, const char struct ConfItem *aconf; int tkline_time = 0; int loc = 1; - int propagated = 1; + int propagated = ConfigFileEntry.use_propagated_bans; if(!IsOperK(source_p)) { diff --git a/src/newconf.c b/src/newconf.c index 18ea7fc..d71788a 100644 --- a/src/newconf.c +++ b/src/newconf.c @@ -2253,6 +2253,7 @@ static struct ConfEntry conf_general_table[] = { "ts_warn_delta", CF_TIME, NULL, 0, &ConfigFileEntry.ts_warn_delta }, { "use_whois_actually", CF_YESNO, NULL, 0, &ConfigFileEntry.use_whois_actually }, { "warn_no_nline", CF_YESNO, NULL, 0, &ConfigFileEntry.warn_no_nline }, + { "use_propagated_bans",CF_YESNO, NULL, 0, &ConfigFileEntry.use_propagated_bans }, { "expire_override_time", CF_TIME, NULL, 0, &ConfigFileEntry.expire_override_time}, { "\0", 0, NULL, 0, NULL } }; diff --git a/src/s_conf.c b/src/s_conf.c index ffa0e8a..3f46088 100644 --- a/src/s_conf.c +++ b/src/s_conf.c @@ -749,6 +749,7 @@ set_default_conf(void) ConfigFileEntry.collision_fnc = YES; ConfigFileEntry.global_snotices = YES; ConfigFileEntry.operspy_dont_care_user_info = NO; + ConfigFileEntry.use_propagated_bans = YES; ConfigFileEntry.secret_channels_in_whois = NO; #ifdef HAVE_LIBZ