Index: include/config.h
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/include/config.h,v
retrieving revision 1.1.1.1.6.1.2.97.2.13
diff -u -r1.1.1.1.6.1.2.97.2.13 config.h
--- include/config.h	12 Nov 2006 21:49:52 -0000	1.1.1.1.6.1.2.97.2.13
+++ include/config.h	1 Jan 2007 18:58:22 -0000
@@ -265,12 +265,17 @@
 /** FAKELAG_CONFIGURABLE makes it possible to make certain classes exempted
  * from 'fake lag' (that is, the artificial delay that is added by the ircd
  * to prevent flooding, which causes the messages/commands of the user to
- * slow down). Naturally, incorrect use of this feature can cause SEVERE
- * issues, in fact it can easily bring your whole IRCd down if one of the
- * users with class::options::nofakelag does a good flood at full speed.
- * Hence, this is disabled by default, and you need to explicitly enable it
- * here IF YOU KNOW WHAT YOU ARE DOING. People complaining their ircd
- * ""crashed"" because of this setting will be shot. </DISCLAIMER>
+ * slow down) and 'target lag' (similar to fake lag except that it prevents
+ * users from sending messages/commands to a lot of different 
+ * users/channels (targets) in a very short ammount of time). Naturally, 
+ * incorrect use of this feature can cause SEVERE issues, in fact it can 
+ * easily bring your whole IRCd down if one of the users with
+ * class::options::nofakelag does a good flood at full speed. Incorrect 
+ * use of class::options::notargetlag probably won't cause a crash, but
+ * could easily allow users to spam hundreds of users/channels very 
+ * quickly. Hence, this is disabled by default, and you need to explicitly
+ * enable it here IF YOU KNOW WHAT YOU ARE DOING. People complaining their
+ * ircd ""crashed"" because of this setting will be shot. </DISCLAIMER>
  * Common usage for this are: a trusted bot ran by an IRCOp, that you only
  * want to give "flood access" and nothing else, and other such things.
  */
Index: include/struct.h
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/include/struct.h,v
retrieving revision 1.1.1.1.6.1.2.261.2.40
diff -u -r1.1.1.1.6.1.2.261.2.40 struct.h
--- include/struct.h	4 Jul 2006 10:05:18 -0000	1.1.1.1.6.1.2.261.2.40
+++ include/struct.h	1 Jan 2007 18:58:34 -0000
@@ -1107,6 +1107,7 @@
 };
 
 #define CLASS_OPT_NOFAKELAG		0x1
+#define CLASS_OPT_NOTARGLAG		0x2
 
 struct _configitem_class {
 	ConfigItem *prev, *next;
Index: src/s_conf.c
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/s_conf.c,v
retrieving revision 1.1.1.1.6.1.2.355.2.79
diff -u -r1.1.1.1.6.1.2.355.2.79 s_conf.c
--- src/s_conf.c	5 Dec 2006 13:50:57 -0000	1.1.1.1.6.1.2.355.2.79
+++ src/s_conf.c	1 Jan 2007 18:59:12 -0000
@@ -3533,6 +3533,8 @@
 			for (cep2 = cep->ce_entries; cep2; cep2 = cep2->ce_next)
 				if (!strcmp(cep2->ce_varname, "nofakelag"))
 					class->options |= CLASS_OPT_NOFAKELAG;
+				else if (!strcmp(cep2->ce_varname, "notargetlag"))
+					class->options |= CLASS_OPT_NOTARGLAG;
 		}
 	}
 	if (isnew)
@@ -3561,6 +3563,8 @@
 #ifdef FAKELAG_CONFIGURABLE
 				if (!strcmp(cep2->ce_varname, "nofakelag"))
 					;
+				else if (!strcmp(cep2->ce_varname, "notargetlag"))
+					;
 				else
 #endif
 				{
Index: src/s_user.c
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/s_user.c,v
retrieving revision 1.1.1.1.6.1.2.316.2.24
diff -u -r1.1.1.1.6.1.2.316.2.24 s_user.c
--- src/s_user.c	4 Nov 2006 00:10:53 -0000	1.1.1.1.6.1.2.316.2.24
+++ src/s_user.c	1 Jan 2007 18:59:17 -0000
@@ -468,6 +468,10 @@
 
 	if (IsAnOper(sptr))
 		return 0;
+	#ifdef FAKELAG_CONFIGURABLE
+	if (sptr->class && (sptr->class->options & CLASS_OPT_NOTARGLAG))
+		return 0;
+	#endif
 	if (sptr->targets[0] == hash)
 		return 0;
 
