? src/modules/m_svsnolag.c
Index: makefile.win32
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/makefile.win32,v
retrieving revision 1.1.1.1.4.1.2.68.2.27
diff -u -r1.1.1.1.4.1.2.68.2.27 makefile.win32
--- makefile.win32	5 Nov 2006 20:13:10 -0000	1.1.1.1.4.1.2.68.2.27
+++ makefile.win32	29 Dec 2006 01:35:00 -0000
@@ -183,7 +183,7 @@
  SRC/MODULES/M_NICK.C SRC/MODULES/M_USER.C SRC/MODULES/M_MODE.C \
  SRC/MODULES/M_WATCH.C SRC/MODULES/M_PART.C SRC/MODULES/M_JOIN.C \
  SRC/MODULES/M_MOTD.C SRC/MODULES/M_OPERMOTD.C SRC/MODULES/M_BOTMOTD.C \
- SRC/MODULES/M_LUSERS.C SRC/MODULES/M_NAMES.C
+ SRC/MODULES/M_LUSERS.C SRC/MODULES/M_NAMES.C SRC/MODULES/M_SVSNOLAG.C
 
 DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDENT.DLL \
  SRC/MODULES/M_SETNAME.DLL SRC/MODULES/M_SETHOST.DLL SRC/MODULES/M_CHGIDENT.DLL \
@@ -219,7 +219,7 @@
  SRC/MODULES/M_WATCH.DLL SRC/MODULES/M_PART.DLL SRC/MODULES/M_JOIN.DLL \
  SRC/MODULES/M_MOTD.DLL SRC/MODULES/M_OPERMOTD.DLL SRC/MODULES/M_BOTMOTD.DLL \
  SRC/MODULES/M_LUSERS.DLL SRC/MODULES/M_NAMES.DLL \
- SRC/MODULES/CLOAK.DLL
+ SRC/MODULES/CLOAK.DLL SRC/MODULES/M_SVSNOLAG.DLL
 
 
 ALL: CONF UNREAL.EXE WIRCD.EXE src/modules/commands.dll MODULES 
@@ -774,6 +774,9 @@
 src/modules/cloak.dll: src/modules/cloak.c $(INCLUDES)
         $(CC) $(MODCFLAGS) src/modules/cloak.c $(MODLFLAGS)
 
+src/modules/m_svsnolag.dll: src/modules/m_svsnolag.c $(INCLUDES)
+        $(CC) $(MODCFLAGS) src/modules/m_svsnolag.c $(MODLFLAGS)
+
 dummy:
 
 
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	29 Dec 2006 01:35:43 -0000
@@ -326,7 +326,7 @@
 #ifdef USE_SSL
 #define FLAGS_SSL        0x10000000
 #endif
-#define FLAGS_UNOCCUP4   0x20000000 /* [FREE] */
+#define FLAGS_NOFAKELAG  0x20000000 /* Exception from fake lag */
 #define FLAGS_DCCBLOCK   0x40000000 /* Block all DCC send requests */
 #define FLAGS_MAP        0x80000000	/* Show this entry in /map */
 /* Dec 26th, 1997 - added flags2 when I ran out of room in flags -DuffJ */
@@ -428,6 +428,11 @@
 #define IsZipStart(x)	(0)
 #endif
 
+/* Fake lag exception */
+#define IsNoFakeLag(x)      ((x)->flags & FLAGS_NOFAKELAG)
+#define SetNoFakeLag(x)     ((x)->flags |= FLAGS_NOFAKELAG)
+#define ClearNoFakeLag(x)   ((x)->flags &= ~FLAGS_NOFAKELAG)
+
 #define IsHybNotice(x)		((x)->flags & FLAGS_HYBNOTICE)
 #define SetHybNotice(x)         ((x)->flags |= FLAGS_HYBNOTICE)
 #define ClearHybNotice(x)	((x)->flags &= ~FLAGS_HYBNOTICE)
