? allow_insane_bans.patch
Index: include/dynconf.h
===================================================================
RCS file: /cvs/unreal/include/dynconf.h,v
retrieving revision 1.1.1.1.6.1.2.52.2.24
diff -u -r1.1.1.1.6.1.2.52.2.24 dynconf.h
--- include/dynconf.h	15 Aug 2010 04:44:16 -0000	1.1.1.1.6.1.2.52.2.24
+++ include/dynconf.h	26 Oct 2010 19:36:42 -0000
@@ -80,6 +80,7 @@
 	unsigned dont_resolve:1;
 	unsigned use_ban_version:1;
 	unsigned mkpasswd_for_everyone:1;
+	unsigned allow_insane_bans;
 	unsigned allow_part_if_shunned:1;
 	unsigned check_target_nick_bans:1;
 	unsigned use_egd : 1;
@@ -249,6 +250,7 @@
 #define IDENT_READ_TIMEOUT		iConf.ident_read_timeout
 
 #define MKPASSWD_FOR_EVERYONE	iConf.mkpasswd_for_everyone
+#define ALLOW_INSANE_BANS		iConf.allow_insane_bans
 #define CHANCMDPFX iConf.channel_command_prefix
 
 #define DEFAULT_BANTIME			iConf.default_bantime
Index: src/s_conf.c
===================================================================
RCS file: /cvs/unreal/src/s_conf.c,v
retrieving revision 1.1.1.1.6.1.2.355.2.114
diff -u -r1.1.1.1.6.1.2.355.2.114 s_conf.c
--- src/s_conf.c	15 Aug 2010 04:44:16 -0000	1.1.1.1.6.1.2.355.2.114
+++ src/s_conf.c	26 Oct 2010 19:36:48 -0000
@@ -7437,6 +7437,9 @@
 				else if (!strcmp(cepp->ce_varname, "mkpasswd-for-everyone")) {
 					tempiConf.mkpasswd_for_everyone = 1;
 				}
+				else if (!strcmp(cepp->ce_varname, "allow-insane-bans")) {
+					tempiConf.allow_insane_bans = 1;
+				}
 				else if (!strcmp(cepp->ce_varname, "allow-part-if-shunned")) {
 					tempiConf.allow_part_if_shunned = 1;
 				}
@@ -8185,6 +8188,9 @@
 				else if (!strcmp(cepp->ce_varname, "mkpasswd-for-everyone")) {
 					CheckDuplicate(cepp, options_mkpasswd_for_everyone, "options::mkpasswd-for-everyone");
 				}
+				else if (!strcmp(cepp->ce_varname, "allow-insane-bans")) {
+					CheckDuplicate(cepp, options_mkpasswd_for_everyone, "options::allow-insane-bans");
+				}
 				else if (!strcmp(cepp->ce_varname, "allow-part-if-shunned")) {
 					CheckDuplicate(cepp, options_allow_part_if_shunned, "options::allow-part-if-shunned");
 				}
Index: src/modules/m_stats.c
===================================================================
RCS file: /cvs/unreal/src/modules/Attic/m_stats.c,v
retrieving revision 1.1.2.8.2.18
diff -u -r1.1.2.8.2.18 m_stats.c
--- src/modules/m_stats.c	21 Jun 2010 12:27:45 -0000	1.1.2.8.2.18
+++ src/modules/m_stats.c	26 Oct 2010 19:36:49 -0000
@@ -1329,6 +1329,8 @@
 	    sptr->name, DONT_RESOLVE);
 	sendto_one(sptr, ":%s %i %s :options::mkpasswd-for-everyone: %d", me.name, RPL_TEXT,
 	    sptr->name, MKPASSWD_FOR_EVERYONE);
+	sendto_one(sptr, ":%s %i %s :options::allow-insane-bans: %d", me.name, RPL_TEXT,
+	    sptr->name, ALLOW_INSANE_BANS);
 	sendto_one(sptr, ":%s %i %s :options::allow-part-if-shunned: %d", me.name, RPL_TEXT,
 	    sptr->name, ALLOW_PART_IF_SHUNNED);
 	sendto_one(sptr, ":%s %i %s :maxchannelsperuser: %i", me.name, RPL_TEXT,
Index: src/modules/m_tkl.c
===================================================================
RCS file: /cvs/unreal/src/modules/Attic/m_tkl.c,v
retrieving revision 1.1.2.38.2.36
diff -u -r1.1.2.38.2.36 m_tkl.c
--- src/modules/m_tkl.c	29 Jun 2010 03:00:34 -0000	1.1.2.38.2.36
+++ src/modules/m_tkl.c	26 Oct 2010 19:36:51 -0000
@@ -626,9 +626,10 @@
 	{
 		char c;
 		
-		if (!strchr(usermask, '*') && !strchr(usermask, '?'))
+		if ((!strchr(usermask, '*') && !strchr(usermask, '?')) || (ALLOW_INSANE_BANS))
 		{
 			/* Allow things like clone@*, dsfsf@*, etc.. */
+			/* Also allow insane bans if set::options::allow-insane-bans is set -- Stealth */
 		} else {
 			/* Check hostmask. */
 			