Index: src/parse.c
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/parse.c,v
retrieving revision 1.1.1.1.6.1.2.56.2.4
diff -u -r1.1.1.1.6.1.2.56.2.4 parse.c
--- src/parse.c	28 Aug 2005 20:48:46 -0000	1.1.1.1.6.1.2.56.2.4
+++ src/parse.c	29 Dec 2006 01:35:51 -0000
@@ -158,7 +158,7 @@
  */
 inline void parse_addlag(aClient *cptr, int cmdbytes)
 {
-	if (!IsServer(cptr) && 
+	if (!IsServer(cptr) && !IsNoFakeLag(cptr) &&
 #ifdef FAKELAG_CONFIGURABLE
 		!(cptr->class && (cptr->class->options & CLASS_OPT_NOFAKELAG)) && 
 #endif
Index: src/modules/Makefile.in
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/modules/Attic/Makefile.in,v
retrieving revision 1.1.2.41.2.17
diff -u -r1.1.2.41.2.17 Makefile.in
--- src/modules/Makefile.in	22 Nov 2006 15:37:34 -0000	1.1.2.41.2.17
+++ src/modules/Makefile.in	29 Dec 2006 01:36:01 -0000
@@ -53,7 +53,7 @@
 	 m_svsfline.so m_dccdeny.so m_undccdeny.so m_whowas.so \
 	 m_connect.so m_dccallow.so m_userip.so m_nick.so m_user.so \
 	 m_mode.so m_watch.so m_part.so m_join.so m_motd.so m_opermotd.so \
-	 m_botmotd.so m_lusers.so m_names.so
+	 m_botmotd.so m_lusers.so m_names.so m_svsnolag.so
 
 #note change of .c to .o
 COMMANDS=m_sethost.o m_chghost.o m_chgident.o m_setname.o m_setident.o \
@@ -75,7 +75,7 @@
 	 m_svsfline.o m_dccdeny.o m_undccdeny.o m_whowas.o \
 	 m_connect.o m_dccallow.o m_userip.o m_nick.o m_user.o \
 	 m_mode.o m_watch.o m_part.o m_join.o m_motd.o m_opermotd.o \
-	 m_botmotd.o m_lusers.o m_names.o
+	 m_botmotd.o m_lusers.o m_names.o m_svsnolag.o
 
 
 MODULES=commands.so cloak.so $(R_MODULES)
@@ -403,6 +403,9 @@
 m_names.o: m_names.c $(INCLUDES)
 	$(CC) $(CFLAGS) $(MODULEFLAGS)  -c m_names.c
 
+m_svsnolag.o: m_svsnolag.c $(INCLUDES)
+	$(CC) $(CFLAGS) $(MODULEFLAGS)  -c m_svsnolag.c
+
 #############################################################################
 #             .so's section
 #############################################################################
@@ -811,6 +814,10 @@
 	$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
 	       -o m_names.so m_names.c
 
+m_svsnolag.so: m_svsnolag.c $(INCLUDES)
+	$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
+		-o m_svsnolag.so m_svsnolag.c
+
 #############################################################################
 #             and now the remaining modules...
 #############################################################################
Index: src/modules/l_commands.c
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/modules/Attic/l_commands.c,v
retrieving revision 1.1.2.63.2.10
diff -u -r1.1.2.63.2.10 l_commands.c
--- src/modules/l_commands.c	21 May 2006 23:16:53 -0000	1.1.2.63.2.10
+++ src/modules/l_commands.c	29 Dec 2006 01:36:11 -0000
@@ -121,6 +121,7 @@
 extern int m_motd_Init(ModuleInfo *modinfo), m_opermotd_Init(ModuleInfo *modinfo);
 extern int m_botmotd_Init(ModuleInfo *modinfo), m_lusers_Init(ModuleInfo *modinfo);
 extern int m_names_Init(ModuleInfo *modinfo);
+extern int m_svsnolag_Init(ModuleInfo *modinfo);
 #ifdef GUEST
 extern int m_guest_Init(ModuleInfo *modinfo);
 #endif
@@ -169,6 +170,7 @@
 extern int m_motd_Load(int module_load), m_opermotd_Load(int module_load);
 extern int m_botmotd_Load(int module_load), m_lusers_Load(int module_load);
 extern int m_names_Load(int module_load);
+extern int m_svsnolag_Load(int module_load);
 #ifdef GUEST
 extern int m_guest_Load(int module_load);
 #endif
@@ -203,7 +205,7 @@
 extern int m_nick_Unload(), m_user_Unload(), m_mode_Unload();
 extern int m_watch_Unload(), m_part_Unload(), m_join_Unload();
 extern int m_motd_Unload(), m_opermotd_Unload(), m_botmotd_Unload();
-extern int m_lusers_Unload(), m_names_Unload();
+extern int m_lusers_Unload(), m_names_Unload(), m_svsnolag_Unload();
 #ifdef GUEST
 extern int m_guest_Unload();
 #endif
@@ -344,6 +346,7 @@
 	m_botmotd_Init(ModCmdsInfo);
 	m_lusers_Init(ModCmdsInfo);
 	m_names_Init(ModCmdsInfo);
+	m_svsnolag_Init(ModCmdsInfo);
 #ifdef GUEST
 	m_guest_Init(ModCmdsInfo);
 #endif
@@ -456,6 +459,7 @@
 	m_botmotd_Load(module_load);
 	m_lusers_Load(module_load);
 	m_names_Load(module_load);
+	m_svsnolag_Load(module_load);
 #ifdef GUEST
 	m_guest_Load(module_load);
 #endif
@@ -568,6 +572,7 @@
 	m_botmotd_Unload();
 	m_lusers_Unload();
 	m_names_Unload();
+	m_svsnolag_Unload();
 #ifdef GUEST
 	m_guest_Unload();
 #endif
