diff -uNrd ircd-ratbox-1.3-1/BUGS BgChat-Ircd/BUGS
--- ircd-ratbox-1.3-1/BUGS	Thu Jun 26 10:00:22 2003
+++ BgChat-Ircd/BUGS	Wed Dec 31 19:00:00 1969
@@ -1,60 +0,0 @@
- Known Bugs worthy of a mention:
---------------------------------------------------------------------------------
-  
-1.  Issues with server hostmasking.
-    - If for example the new servername is blah.blah.blah.nl, the following
-      servernames will be checked, in this order: *.blah.blah.nl, *.blah.nl,
-      *.nl, one of which will match the host-masked server they are
-      connecting behind. This will be accepted by the host-masked server it
-      is connected behind, but when it reaches the server the host-masked
-      server is connected to, the find_server will match, so the host-masked
-      server will be dropped.
-      --> This corrected?
-
-2.  /MODUNLOAD causes cores:
-    - If a module is modified before being unloaded, /MODUNLOAD (and
-      therefore /MODRELOAD) may cause a core.
-
-      This problem is caused by the behaviour of the OS, which treats
-      shared libraries differently to executables (modifying the ircd
-      binary whilst it is running would also cause a core, but is denied
-      by the OS).  There is no way to fix this at the application level,
-      and fixing the OS to do the right thing is also difficult.
-
-      A workaround to avoid coring is possible however.  To install new
-      modules, first remove or rename the old module, then copy/move the
-      new file into place.  /MODUNLOAD will then work successfully.
-
-      Alternatively, running ./configure with the --disable-shared-modules
-      argument will link all the commands statically, losing the advantages
-      of upgrading at runtime, but reducing the chances of accidentally
-      coring your server.
-
-3.  Problem with msgfmt command building custom msgs using gettext
-    - Please ensure you are using GNU gettext version 0.10.35.
-      Other versions are untested, and some are known to be
-      incompatible.
-
-4.  Problems with quote set msglocale not working on linux.
-    This seems to be a linux problem, /quote set msglocale will sometimes
-    get "undone" when a new client connects.  The server will also sometimes
-    not correctly set the locale from ircd.conf on startup.
-
-    The solution is if a locale is needed, to have the message_locale="x"
-    in ircd.conf, and then rehash to make it take effect.  A rehash after
-    startup will also need to be performed to set the locale.
-
-5.  When updating a message file, in certain unknown situations it will core
-    if the file in use is being accessed.  To prevent this from happening,
-    use '/quote SET MSGLOCALE standard' BEFORE issuing make install.  When
-    the file is installed, you can SET MSGLOCALE back to the language that
-    was just updated.
-
-BUG REPORTS: If you run this code and encounter problems, you must report
- the bug in by E-MAIL to ircd-ratbox@lists.ratbox.org
-
- Please include a gdb backtrace and keep your binaries, modules and core file
- in case the developers need more information.
-
---------------------------------------------------------------------------------
-$Id: BUGS,v 7.61.6.1 2003/06/26 14:00:22 androsyn Exp $
diff -uNrd ircd-ratbox-1.3-1/CREDITS BgChat-Ircd/CREDITS
--- ircd-ratbox-1.3-1/CREDITS	Mon Aug 19 01:21:04 2002
+++ BgChat-Ircd/CREDITS	Mon Mar 29 07:17:54 2004
@@ -1,12 +1,5 @@
 $Id: CREDITS,v 1.9 2002/08/19 05:21:04 androsyn Exp $
  
-ircd-ratbox is an evolution where ircd-hybrid left off around version 7-rc1.  
-Currently the ircd-ratbox consists of the following developers:
- 
-AndroSyn, Aaron Sethman <androsyn@ratbox.org>
-fl, Lee Hardy <lee@leeh.co.uk>
-larne, Edward Brocklesby <ejb@sdf.lonestar.org>
- 
  
 Of course our work is based on the work of many, many others over the past
 10 or so years since irc has existed, including the work done by the Hybrid
diff -uNrd ircd-ratbox-1.3-1/Hybrid-team BgChat-Ircd/Hybrid-team
--- ircd-ratbox-1.3-1/Hybrid-team	Sat Jul 13 21:30:27 2002
+++ BgChat-Ircd/Hybrid-team	Wed Dec 31 19:00:00 1969
@@ -1,58 +0,0 @@
-$Id: Hybrid-team,v 7.52 2002/07/14 01:30:27 androsyn 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
-available. "hybrid" is the name for the collective efforts of a group
-of people, all of us.
- 
-Anyone is welcome to contribute to this effort.  You are encouraged
-to participate in the Hybrid mailing list.  To subscribe to the
-Hybrid List, send email to listmanager@the-project.org with the
-subject "subscribe hybrid".
- 
-The core team as, of this major release:
- 
-A1kmm, Andrew Miller <a1kmm@mware.virtualave.net>
-adrian, Adrian Chadd <adrian@creative.net.au>
-AndroSyn, Aaron Sethman <androsyn@ratbox.org>
-billy-jon, Bill Jonus <bill@mu.org>
-cosine, Patrick Alken <wnder@uwns.underworld.net>
-David-T, David Taylor <davidt@yadt.co.uk>
-Dianora, Diane Bruce <db@db.net>
-einride, Erik S. Johansen, <einride@einride.org>
-fl, Lee Hardy <lee@leeh.co.uk>
-Hwy101, W. Campbell <wcampbel@botbay.net>
-larne, Edward Brocklesby <ejb@sdf.lonestar.org>
-isomer, Perry Lorier <perry@coders.net>
-jmallett, Juli Mallett <jmallett@FreeBSD.org>
-k9, Jeremy Chadwick <yoshi@parodius.com>
-Rodder, Jon Lusky <lusky@blown.net>
-toot, Toby Verrall <to7@antipope.fsnet.co.uk>
-Wohali, Joan Touzet <joant@ieee.org>
-xyst, Greg Prosser <gnp@arrogant.org>
- 
-The following people have contributed blood, sweat, and/or code to
-this release of hybrid, in nick alphabetical order:
- 
-adx, Piotr Nizynski <adx@crashnet.pl>
-bysin, Ben Kittridge <bkittridge@cfl.rr.com>
-desrt, Ryan Lortie <desertangel@mindless.com>
-Habeeb, David Supuran <habeeb@cfl.rr.com>
-jv, Jakub Vlasek <jv@pilsedu.cz>
-kre, Dinko Korunic <kreator@fly.srk.fer.hr>
-madmax, Paul Lomax <madmax@efnet.org>
-Neph|l|m, Adel Mezibra <adel@cybercable.fr>
-Riedel, Dennis Vink, <vink@vuurwerk.nl>
-Robert Alan Byer <byer@mail.ourservers.net>
-scuzzy, David Todd <scuzzy@aniverse.net>
-spookey, David Colburn <spookey@spookey.org>
-vulture, Sean Stanek <vulture@cs.iastate.edu>
-vx0, Mark Miller <mark@vx0.net>
-zb^3, Alfred Perlstein <alfred@freebsd.org>
- 
-Others are welcome.  Always.  And if we left anyone off the above list,
-be sure to let us know that too.  Many others have contributed to
-previous versions of this ircd and it's ancestors, too many to list
-here.
- 
-Send bug fixes/complaints/rotten tomatoes to ircd-hybrid@the-project.org.
diff -uNrd ircd-ratbox-1.3-1/INSTALL BgChat-Ircd/INSTALL
--- ircd-ratbox-1.3-1/INSTALL	Thu Nov 21 16:18:18 2002
+++ BgChat-Ircd/INSTALL	Wed Dec 31 19:00:00 1969
@@ -1,266 +0,0 @@
-                            Hybrid INSTALL Document
-
-   $Id: INSTALL,v 7.34 2002/11/21 21:18:18 leeh Exp $
-
-   Copyright (c) 2001 by ircd-hybrid team
-   Copyright (c) 2002 ircd-ratbox development team
-
-     ----------------------------------------------------------------------
-
-   +------------------------------------------------------------------------+
-   | Note for those who dont bother reading docs                            |
-   |                                                                        |
-   | Reading INSTALL is now a must, as the old DPATH is now specified when  |
-   | configure is run.                                                      |
-   |                                                                        |
-   | - You now need to ./configure --prefix="/path/to/install/it"           |
-   |                                                                        |
-   |   Important: The old config format WILL NOT WORK. Please see point 6!  |
-   |                                                                        |
-   |   The old kline format WILL NOT WORK. Please see point 7!              |
-   +------------------------------------------------------------------------+
-
-     ----------------------------------------------------------------------
-
-                                  HOW TO BUILD
-
-   As of hybrid-4, the distribution uses GNU autoconf instead of the old
-   Config script. The Makefile has also been updated to include CFLAGS
-   defines for popular modern OSes.
-
-   1. 
-
-       Read the ChangeLog file to find out about the exciting new features in
-       this version. Other good reads are doc/whats-new.txt, BUGS,
-       doc/example.conf, and README.FIRST.
-
-       An example.conf for EFnet is in doc/ with the values "approved" on 12
-       December 2001.
-
-   2. 
-
-       Run the configure script. It will create include/setup.h and the
-       Makefiles to match your system. In ircd-ratbox, the paths are now handled
-       with the --prefix option to configure, not in config.h.
-       /usr/local/ircd is the default if no prefix is specified.
-
-       ./configure --prefix="/usr/local/ircd"
-
-         Note: There are some special optional parameters to the configure
-         script that some admins may wish to use.
-
-          * 
-
-            --enable-kqueue - Use the superior kqueue(2) system call as
-            opposed to the default poll(2). This is currently only available
-            on FreeBSD 4.1 or higher.
-
-          * 
-
-            --enable-devpoll - Enable the superior /dev/poll support on
-            Solaris. Linux /dev/poll is broken and will not work with this
-            option.
-
-          * 
-
-            --enable-rtsigio - Enable the superior Linux RealTime Signal I/O
-            system. This is currently only available on 2.4 Linux kernel
-            versions or later.
-
-          * 
-
-            --enable-openssl - Enable the openssl dependent crypto functions.
-            This will allow CHALLENGE to work and encrypted links. On systems
-            where the configure script can automatically detect OpenSSL, this
-            option is not necessary. If configure cannot find OpenSSL, you
-            must specify a path with this option
-            (--enable-openssl=/path/to/openssl)
-
-          * 
-
-            --enable-ipv6 - Enable IPv6 support.
-
-          * 
-
-            --disable-shared-modules - Disable module support. This option is
-            more secure, but reduces a lot of the flexibility in Hybrid 7.
-            This may need to be used on some systems without a working dl
-            library.
-
-          * 
-
-            --disable-assert - Disable some of the debugging code. This
-            should be used on all production servers for maximum speed and to
-            prevent cores from things that shouldn't normally happen.
-
-          * 
-
-            --enable-small-net - Tunes the server for smaller networks by
-            reducing the startup memory footprint. This should really only be
-            used for *small* networks, as this tends to be a performance hit
-            on larger networks.
-
-          * 
-
-            --with-nicklen - Sets the maximum NICK length. Note that this
-            must be consistant across your entire network.
-
-          * 
-
-            --with-maxclients - Sets the maximum number of clients support by
-            the server. Note that this also twiddles the HARD_FDLIMIT_ define
-            so it is no longer necessary to modify include/config.h for this.
-            If HARD_FDLIMIT_ ends up being larger that FD_SETSIZE when using
-            select() for your I/O loop, s_bsd_select.c will refuse to compile
-            (and tell you to use poll instead). Take this error's advice and
-            use --enable-poll or something a bit more efficient. You'll be
-            happier at the end of the day for it.
-
-   3. 
-
-       Look over the "include/config.h" file. This allows you to change the
-       few remaining hard coded options of how the ircd will operate. Most
-       admins will only have to change a few settings. USE_SYSLOG is the only
-       one that most admins will need to edit.
-
-         Note: Note that you must have permission by the sysadmin to send
-         messages to the system log files.
-
-         All other settings in config.h are not necessary to edit.
-
-   4. 
-
-       make should build ircd.
-
-   5. 
-
-       make install will install the server, modules(1), and tools in the
-       path defined in config.h and the prefix specified when configure was
-       run.
-
-       (1) Unless the server was compiled without module support.
-
-   6. 
-
-       If you wish to enable the user log, oper log, and failed oper log,
-       issue these commands at the shell prompt (in the prefix directory)
-
- $ touch logs/userlog
- $ touch logs/operlog
- $ touch logs/foperlog
-
-         Note: If you use different names in ircd.conf, you must 'touch' the
-         specific names.
-
-   7. 
-
-       If you are upgrading from Hybrid 5 or Hybrid 6, the config file has
-       changed drastically...
-
-       There is a utility to convert your old config file to the new format.
-       In prefix/bin there is something called "convertconf". Its usage is:
-       ./convertconf (old config file to convert) (converted file name)
-
-       Convertconf will NOT convert I: lines.  You must use "convertilines"
-       for this which contains a much superior method of conversion and
-       will group I: together under one auth {};.
-
-       Once this is done, move your new config to prefix/etc/ircd.conf and
-       EDIT IT! There are still things that need changing in the config,
-       including the fact that classes MUST be above auth/connect blocks!
-
-   8. 
-
-       If you are upgrading from Hybrid 5 or Hybrid 6, the kline file has
-       also changed...
-
-       There is a utility to convert the old kline configuration file to the
-       new format. In prefix/bin there is a program called "convertklines".
-       Its usage is: ./convertklines (old kline.conf filename) (new
-       kline.conf filename) (dline.conf filename).
-
-       Once this is done, move the new files into the prefix/etc/ directory
-       under their proper names. By default, the kline file is named
-       kline.conf and the dline file is named dline.conf.
-
-     ----------------------------------------------------------------------
-
-                                HOW TO GET HELP
-
-   Send Check or Money Order to... just kidding! You're on your own for
-   support. Try asking other ircd-ratbox admins on EFnet if you can't fix it
-   yourself. If you do fix anything, however, please send context or unified
-   diffs to ircd-ratbox@lists.ratbox.org so the fixes can be incorporated into
-   the next release of ircd-hybrid. If ratbox crashes on you, PLEASE contact
-   ircd-ratbox@lists.ratbox.org ASAP with a backtrace of the core.
-
-   DISCUSSION: There is a mailing list for discussion of ratbox issues,
-    To subscribe, visit:
-       http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox
-       
-     ----------------------------------------------------------------------
-
-                                     NOTES
-
-   The best way to get a backtrace of the core is to follow this sequence of
-   instructions:
-
-   1. 
-
-       Change to the directory containing the core file
-
-   2. 
-
-       Run gdb on the binary and the core file. With an unmodified ircd-ratbox
-       installation, an example command line is below (in the /usr/local/ircd
-       directory)
-
- $ gdb bin/ircd ircd.core
-
-   3. 
-
-       At the "(gdb)" prompt, enter the command "bt"
-
-   4. 
-
-       Save the output of the backtrace command and send it to
-       ircd-ratbox@lists.ratbox.org
-
-   5. 
-
-       Be sure to save the ircd binary, the modules, and the core file in a
-       safe place in case the developers need to look deeper than a backtrace
-       provides.
-
-     ----------------------------------------------------------------------
-
-                                 OPENSSL NOTES
-
-   Older FreeBSD machines sometimes have the obsolete ports version of
-   OpenSSL libcrypto in /usr/local/lib. When configure is used with
-   --enable-openssl, and libintl is detected in /usr/local/lib, the
-   /usr/local/lib directory will be searched BEFORE the system /usr/lib for
-   libraries by the linker. The linker may try to link to the old
-   /usr/local/lib libcrypto instead of the system /usr/lib libcrypto. Some
-   older versions may cause error messages similar to the following:
-
- gcc -g -O2 -DIRCD_PREFIX=\"/home/wcampbel/ircd\" -Wl,-export-dynamic
- -L/usr/local/lib -o ircd blalloc.o channel.o vchannel.o class.o client.o
- dline_conf.o event.o fdlist.o fileio.o hash.o irc_string.o ircd.o ircdauth.o
- ircd_signal.o linebuf.o list.o listener.o m_error.o match.o memdebug.o
- modules.o motd.o mtrie_conf.o oldparse.o numeric.o packet.o parse.o res.o rsa.o
- restart.o s_auth.o s_bsd.o s_bsd_kqueue.o s_conf.o s_debug.o s_gline.o s_log.o
- s_misc.o s_serv.o s_stats.o s_user.o scache.o send.o sprintf_irc.o tools.o
- whowas.o lex.yy.o y.tab.o version.o -lintl -ldescrypt  -lcrypto -lfl
- rsa.o: In function `get_randomness':
- /home/wcampbel/dev/ircd-ratbox/src/rsa.c(.text+0x60): undefined reference to
- `RAND_pseudo_bytes'
- /usr/local/lib/libcrypto.so: undefined reference to `ERR_load_RSAREF_strings'
- /usr/local/lib/libcrypto.so: undefined reference to `RSA_PKCS1_RSAref'
- *** Error code 1
-
-   If this is the case, you may need to rerun configure without the
-   --enable-openssl option, manually edit src/Makefile and modules/Makefile
-   to put -L/usr/lib before the -L/usr/local/lib in LDFLAGS, or remove the
-   old OpenSSL from /usr/local, and recompile all applications that use
-   libcrypto to use the system one.
diff -uNrd ircd-ratbox-1.3-1/INSTALL.BGChat BgChat-Ircd/INSTALL.BGChat
--- ircd-ratbox-1.3-1/INSTALL.BGChat	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/INSTALL.BGChat	Fri Apr  9 05:20:58 2004
@@ -0,0 +1,14 @@
+Steps:
+1. ./configure --prefix="/path/to/ircd/dir"
+2. make install
+4. cd contrib 
+5. make install
+6. edit /path/to/ircd/dir/etc/ircd.conf
+5. run ircd (:
+6. help for run ? 
+7. start ircd for /home/ircd-user/ircd/bin/ircd <- ./ircd 
+8. Tenks For All...
+
+BgChat Develop Team ==> HaKer4o/Startx
+
+
diff -uNrd ircd-ratbox-1.3-1/LICENSE BgChat-Ircd/LICENSE
--- ircd-ratbox-1.3-1/LICENSE	Sat Jan  5 04:14:20 2002
+++ BgChat-Ircd/LICENSE	Wed Dec 31 19:00:00 1969
@@ -1,341 +0,0 @@
-# $Id: LICENSE,v 7.3 2002/01/05 09:14:20 a1kmm Exp $
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff -uNrd ircd-ratbox-1.3-1/Makefile.in BgChat-Ircd/Makefile.in
--- ircd-ratbox-1.3-1/Makefile.in	Thu Jun 26 10:00:24 2003
+++ BgChat-Ircd/Makefile.in	Mon Mar 29 07:17:54 2004
@@ -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.41.6.1 2003/06/26 14:00:24 androsyn Exp $
+#*   $Id: Makefile.in,v 7.40 2002/11/21 21:18:18 leeh Exp $
 #*/
 
 RM=@RM@
diff -uNrd ircd-ratbox-1.3-1/README.FIRST BgChat-Ircd/README.FIRST
--- ircd-ratbox-1.3-1/README.FIRST	Thu Jun 26 10:00:24 2003
+++ BgChat-Ircd/README.FIRST	Wed Dec 31 19:00:00 1969
@@ -1,108 +0,0 @@
-If you don't read this first, we won't help you.
-:-)
-
-******************************* IMPORTANT *************************************
-
-  *********** Note for those who dont bother reading docs *****************
-  * - Reading INSTALL is now a must, as the old DPATH is now specified    *
-  *   when configure is run.                                              *
-  *   You now need to ./configure --prefix="/path/to/install/it"          *
-  * - The old config format WILL NOT WORK.  Please see doc/example.conf ! *
-  * - The old kline format WILL NOT WORK.  Please use convertklines which *
-  *   will be installed with your ircd!					  *
-  * - If you get errors compiling custom.mo, check if you are using the   *
-  *   most recent version of gettext.  Tested with GNU gettext 0.10.35.   *
-  *************************************************************************
-
-  ALSO, IF YOU ARE UPGRADING YOUR CURRENT SOURCE TREE, AND YOU TRY TO BUILD
-  IN IT WITHOUT PERFORMING AT LEAST 'make clean', THINGS _WILL_ BREAK.  IT IS
-  RECOMMENDED THAT YOU RUN 'make distclean' AND THEN RERUN './configure'!
-
-******************************* REQUIREMENTS **********************************
-
-Necessary Requirements:
-
-- A supported platform (look below)
-
-- A working dynamic load library, unless
-  compiling as static, without module
-  support.
-
-- A working lex.  Solaris /usr/ccs/bin/lex
-  appears to be broken, on this system flex
-  should be used.
-
-
-Feature Specific Requirements:
-
-- For the SSL Challenge controlled OPER feature and encrypted server links,
-  a working OpenSSL library
-
-- For dynamic message locale support, a working gettext (intl) library
-
-- For encrypted oper and (optional) server passwords, a working DES and/or
-  MD5 library
-
-*******************************************************************************
-
-- To report bugs in ircd-ratbox, send the bug report to ircd-ratbox@lists.ratbox.org
-
-- Known bugs are listed in the BUGS file
-
-- See the INSTALL document for info on configuring and compiling
-  ircd-ratbox.
-
-- Please read doc/index.txt to get an overview of the current documentation.
-
-- Old Hybrid 5/6 configuration files are no longer supported.  All conf
-  files will have to be converted to the new format.  A convertconf
-  utility is provided and installed into bin/.
-
-- If you are wondering why config.h is practically empty, its because many 
-  things that were once in config.h are now specified in the 'general'
-  block of ircd.conf.  Look at example.conf for more information about
-  these options.
-
-- The files, /etc/services, /etc/protocols, and /etc/resolv.conf, MUST be
-  readable by the user running the server in order for ircd to start.
-  Errors from adns causing the ircd to refuse to start up are often related
-  to permission problems on these files.
-
-- There is a mailing list for ircd-ratbox.  To subscribe to this list
-  visit http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox
-  Note that this list also gets the commit emails from the CVS server.
-
-- FREEBSD USERS: if you are compiling with ipv6 you may experience
-  problems with ipv4 due to the way the socket code is written.  To
-  fix this you must: "sysctl net.inet6.ip6.v6only=0"
-
-- SOLARIS USERS: this code appears to tickle a bug in older gcc and 
-  egcs ONLY on 64-bit Solaris7.  gcc-2.95 and SunPro C on 64bit should
-  work fine, and any gcc or SunPro compiled on 32bit.
-
-- DARWIN AND MACOS X USERS: You must be using at least the December 2001
-  Development Tools from Apple to build ircd-ratbox with shared modules.
-  Before then you MUST disable shared modules, as we do not have the proper
-  flags for cc(1) prior to that point to produce shared modules.
-
-- SUPPORTED PLATFORMS: this code should compile without any warnings
-  on FreeBSD 3.x/4.x, RedHat 6.2, Debian Potato and Solaris 7/8 sparc.  
-  Please let us know if you find otherwise.  
-  It probably does not compile on AIX, IRIX or libc5 Linux.
-
-- TESTED PLATFORMS:  The code has been tested on the following platforms, and
-  is known to run properly.
-  FreeBSD 3.x/4.x
-  Linux glibc
-  Solaris 2.6/7/8
-  OpenBSD 2.8
-  NetBSD 1.4
-  Cygwin 1.3+ (static modules, no servlink)
-  OpenVMS/Alpha 7.2 (static modules, no servlink)
-
-- Please read doc/whats-new.txt for information about what is in this release
-
-- Other files recommended for reading: BUGS, INSTALL
-
---------------------------------------------------------------------------------
-$Id: README.FIRST,v 7.38.6.1 2003/06/26 14:00:24 androsyn Exp $
diff -uNrd ircd-ratbox-1.3-1/README.VMS BgChat-Ircd/README.VMS
--- ircd-ratbox-1.3-1/README.VMS	Thu Jun 26 10:00:24 2003
+++ BgChat-Ircd/README.VMS	Wed Dec 31 19:00:00 1969
@@ -1,47 +0,0 @@
-Last tested version: hybrid-7beta9 20020205_1
-
-To compile ircd on VMS, simply execute the make.com script
-from the top-level ircd directory:
-
-  $ SET DEF [.IRCD-HYBRID-7]
-  $ @MAKE
-
-This should build [.SRC]IRCD.EXE (servlink is not yet supported
-for VMS). 
-
-You may want to edit [.INCLUDE]CONFIG.H, but there is no longer
-anything very interesting there.
-
-IRCD needs the following logical names defined: IRCD$BASEDIR, IRCD$CONFDIR,
-IRCD$BINDIR, and IRCD$LOGDIR.
-For example:
-
-$ ASSIGN DISK$USER:[EBROCKLESBY.IRCD.BIN] IRCD$BASEDIR:
-$ ASSIGN DISK$USER:[EBROCKLESBY.IRCD.BIN.BIN] IRCD$BINDIR:
-$ ASSIGN DISK$USER:[EBROCKLESBY.IRCD.BIN.ETC] IRCD$CONFDIR:
-$ ASSIGN DISK$USER:[EBROCKLESBY.IRCD.BIN.LOG] IRCD$LOGDIR:
-
-After IRCD.EXE is built, you'll have to install it by hand. Create
-the above directories, and put IRCD.EXE into IRCD$BINDIR:.  The sample
-[.doc]example.conf should be modified as needed and placed in
-IRCD$CONFDIR:IRCD.CONF. 
-
-Known problems on VMS:
-  - Lack of SERVLINK support means that ZIP and SSL aren't yet possible
-    for VMS.
-  - If IRCD.EXE exits immediately after startup, make sure that IRCD$CONFDIR:IRCD.PID
-    doesn't exist.
-
-It should work fine when started with RUN/DETACH.
-
-So far, IRCD has been tested on OpenVMS 7.2/Alpha using DEC C V6.0-001.
-
-If anyone gets ircd working on VMS (or has problems with it), please mail me
-(ejb@sdf.lonestar.org) with any comments you have.
-
-If you have problem compiling from source, or are on a slow system
-(building IRCD on a VAXstation 3000 takes about two hours),
-binary distributions are available on the FTP site.
-(actually, they aren't yet, but at some time in the future they should be)
-
-$Id: README.VMS,v 1.12.2.1 2003/06/26 14:00:24 androsyn Exp $
diff -uNrd ircd-ratbox-1.3-1/RELNOTES BgChat-Ircd/RELNOTES
--- ircd-ratbox-1.3-1/RELNOTES	Fri Jan  9 15:05:13 2004
+++ BgChat-Ircd/RELNOTES	Wed Dec 31 19:00:00 1969
@@ -1,101 +0,0 @@
-
-This is the current release of the 'stable' tree of ircd-ratbox.
-
--- ircd-ratbox-1.3-1
-- really disable the writev() code again that was causing random breakage
-  of networks on the NICK command
-- don't ratelimit privmsg
-- add a config file option to make operstring/adminstring admin only
-
--- ircd-ratbox-1.3
-- require local users to have a '.' or ':' in their host as hyb6 has
-  problems with it
-- remove some old "ip skipping" stuff in links that wasnt relevant
-- fix core with contrib/m_mkpasswd.c
-
--- ircd-ratbox-1.3rc4
-- new -conftest option to ircd that will just test the config file
-- ERROR messages are now only accepted from possible servers
-- opers can now dline upto /16
-- stats p was testing the wrong flag, so showed hidden admins as [A]
-- another servlink fix
-- reenabled notices for clustered commands like unkline
-- fixed possible resolver memory leak
-- fix a reject cache issue that caused the unknown_list to get borked
-- local admin requests are no longer paced, remote ones are paced less heavily
-- ENDOF numerics are now sent when a command is rate limited
-- fix for first param to HELP being empty
-- local wallops are now sent as operwall
-- fix to display right conf filename during errors
-- disabled writev()
-- kqueue code update
-
--- ircd-ratbox-1.3rc3
-- servlink fix
-- fix some writev() issues
-- up the delayed exit time to 10 seconds
-- fix a bug with the reject cache where we could end up exiting things twice
-
--- ircd-ratbox-1.3rc2
-- ERROR will no longer send the IP of the client it is sending it to, as
-  this can cause an IP leak with servers.
-- fix to make stats_{i|k}_oper_only show in INFO
-- added hide_error_messages = {yes|opers|no}; to general {};, controlling
-  whether ERROR messages received are hidden to opers/admins, hidden to opers
-  or visible to both.
-- made ERROR log the full IP to ircd.log
-- kqueue fix
-- gline_min_cidr shouldve been testing <, not <=
-- added gline_min_cidr6 to general {}, min cidr for ipv6 glines.  default
-  is 48
-- kicks originating from servers were being sent incorrectly to clients
-- juped nicks now use ERR_ERRONEUSNICKNAME numeric
-- juped chans now use ERR_BADCHANNAME numeric
-- fixed some issues that caused drastic memory jumps on hub servers
-  during bursts
-- CAP_UID and uid related code is gone, its been implemented properly
-  in -devel.
-- ability to /kill locally now uses the new priv 'local_kill' (clients who
-  have global_kill automatically get this priv).
-
-  **IMPORTANT**
-  Any users who do NOT have global_kill, will not be allowed to locally kill
-  either unless you give them 'local_kill'.
-
--- ircd-ratbox-1.3rc1
-- omotd uses numerics nows
-- fix an adns bug where the resolver could hang and stop resolving clients
-- use writev when we have it available.
-- remove rt sigio support, it never really worked right
-- updated epoll support
-- STATS Y returns the number of clients currently in the class in the last
-  value
-- Make ping cookies be a bit more useful on boxes where rand() only returns
-  up to 32K
-- fix to disallow +beI modes starting with ':'
-- can now specify the minimum length of CIDR glines, in general {}:
-  gline_min_cidr = 16;
-- added temp xlines, see /quote help xline.  note permanent purely numerical 
-  xlines (ie "123") must now be specified with a time field of "0".
-- cluster {}; entries are now listed in stats U
-
---------------------------------------------------------------------------------
-
-BUGS: Major bugs in this release are listed in BUGS
-
-BUG REPORTS: If you run this code and encounter problems, you must report
- the bug in one of the following ways:
-  a) By EMAIL to ircd-ratbox@lists.ratbox.org
- Please include a gdb backtrace and keep the core file, binaries and 
- modules in case the developers need them.
-
-DISCUSSION: There is a mailing list for discussion of ratbox issues,
- To subscribe, visit:
-      http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox
-
-Please read doc/whats-new.txt for information about what is in this release
-
-Other files recommended for reading: BUGS, README.FIRST, INSTALL
-
---------------------------------------------------------------------------------
-$Id: RELNOTES,v 1.77.2.31 2004/01/09 20:05:13 androsyn Exp $
diff -uNrd ircd-ratbox-1.3-1/configure BgChat-Ircd/configure
--- ircd-ratbox-1.3-1/configure	Wed Oct 15 14:06:49 2003
+++ BgChat-Ircd/configure	Fri Apr  9 05:49:18 2004
@@ -41,13 +41,16 @@
   --enable-devpoll             Enable /dev/poll support.
   --disable-devpoll            Disable /dev/poll support. "
 ac_help="$ac_help
-  --enable-epoll               Enable Linux epoll support(Linux 2.6.x only).
+  --enable-rtsigio             Enable SIGIO with RT Signals(Linux only).
+  --disable-rtsigio            Disable SIGIO with RT Signals(Linux only). "
+ac_help="$ac_help
+  --enable-epoll               Enable Linux epoll support(experimental).
   --disable-epoll              Disable Linux epoll support. "
 ac_help="$ac_help
   --enable-ipv6                Enable IPV6 support.
   --disable-ipv6               Disable IPV6 support. "
 ac_help="$ac_help
-  --enable-assert=type         Enable assert() - soft or hard.
+  --enable-assert              Enable assert().
   --disable-assert             Disable assert(). "
 ac_help="$ac_help
   --enable-small-net           Enable small network support.
@@ -603,7 +606,7 @@
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:607: checking for $ac_word" >&5
+echo "configure:610: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -633,7 +636,7 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:637: checking for $ac_word" >&5
+echo "configure:640: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -684,7 +687,7 @@
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:688: checking for $ac_word" >&5
+echo "configure:691: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -716,7 +719,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:720: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:723: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -727,12 +730,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 731 "configure"
+#line 734 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -758,12 +761,12 @@
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:762: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:765: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:767: checking whether we are using GNU C" >&5
+echo "configure:770: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -772,7 +775,7 @@
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -791,7 +794,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:795: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:798: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -826,7 +829,7 @@
 
 SGS=no
 echo $ac_n "checking if we are using TenDRA or MIPSpro""... $ac_c" 1>&6
-echo "configure:830: checking if we are using TenDRA or MIPSpro" >&5
+echo "configure:833: checking if we are using TenDRA or MIPSpro" >&5
 case `$CC -version 2>&1` in
   *TenDRA*)
     echo "$ac_t""success! We will be using TenDRA." 1>&6
@@ -845,7 +848,7 @@
     ;;
 esac
 echo $ac_n "checking if we are using Sun WorkShop/Forte""... $ac_c" 1>&6
-echo "configure:849: checking if we are using Sun WorkShop/Forte" >&5
+echo "configure:852: checking if we are using Sun WorkShop/Forte" >&5
 case `$CC -V 2>&1` in
   *Sun*WorkShop*)
     echo "$ac_t""success! We are using Sun WorkShop/Forte." 1>&6
@@ -863,7 +866,7 @@
     ;;
 esac
 echo $ac_n "checking if we are using Apple GCC""... $ac_c" 1>&6
-echo "configure:867: checking if we are using Apple GCC" >&5
+echo "configure:870: checking if we are using Apple GCC" >&5
 case `$CC -v 2>&1 | tail -1` in
   *Apple*)
     echo "$ac_t""success! We are using GCC from Apple." 1>&6
@@ -876,7 +879,7 @@
 esac
 
 echo $ac_n "checking if your compiler supports the SVR4 Software Generation System interfaces""... $ac_c" 1>&6
-echo "configure:880: checking if your compiler supports the SVR4 Software Generation System interfaces" >&5
+echo "configure:883: checking if your compiler supports the SVR4 Software Generation System interfaces" >&5
 if test "$SGS" = "yes"; then
   echo "$ac_t""yes" 1>&6
 else
@@ -926,7 +929,7 @@
 
 
 echo $ac_n "checking how to generate dependancy info""... $ac_c" 1>&6
-echo "configure:930: checking how to generate dependancy info" >&5
+echo "configure:933: checking how to generate dependancy info" >&5
 if test "$SunWorkShop" = "yes"; then
   echo "$ac_t""Sun WorkShop/Forte using $CC -xM" 1>&6
   MKDEP="$CC -xM"
@@ -947,7 +950,7 @@
 fi
 
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:951: checking for POSIXized ISC" >&5
+echo "configure:954: checking for POSIXized ISC" >&5
 if test -d /etc/conf/kconfig.d &&
   grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
@@ -968,7 +971,7 @@
 fi
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:972: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:975: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -997,7 +1000,7 @@
 # Extract the first word of "rm", so it can be a program name with args.
 set dummy rm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1001: checking for $ac_word" >&5
+echo "configure:1004: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_RM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1032,7 +1035,7 @@
 # Extract the first word of "cp", so it can be a program name with args.
 set dummy cp; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1036: checking for $ac_word" >&5
+echo "configure:1039: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_CP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1067,7 +1070,7 @@
 # Extract the first word of "mv", so it can be a program name with args.
 set dummy mv; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1071: checking for $ac_word" >&5
+echo "configure:1074: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_MV'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1102,7 +1105,7 @@
 # Extract the first word of "ln", so it can be a program name with args.
 set dummy ln; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1106: checking for $ac_word" >&5
+echo "configure:1109: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_LN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1137,7 +1140,7 @@
 # Extract the first word of "sed", so it can be a program name with args.
 set dummy sed; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1141: checking for $ac_word" >&5
+echo "configure:1144: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_SED'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1172,7 +1175,7 @@
 # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1176: checking for $ac_word" >&5
+echo "configure:1179: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1207,7 +1210,7 @@
 # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1211: checking for $ac_word" >&5
+echo "configure:1214: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1242,7 +1245,7 @@
 # Extract the first word of "touch", so it can be a program name with args.
 set dummy touch; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1246: checking for $ac_word" >&5
+echo "configure:1249: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_TOUCH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1279,7 +1282,7 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1283: checking for $ac_word" >&5
+echo "configure:1286: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1321,7 +1324,7 @@
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1325: checking for a BSD compatible install" >&5
+echo "configure:1328: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1376,7 +1379,7 @@
 # Extract the first word of "flex", so it can be a program name with args.
 set dummy flex; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1380: checking for $ac_word" >&5
+echo "configure:1383: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1410,7 +1413,7 @@
   *) ac_lib=l ;;
   esac
   echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:1414: checking for yywrap in -l$ac_lib" >&5
+echo "configure:1417: checking for yywrap in -l$ac_lib" >&5
 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1418,7 +1421,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l$ac_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1422 "configure"
+#line 1425 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1429,7 +1432,7 @@
 yywrap()
 ; return 0; }
 EOF
-if { (eval echo configure:1433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1454,7 +1457,7 @@
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1458: checking for $ac_word" >&5
+echo "configure:1461: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1482,21 +1485,21 @@
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1486: checking for inline" >&5
+echo "configure:1489: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1493 "configure"
+#line 1496 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:1500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -1529,7 +1532,7 @@
 fi
 
 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:1533: checking for socket in -lsocket" >&5
+echo "configure:1536: checking for socket in -lsocket" >&5
 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1537,7 +1540,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1541 "configure"
+#line 1544 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1548,7 +1551,7 @@
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:1552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1579,12 +1582,12 @@
 
 
 echo $ac_n "checking for crypt""... $ac_c" 1>&6
-echo "configure:1583: checking for crypt" >&5
+echo "configure:1586: checking for crypt" >&5
 if eval "test \"`echo '$''{'ac_cv_func_crypt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1588 "configure"
+#line 1591 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char crypt(); below.  */
@@ -1607,7 +1610,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_crypt=yes"
 else
@@ -1625,7 +1628,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for crypt in -ldescrypt""... $ac_c" 1>&6
-echo "configure:1629: checking for crypt in -ldescrypt" >&5
+echo "configure:1632: checking for crypt in -ldescrypt" >&5
 ac_lib_var=`echo descrypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1633,7 +1636,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldescrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1637 "configure"
+#line 1640 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1644,7 +1647,7 @@
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:1648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1670,7 +1673,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:1674: checking for crypt in -lcrypt" >&5
+echo "configure:1677: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1678,7 +1681,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1682 "configure"
+#line 1685 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1689,7 +1692,7 @@
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:1693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1723,14 +1726,14 @@
 
 
 echo $ac_n "checking for library containing gettext""... $ac_c" 1>&6
-echo "configure:1727: checking for library containing gettext" >&5
+echo "configure:1730: checking for library containing gettext" >&5
 if eval "test \"`echo '$''{'ac_cv_search_gettext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_func_search_save_LIBS="$LIBS"
 ac_cv_search_gettext="no"
 cat > conftest.$ac_ext <<EOF
-#line 1734 "configure"
+#line 1737 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1741,7 +1744,7 @@
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_gettext="none required"
 else
@@ -1752,7 +1755,7 @@
 test "$ac_cv_search_gettext" = "no" && for i in intl; do
 LIBS="-l$i  $ac_func_search_save_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1756 "configure"
+#line 1759 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1763,7 +1766,7 @@
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_gettext="-l$i"
 break
@@ -1789,14 +1792,14 @@
     unset ac_cv_search_gettext
     
 echo $ac_n "checking for library containing gettext""... $ac_c" 1>&6
-echo "configure:1793: checking for library containing gettext" >&5
+echo "configure:1796: checking for library containing gettext" >&5
 if eval "test \"`echo '$''{'ac_cv_search_gettext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_func_search_save_LIBS="$LIBS"
 ac_cv_search_gettext="no"
 cat > conftest.$ac_ext <<EOF
-#line 1800 "configure"
+#line 1803 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1807,7 +1810,7 @@
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_gettext="none required"
 else
@@ -1818,7 +1821,7 @@
 test "$ac_cv_search_gettext" = "no" && for i in intl; do
 LIBS="-l$i  $ac_func_search_save_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1822 "configure"
+#line 1825 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1829,7 +1832,7 @@
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_gettext="-l$i"
 break
@@ -1857,7 +1860,7 @@
 fi
 
 echo $ac_n "checking ld flags needed for gettext""... $ac_c" 1>&6
-echo "configure:1861: checking ld flags needed for gettext" >&5
+echo "configure:1864: checking ld flags needed for gettext" >&5
 if eval "test \"`echo '$''{'cf_cv_gettext_libs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1866,7 +1869,7 @@
 
 echo "$ac_t""$cf_cv_gettext_libs" 1>&6
 echo $ac_n "checking cpp flags needed for gettext""... $ac_c" 1>&6
-echo "configure:1870: checking cpp flags needed for gettext" >&5
+echo "configure:1873: checking cpp flags needed for gettext" >&5
 if eval "test \"`echo '$''{'cf_cv_gettext_incl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1881,12 +1884,12 @@
 for ac_func in gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1885: checking for $ac_func" >&5
+echo "configure:1888: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1890 "configure"
+#line 1893 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1909,7 +1912,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -1931,7 +1934,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:1935: checking for gettext in -lintl" >&5
+echo "configure:1938: checking for gettext in -lintl" >&5
 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1939,7 +1942,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1943 "configure"
+#line 1946 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1950,7 +1953,7 @@
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1982,7 +1985,7 @@
 
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1986: checking how to run the C preprocessor" >&5
+echo "configure:1989: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1997,13 +2000,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 2001 "configure"
+#line 2004 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2010: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2014,13 +2017,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2018 "configure"
+#line 2021 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2031,13 +2034,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 2035 "configure"
+#line 2038 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2041: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2044: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2062,12 +2065,12 @@
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2066: checking for ANSI C header files" >&5
+echo "configure:2069: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2071 "configure"
+#line 2074 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2075,7 +2078,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2079: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2082: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2092,7 +2095,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2096 "configure"
+#line 2099 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2110,7 +2113,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2114 "configure"
+#line 2117 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2131,7 +2134,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 2135 "configure"
+#line 2138 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2142,7 +2145,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:2146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2165,21 +2168,21 @@
 
 fi
 
-for ac_hdr in inttypes.h sys/resource.h sys/param.h unistd.h errno.h string.h strings.h sys/syslog.h stdlib.h stddef.h getopt.h sys/uio.h sys/epoll.h
+for ac_hdr in inttypes.h sys/resource.h sys/param.h unistd.h errno.h string.h strings.h sys/syslog.h stdlib.h stddef.h getopt.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2173: checking for $ac_hdr" >&5
+echo "configure:2176: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2178 "configure"
+#line 2181 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2183: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2186: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2209,12 +2212,12 @@
 
 
 echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6
-echo "configure:2213: checking whether string.h and strings.h may both be included" >&5
+echo "configure:2216: checking whether string.h and strings.h may both be included" >&5
 if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2218 "configure"
+#line 2221 "configure"
 #include "confdefs.h"
 #include <string.h>
 #include <strings.h>
@@ -2222,7 +2225,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2226: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2229: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_header_string=yes
 else
@@ -2248,13 +2251,13 @@
 
 
 	echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:2252: checking for socklen_t" >&5
+echo "configure:2255: checking for socklen_t" >&5
 	if eval "test \"`echo '$''{'have_socklen_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 		cat > conftest.$ac_ext <<EOF
-#line 2258 "configure"
+#line 2261 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 			#include <sys/socket.h>
@@ -2262,7 +2265,7 @@
 socklen_t xxx = 75;
 ; return 0; }
 EOF
-if { (eval echo configure:2266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_socklen_t=yes
 else
@@ -2286,17 +2289,17 @@
 
 ac_safe=`echo "stdarg.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for stdarg.h""... $ac_c" 1>&6
-echo "configure:2290: checking for stdarg.h" >&5
+echo "configure:2293: checking for stdarg.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2295 "configure"
+#line 2298 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2300: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2303: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2319,15 +2322,15 @@
 fi
 
 
-for ac_func in strlcat strlcpy writev socketpair mmap
+for ac_func in strlcat strlcpy
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2326: checking for $ac_func" >&5
+echo "configure:2329: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2331 "configure"
+#line 2334 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2350,7 +2353,63 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+for ac_func in socketpair
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2385: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2390 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2378,12 +2437,12 @@
 for ac_func in snprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2382: checking for $ac_func" >&5
+echo "configure:2441: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2387 "configure"
+#line 2446 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2406,7 +2465,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2433,12 +2492,12 @@
 for ac_func in vsnprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2437: checking for $ac_func" >&5
+echo "configure:2496: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2442 "configure"
+#line 2501 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2461,7 +2520,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2493,13 +2552,207 @@
 fi
 
 
+for ac_func in mmap
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2559: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2564 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+echo $ac_n "checking for nanosleep""... $ac_c" 1>&6
+echo "configure:2613: checking for nanosleep" >&5
+if eval "test \"`echo '$''{'ac_cv_func_nanosleep'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2618 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char nanosleep(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char nanosleep();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_nanosleep) || defined (__stub___nanosleep)
+choke me
+#else
+nanosleep();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_nanosleep=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_nanosleep=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'nanosleep`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for nanosleep in -lrt""... $ac_c" 1>&6
+echo "configure:2659: checking for nanosleep in -lrt" >&5
+ac_lib_var=`echo rt'_'nanosleep | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lrt  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2667 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char nanosleep();
+
+int main() {
+nanosleep()
+; return 0; }
+EOF
+if { (eval echo configure:2678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="${LIBS} -lrt"
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for nanosleep in -lposix4""... $ac_c" 1>&6
+echo "configure:2697: checking for nanosleep in -lposix4" >&5
+ac_lib_var=`echo posix4'_'nanosleep | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lposix4  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2705 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char nanosleep();
+
+int main() {
+nanosleep()
+; return 0; }
+EOF
+if { (eval echo configure:2716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="${LIBS} -lposix4"
+      		
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+fi
+
+if test x$ac_cv_func_nanosleep = xno && test x$ac_cv_lib_posix4_nanosleep = xno  && test x$ac_cv_lib_rt_nanosleep = xno 
+then	
+	echo "$ac_t"""nanosleep not found..using select for delay"" 1>&6
+else
+	cat >> confdefs.h <<\EOF
+#define HAVE_NANOSLEEP 1
+EOF
+
+fi
 
 cpp_flags_backup="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS -dM"
 echo $ac_n "checking for getrlimit max open files parameter""... $ac_c" 1>&6
-echo "configure:2501: checking for getrlimit max open files parameter" >&5
+echo "configure:2754: checking for getrlimit max open files parameter" >&5
 cat > conftest.$ac_ext <<EOF
-#line 2503 "configure"
+#line 2756 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
 EOF
@@ -2511,7 +2764,7 @@
 rm -f conftest*
 
 cat > conftest.$ac_ext <<EOF
-#line 2515 "configure"
+#line 2768 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
 EOF
@@ -2523,7 +2776,7 @@
 rm -f conftest*
 
 cat > conftest.$ac_ext <<EOF
-#line 2527 "configure"
+#line 2780 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
 EOF
@@ -2545,7 +2798,7 @@
 fi
 
 echo $ac_n "checking for OpenSSL""... $ac_c" 1>&6
-echo "configure:2549: checking for OpenSSL" >&5
+echo "configure:2802: checking for OpenSSL" >&5
 # Check whether --enable-openssl or --disable-openssl was given.
 if test "${enable_openssl+set}" = set; then
   enableval="$enable_openssl"
@@ -2600,12 +2853,12 @@
 LIBS="$LIBS $SSL_LIBS"
 if test "X$cf_enable_openssl" != "Xno"; then
         echo $ac_n "checking for OpenSSL 0.9.6 or above""... $ac_c" 1>&6
-echo "configure:2604: checking for OpenSSL 0.9.6 or above" >&5
+echo "configure:2857: checking for OpenSSL 0.9.6 or above" >&5
     if test "$cross_compiling" = yes; then
   cf_openssl_version_ok='no'
 else
   cat > conftest.$ac_ext <<EOF
-#line 2609 "configure"
+#line 2862 "configure"
 #include "confdefs.h"
 
 #include <openssl/opensslv.h>
@@ -2619,7 +2872,7 @@
 }
     
 EOF
-if { (eval echo configure:2623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cf_openssl_version_ok='yes'
 else
@@ -2637,7 +2890,7 @@
                 save_CPPFLAGS="$CPPFLAGS"
         CPPFLAGS="$CPPFLAGS $SSL_LIBS"
         echo $ac_n "checking for RSA_free in -lcrypto""... $ac_c" 1>&6
-echo "configure:2641: checking for RSA_free in -lcrypto" >&5
+echo "configure:2894: checking for RSA_free in -lcrypto" >&5
 ac_lib_var=`echo crypto'_'RSA_free | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2645,7 +2898,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypto  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2649 "configure"
+#line 2902 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2656,7 +2909,7 @@
 RSA_free()
 ; return 0; }
 EOF
-if { (eval echo configure:2660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2688,12 +2941,12 @@
             for ac_func in EVP_bf_cfb
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2692: checking for $ac_func" >&5
+echo "configure:2945: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2697 "configure"
+#line 2950 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2716,7 +2969,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2743,12 +2996,12 @@
             for ac_func in EVP_cast5_cfb
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2747: checking for $ac_func" >&5
+echo "configure:3000: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2752 "configure"
+#line 3005 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2771,7 +3024,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2798,12 +3051,12 @@
             for ac_func in EVP_idea_cfb
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2802: checking for $ac_func" >&5
+echo "configure:3055: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2807 "configure"
+#line 3060 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2826,7 +3079,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2853,12 +3106,12 @@
             for ac_func in EVP_rc5_32_12_16_cfb
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2857: checking for $ac_func" >&5
+echo "configure:3110: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2862 "configure"
+#line 3115 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2881,7 +3134,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2908,12 +3161,12 @@
             for ac_func in EVP_des_ede3_cfb
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2912: checking for $ac_func" >&5
+echo "configure:3165: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2917 "configure"
+#line 3170 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2936,7 +3189,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2963,12 +3216,12 @@
             for ac_func in EVP_des_cfb
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2967: checking for $ac_func" >&5
+echo "configure:3220: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2972 "configure"
+#line 3225 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2991,7 +3244,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3026,7 +3279,7 @@
 LIBS="$save_LIBS"
 
 echo $ac_n "checking if you want to try to use zlib""... $ac_c" 1>&6
-echo "configure:3030: checking if you want to try to use zlib" >&5
+echo "configure:3283: checking if you want to try to use zlib" >&5
 # Check whether --enable-zlib or --disable-zlib was given.
 if test "${enable_zlib+set}" = set; then
   enableval="$enable_zlib"
@@ -3040,7 +3293,7 @@
 case "$cf_enable_zlib" in
   yes)
     echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
-echo "configure:3044: checking for deflate in -lz" >&5
+echo "configure:3297: checking for deflate in -lz" >&5
 ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3048,7 +3301,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lz  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3052 "configure"
+#line 3305 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3059,7 +3312,7 @@
 deflate()
 ; return 0; }
 EOF
-if { (eval echo configure:3063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3087,12 +3340,12 @@
 fi
 
     echo $ac_n "checking for zlibVersion""... $ac_c" 1>&6
-echo "configure:3091: checking for zlibVersion" >&5
+echo "configure:3344: checking for zlibVersion" >&5
 if eval "test \"`echo '$''{'ac_cv_func_zlibVersion'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3096 "configure"
+#line 3349 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char zlibVersion(); below.  */
@@ -3115,7 +3368,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_zlibVersion=yes"
 else
@@ -3141,7 +3394,7 @@
   *)
     LIBS="$LIBS -L$cf_enable_zlib"
     echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
-echo "configure:3145: checking for deflate in -lz" >&5
+echo "configure:3398: checking for deflate in -lz" >&5
 ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3149,7 +3402,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lz  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3153 "configure"
+#line 3406 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3160,7 +3413,7 @@
 deflate()
 ; return 0; }
 EOF
-if { (eval echo configure:3164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3188,12 +3441,12 @@
 fi
 
     echo $ac_n "checking for zlibVersion""... $ac_c" 1>&6
-echo "configure:3192: checking for zlibVersion" >&5
+echo "configure:3445: checking for zlibVersion" >&5
 if eval "test \"`echo '$''{'ac_cv_func_zlibVersion'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3197 "configure"
+#line 3450 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char zlibVersion(); below.  */
@@ -3216,7 +3469,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_zlibVersion=yes"
 else
@@ -3241,7 +3494,7 @@
 
 
 echo $ac_n "checking if you want to do a profile build""... $ac_c" 1>&6
-echo "configure:3245: checking if you want to do a profile build" >&5
+echo "configure:3498: checking if you want to do a profile build" >&5
 # Check whether --enable-profile or --disable-profile was given.
 if test "${enable_profile+set}" = set; then
   enableval="$enable_profile"
@@ -3262,7 +3515,7 @@
 
 
 echo $ac_n "checking if you want ElectricFence""... $ac_c" 1>&6
-echo "configure:3266: checking if you want ElectricFence" >&5
+echo "configure:3519: checking if you want ElectricFence" >&5
 # Check whether --enable-efence or --disable-efence was given.
 if test "${enable_efence+set}" = set; then
   enableval="$enable_efence"
@@ -3286,7 +3539,7 @@
 
 
 echo $ac_n "checking if you want the block allocator""... $ac_c" 1>&6
-echo "configure:3290: checking if you want the block allocator" >&5
+echo "configure:3543: checking if you want the block allocator" >&5
 # Check whether --enable-block-alloc or --disable-block-alloc was given.
 if test "${enable_block_alloc+set}" = set; then
   enableval="$enable_block_alloc"
@@ -3381,6 +3634,23 @@
 fi
 
 
+# Check whether --enable-rtsigio or --disable-rtsigio was given.
+if test "${enable_rtsigio+set}" = set; then
+  enableval="$enable_rtsigio"
+  
+  case "$enableval" in
+  yes)
+    echo "Forcing Linux RT Sigio to be enabled"
+    ac_cv_func_rtsigio="yes"
+    ;;
+  no)
+    ac_cv_func_rtsigio="no"
+  ;;
+esac
+
+fi
+
+
 # Check whether --enable-epoll or --disable-epoll was given.
 if test "${enable_epoll+set}" = set; then
   enableval="$enable_epoll"
@@ -3401,13 +3671,13 @@
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:3405: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:3675: checking whether ${CC-cc} needs -traditional" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
   cat > conftest.$ac_ext <<EOF
-#line 3411 "configure"
+#line 3681 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -3425,7 +3695,7 @@
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 3429 "configure"
+#line 3699 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -3449,12 +3719,12 @@
 
 
 echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:3453: checking for u_int32_t" >&5
+echo "configure:3723: checking for u_int32_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_u_int32_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3458 "configure"
+#line 3728 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3483,12 +3753,12 @@
 
 
 echo $ac_n "checking for uintptr_t""... $ac_c" 1>&6
-echo "configure:3487: checking for uintptr_t" >&5
+echo "configure:3757: checking for uintptr_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uintptr_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3492 "configure"
+#line 3762 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3518,12 +3788,12 @@
 
 rm -f conftest conftest.f
 echo $ac_n "checking for poll""... $ac_c" 1>&6
-echo "configure:3522: checking for poll" >&5
+echo "configure:3792: checking for poll" >&5
 if eval "test \"`echo '$''{'ac_cv_func_poll'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3527 "configure"
+#line 3797 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char poll(); below.  */
@@ -3546,7 +3816,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_poll=yes"
 else
@@ -3572,12 +3842,12 @@
 	for ac_func in kevent
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3576: checking for $ac_func" >&5
+echo "configure:3846: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3581 "configure"
+#line 3851 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3600,7 +3870,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3651,6 +3921,12 @@
 #define USE_EPOLL 1
 EOF
 
+	elif test "$ac_cv_func_rtsigio" = "yes" ; then
+		SELECT_TYPE="sigio"
+		cat >> confdefs.h <<\EOF
+#define USE_SIGIO 1
+EOF
+
 	elif test "$ac_cv_func_poll" = "yes" ; then
                 SELECT_TYPE="poll"
                 cat >> confdefs.h <<\EOF
@@ -3664,7 +3940,7 @@
 EOF
 
         else
-                echo "Eep!  Can't find kqueue, devpoll, poll, epoll _or_ select!"
+                echo "Eep!  Can't find kqueue, devpoll, poll, epoll, rtsigio _or_ select!"
                 echo "I'll try select and hope for the best."
                 SELECT_TYPE="select"
                 cat >> confdefs.h <<\EOF
@@ -3718,23 +3994,18 @@
   
   case "$enableval" in
   yes)
+    echo "Enabling assert() code."
     ac_cv_assert=""
     ;;
   no)
-    ac_cv_assert="-DNDEBUG -DSOFT_ASSERT"
+    echo "Disabling assert() code."
+    ac_cv_assert="-DNDEBUG"
     ;;
-  soft)
-    ac_cv_assert="-DNDEBUG -DSOFT_ASSERT"
-    ;;  
-  hard)
-    ac_cv_assert=""
-    ;;   
-esac
+  esac
 
 fi
 
 
-
 IRC_CFLAGS="$IRC_CFLAGS $ac_cv_assert"
 
 
@@ -3760,9 +4031,9 @@
 fi
 
 
-ac_cv_nicklen="9"
-ac_cv_maxclients="3000"
-ac_cv_topiclen="120"
+ac_cv_nicklen="15"
+ac_cv_maxclients="1000"
+ac_cv_topiclen="350"
 
 # Check whether --with-nicklen or --without-nicklen was given.
 if test "${with_nicklen+set}" = set; then
@@ -3770,7 +4041,7 @@
   
 	echo $withval
   if test "$withval" = "no"; then
-	ac_cv_nicklen="9"
+	ac_cv_nicklen="15"
   else
 	ac_cv_nicklen="$withval"
   fi
@@ -3844,7 +4115,7 @@
 	MODULES_DEFINE=""
 	MOD_TARGET="libmodules.a"
 	MODULES_LIBS="../modules/libmodules.a"
-	SEDOBJ="s/.so:/.o:/"
+	SEDOBJ="-e s/.so:/.o:/"
 	cat >> confdefs.h <<\EOF
 #define STATIC_MODULES 1
 EOF
@@ -3854,15 +4125,15 @@
 	MODULES_DEFINE=""
 	MODULES_LIBS=""
 	MOD_TARGET="shared_modules"
-	SEDOBJ="s/.o:/.so:/"
+	SEDOBJ="-e s/.o:/.so:/"
         
         echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "configure:3861: checking for shl_load" >&5
+echo "configure:4132: checking for shl_load" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3866 "configure"
+#line 4137 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shl_load(); below.  */
@@ -3885,7 +4156,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shl_load=yes"
 else
@@ -3909,7 +4180,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:3913: checking for shl_load in -ldld" >&5
+echo "configure:4184: checking for shl_load in -ldld" >&5
 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3917,7 +4188,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldld  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3921 "configure"
+#line 4192 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3928,7 +4199,7 @@
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:3932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3961,17 +4232,17 @@
         if test "$ac_cv_have_shl_load" = "no"; then
             ac_safe=`echo "mach-o/dyld.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for mach-o/dyld.h""... $ac_c" 1>&6
-echo "configure:3965: checking for mach-o/dyld.h" >&5
+echo "configure:4236: checking for mach-o/dyld.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3970 "configure"
+#line 4241 "configure"
 #include "confdefs.h"
 #include <mach-o/dyld.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3975: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3992,12 +4263,12 @@
   echo "$ac_t""no" 1>&6
 
         echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:3996: checking for dlopen" >&5
+echo "configure:4267: checking for dlopen" >&5
 if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4001 "configure"
+#line 4272 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dlopen(); below.  */
@@ -4020,7 +4291,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_dlopen=yes"
 else
@@ -4040,7 +4311,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:4044: checking for dlopen in -ldl" >&5
+echo "configure:4315: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4048,7 +4319,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4052 "configure"
+#line 4323 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4059,7 +4330,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:4063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4094,7 +4365,7 @@
             { echo "configure: error: shared module support could not be found - try running configure with --disable-shared-modules" 1>&2; exit 1; }
         fi
 		echo $ac_n "checking for dlsym in -ldl""... $ac_c" 1>&6
-echo "configure:4098: checking for dlsym in -ldl" >&5
+echo "configure:4369: checking for dlsym in -ldl" >&5
 ac_lib_var=`echo dl'_'dlsym | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4102,7 +4373,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4106 "configure"
+#line 4377 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4113,7 +4384,7 @@
 dlsym()
 ; return 0; }
 EOF
-if { (eval echo configure:4117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4143,12 +4414,12 @@
 	for ac_func in dlopen
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4147: checking for $ac_func" >&5
+echo "configure:4418: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4152 "configure"
+#line 4423 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4171,7 +4442,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4199,17 +4470,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4203: checking for $ac_hdr" >&5
+echo "configure:4474: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4208 "configure"
+#line 4479 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4484: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4240,17 +4511,17 @@
 	# all symbols visible in the dynamic symbol table.
 	hold_ldflags=$LDFLAGS
 	echo $ac_n "checking for the ld -export-dynamic flag""... $ac_c" 1>&6
-echo "configure:4244: checking for the ld -export-dynamic flag" >&5
+echo "configure:4515: checking for the ld -export-dynamic flag" >&5
 	LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
 	cat > conftest.$ac_ext <<EOF
-#line 4247 "configure"
+#line 4518 "configure"
 #include "confdefs.h"
 
 int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:4254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   found=yes
 else
@@ -4267,7 +4538,7 @@
 	fi
 
 	echo $ac_n "checking for compiler option to produce PIC""... $ac_c" 1>&6
-echo "configure:4271: checking for compiler option to produce PIC" >&5
+echo "configure:4542: checking for compiler option to produce PIC" >&5
 				if test "$SGS" = "yes"; then
 		echo "$ac_t""SVR4 Software Generation System interfaces: -KPIC -DPIC -G" 1>&6
 		PICFLAGS="-KPIC -DPIC -G"
@@ -4299,12 +4570,12 @@
 
 	nlist_lib=""
 	echo $ac_n "checking for nlist""... $ac_c" 1>&6
-echo "configure:4303: checking for nlist" >&5
+echo "configure:4574: checking for nlist" >&5
 if eval "test \"`echo '$''{'ac_cv_func_nlist'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4308 "configure"
+#line 4579 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char nlist(); below.  */
@@ -4327,7 +4598,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_nlist=yes"
 else
@@ -4345,7 +4616,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for nlist in -ldl""... $ac_c" 1>&6
-echo "configure:4349: checking for nlist in -ldl" >&5
+echo "configure:4620: checking for nlist in -ldl" >&5
 ac_lib_var=`echo dl'_'nlist | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4353,7 +4624,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4357 "configure"
+#line 4628 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4364,7 +4635,7 @@
 nlist()
 ; return 0; }
 EOF
-if { (eval echo configure:4368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4383,7 +4654,7 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for nlist in -lelf""... $ac_c" 1>&6
-echo "configure:4387: checking for nlist in -lelf" >&5
+echo "configure:4658: checking for nlist in -lelf" >&5
 ac_lib_var=`echo elf'_'nlist | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4391,7 +4662,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lelf  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4395 "configure"
+#line 4666 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4402,7 +4673,7 @@
 nlist()
 ; return 0; }
 EOF
-if { (eval echo configure:4406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4432,17 +4703,17 @@
 
                         	ac_safe=`echo "libelf/nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for libelf/nlist.h""... $ac_c" 1>&6
-echo "configure:4436: checking for libelf/nlist.h" >&5
+echo "configure:4707: checking for libelf/nlist.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4441 "configure"
+#line 4712 "configure"
 #include "confdefs.h"
 #include <libelf/nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4446: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4717: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4465,17 +4736,17 @@
 
 	ac_safe=`echo "elf/nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for elf/nlist.h""... $ac_c" 1>&6
-echo "configure:4469: checking for elf/nlist.h" >&5
+echo "configure:4740: checking for elf/nlist.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4474 "configure"
+#line 4745 "configure"
 #include "confdefs.h"
 #include <elf/nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4479: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4498,17 +4769,17 @@
 
 	ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:4502: checking for nlist.h" >&5
+echo "configure:4773: checking for nlist.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4507 "configure"
+#line 4778 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4512: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4530,16 +4801,14 @@
 fi
 
 	if test x"$nlist_h" = "x"; then
-		echo "configure: warning: ** cannot locate an nlist.h **" 1>&2
-		echo "configure: warning: ** cannot check for extra underscores prepended to symbol names - nlist.h is missing **" 1>&2
-		echo "configure: warning: ** assuming no underscores prepend symbol names **" 1>&2
+		echo "configure: warning: ** BgChat Ircd ver 1.5  **" 1>&2
 		cat >> confdefs.h <<EOF
 #define SYMBOL_PREFIX ""
 EOF
 
 	else
 		echo $ac_n "checking for extra underscores prepended to symbol names""... $ac_c" 1>&6
-echo "configure:4543: checking for extra underscores prepended to symbol names" >&5
+echo "configure:4814: checking for extra underscores prepended to symbol names" >&5
 		if eval "test \"`echo '$''{'symbol_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4604,7 +4873,7 @@
 
 if test "$ac_cv_efence" = "yes"; then
 	echo $ac_n "checking for malloc in -lefence""... $ac_c" 1>&6
-echo "configure:4608: checking for malloc in -lefence" >&5
+echo "configure:4879: checking for malloc in -lefence" >&5
 ac_lib_var=`echo efence'_'malloc | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4612,7 +4881,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lefence  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4616 "configure"
+#line 4887 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4623,7 +4892,7 @@
 malloc()
 ; return 0; }
 EOF
-if { (eval echo configure:4627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4776,6 +5045,7 @@
  contrib/Makefile               \
  src/Makefile                   \
  adns/Makefile                  \
+ include/Makefile               \
  messages/Makefile              \
  messages/translations/Makefile \
  modules/Makefile               \
@@ -4895,6 +5165,7 @@
  contrib/Makefile               \
  src/Makefile                   \
  adns/Makefile                  \
+ include/Makefile               \
  messages/Makefile              \
  messages/translations/Makefile \
  modules/Makefile               \
diff -uNrd ircd-ratbox-1.3-1/contrib/Makefile.in BgChat-Ircd/contrib/Makefile.in
--- ircd-ratbox-1.3-1/contrib/Makefile.in	Sat Sep  6 09:17:59 2003
+++ BgChat-Ircd/contrib/Makefile.in	Mon Mar 29 07:17:53 2004
@@ -27,7 +27,6 @@
 CPPFLAGS	= ${INCLUDES} @CPPFLAGS@
 
 SRCS =                          \
-  m_clearchan.c			\
   m_flags.c                     \
   m_force.c			\
   m_ltrace.c			\
@@ -36,7 +35,6 @@
   m_olist.c			\
   m_okick.c			\
   m_opme.c			\
-  m_omode.c			\
   spy_admin_notice.c		\
   spy_info_notice.c		\
   spy_links_notice.c		\
diff -uNrd ircd-ratbox-1.3-1/contrib/m_clearchan.c BgChat-Ircd/contrib/m_clearchan.c
--- ircd-ratbox-1.3-1/contrib/m_clearchan.c	Wed Jul 30 17:32:50 2003
+++ BgChat-Ircd/contrib/m_clearchan.c	Wed Dec 31 19:00:00 1969
@@ -1,177 +0,0 @@
-/*
- *   IRC - Internet Relay Chat, contrib/m_clearchan.c
- *   Copyright (C) 2002 Hybrid Development Team
- *
- *   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_clearchan.c,v 1.45.2.3 2003/07/30 21:32:50 leeh Exp $
- */
-#include "stdinc.h"
-#include "tools.h"
-#include "handlers.h"
-#include "channel.h"
-#include "channel_mode.h"
-#include "client.h"
-#include "ircd.h"
-#include "numeric.h"
-#include "s_log.h"
-#include "s_serv.h"
-#include "send.h"
-#include "whowas.h"
-#include "irc_string.h"
-#include "sprintf_irc.h"
-#include "hash.h"
-#include "msg.h"
-#include "parse.h"
-#include "modules.h"
-
-static void mo_clearchan(struct Client *client_p, struct Client *source_p,
-                         int parc, char *parv[]);
-
-struct Message clearchan_msgtab = {
-	"CLEARCHAN", 0, 0, 2, 0, MFLG_SLOW, 0,
-	{m_unregistered, m_not_oper, m_ignore, mo_clearchan}
-};
-
-#ifndef STATIC_MODULES
-void
-_modinit(void)
-{
-	mod_add_cmd(&clearchan_msgtab);
-}
-
-void
-_moddeinit(void)
-{
-	mod_del_cmd(&clearchan_msgtab);
-}
-
-const char *_version = "$Revision: 1.45.2.3 $";
-#endif
-
-/*
-** mo_clearchan
-**      parv[0] = sender prefix
-**      parv[1] = channel
-*/
-static void mo_clearchan(struct Client *client_p, struct Client *source_p,
-                        int parc, char *parv[])
-{
-	struct Channel *chptr;
-	struct membership *msptr;
-	struct Client *target_p;
-	dlink_node *ptr;
-	dlink_node *next_ptr;
-
-	/* admins only */
-	if (!IsOperAdmin(source_p))
-	{
-		sendto_one(source_p, ":%s NOTICE %s :You have no A flag", 
-			   me.name, parv[0]);
-		return;
-	}
-
-	chptr = hash_find_channel(parv[1]);
-
-	if(chptr == NULL)
-	{
-		sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
-			   me.name, parv[0], parv[1]);
-		return;
-	}
-
-	if(IsMember(source_p, chptr))
-	{
-		sendto_one(source_p, ":%s NOTICE %s :*** Please part %s before using CLEARCHAN",
-			   me.name, source_p->name, parv[1]);
-		return;
-	}
-
-	/* quickly make everyone a peon.. */
-	DLINK_FOREACH(ptr, chptr->members.head)
-	{
-		msptr = ptr->data;
-		msptr->flags &= ~CHFL_CHANOP|CHFL_VOICE;
-	}
-
-	sendto_wallops_flags(UMODE_WALLOP, &me, 
-			     "CLEARCHAN called for [%s] by %s!%s@%s",
-			     parv[1], source_p->name, source_p->username, source_p->host);
-	ilog(L_NOTICE, "CLEARCHAN called for [%s] by %s!%s@%s",
-	     parv[1], source_p->name, source_p->username, source_p->host);
-
-	if(*chptr->chname != '&')
-	{
-		sendto_server(NULL, NULL, NOCAPS, NOCAPS, 
-			      ":%s WALLOPS :CLEARCHAN called for [%s] by %s!%s@%s",
-			      me.name, parv[1], source_p->name, source_p->username,
-			      source_p->host);
-
-		/* SJOIN the user to give them ops, and lock the channel */
-		sendto_server(client_p, chptr, NOCAPS, NOCAPS,
-				":%s SJOIN %lu %s +ntsi :@%s",
-				me.name, (unsigned long) (chptr->channelts - 1),
-				chptr->chname, source_p->name);
-	}
-
-	sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN %s",
-			     source_p->name, source_p->username,
-			     source_p->host, chptr->chname);
-	sendto_channel_local(ALL_MEMBERS, chptr, ":%s MODE %s +o %s",
-			     me.name, chptr->chname, source_p->name);
-
-	add_user_to_channel(chptr, source_p, CHFL_CHANOP);
-
-	/* Take the TS down by 1, so we don't see the channel taken over
-	 * again. */
-	if (chptr->channelts)
-		chptr->channelts--;
-
-	chptr->mode.mode = MODE_SECRET|MODE_TOPICLIMIT|MODE_INVITEONLY|MODE_NOPRIVMSGS;
-	free_topic(chptr);
-	chptr->mode.key[0] = '\0';
-
-	DLINK_FOREACH_SAFE(ptr, next_ptr, chptr->members.head)
-	{
-		msptr = ptr->data;
-		target_p = msptr->client_p;
-
-		/* skip the person we just added.. */
-		if(is_chanop(msptr))
-			continue;
-
-		sendto_channel_local(ALL_MEMBERS, chptr,
-				     ":%s KICK %s %s :CLEARCHAN",
-				     source_p->name, chptr->chname, 
-				     target_p->name);
-
-		if(*chptr->chname != '&')
-			sendto_server(NULL, chptr, NOCAPS, NOCAPS, 
-				      ":%s KICK %s %s :CLEARCHAN", 
-				      source_p->name, chptr->chname, 
-				      target_p->name);
-
-		remove_user_from_channel(msptr);
-	}
-
-	/* Join the user themselves to the channel down here, so they dont see a nicklist 
-	 * or people being kicked */
-	sendto_one(source_p, ":%s!%s@%s JOIN %s",
-		   source_p->name, source_p->username,
-		   source_p->host, chptr->chname);
-
-	channel_member_names(chptr, source_p, 1);
-}
-
diff -uNrd ircd-ratbox-1.3-1/contrib/m_whoisme.c BgChat-Ircd/contrib/m_whoisme.c
--- ircd-ratbox-1.3-1/contrib/m_whoisme.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/contrib/m_whoisme.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,63 @@
+/*
+ *  ircd-ratbox: A slightly useful ircd.
+ *  spy_whois_notice.c: Sends a notice when someone uses WHOIS.
+ *
+ *  Copyright (C) 2002 by the past and present ircd coders, and others.
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: spy_whois_notice.c,v 1.15.4.1 2003/06/26 14:01:05 androsyn Exp $
+ */
+#include "stdinc.h"
+#include "modules.h"
+#include "hook.h"
+#include "client.h"
+#include "ircd.h"
+#include "send.h"
+
+int
+show_notice(struct hook_mfunc_data *);
+
+void
+_modinit(void)
+{
+  hook_add_hook("doing_whois_local", (hookfn *)show_notice);
+}
+
+void
+_moddeinit(void)
+{
+  hook_del_hook("doing_whois_local", (hookfn *)show_notice);
+}
+
+const char *_version = "$Revision: 1.15.4.1 $";
+
+/* show a whois notice
+   source_p does a /whois on client_p */
+int
+show_notice(struct hook_mfunc_data *data)
+{
+  if (MyConnect(data->source_p) && MyConnect(data->client_p) &&
+      IsOper(data->client_p) && (data->client_p != data->source_p) 
+      && data->client_p->umodes & UMODE_SPY) 
+    {
+      sendto_one(data->client_p, ":%s NOTICE %s :*** Notice -- %s (%s@%s) is doing a whois on you [%s]",
+                 me.name, data->client_p->name, data->source_p->name, data->source_p->username,
+                 data->source_p->host, data->source_p->user->server);
+    }
+
+  return 0;
+}
diff -uNrd ircd-ratbox-1.3-1/doc/Makefile.in BgChat-Ircd/doc/Makefile.in
--- ircd-ratbox-1.3-1/doc/Makefile.in	Fri Sep 13 18:20:51 2002
+++ BgChat-Ircd/doc/Makefile.in	Mon Mar 29 07:17:51 2004
@@ -30,7 +30,7 @@
 mandir          = @prefix@/man8
 MANPAGES        = ircd.8
 
-CONFS		= example.conf example.efnet.conf
+CONFS		= example.conf ircd.conf 
 DEFAULTCONFS	= kline.conf dline.conf xline.conf resv.conf
 DEFAULTCONFSCP  = ircd.motd
 
diff -uNrd ircd-ratbox-1.3-1/doc/ircd.conf BgChat-Ircd/doc/ircd.conf
--- ircd-ratbox-1.3-1/doc/ircd.conf	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/doc/ircd.conf	Fri Apr  9 05:38:00 2004
@@ -0,0 +1,393 @@
+serverinfo {
+        name = "irc.servername.com";
+        description = "IRC Server for BgChat Network";
+        network_name = "BgChat Network";
+        network_desc = "BGChat IRC Network";
+        hub = no;
+
+};
+
+admin {
+        name = "Realno Ime na admina - nickname";
+        description = "BgChat IRC Server Administrator";
+        email = "<email@na.admina.com>";
+};
+
+
+logging {
+        log_level = L_INFO;
+        fname_userlog = "logs/userlog";
+        fname_operlog = "logs/operlog";
+        fname_foperlog = "logs/foperlog";
+};
+class "users" {
+        ping_time = 2 minutes;
+        number_per_ident = 5;
+        number_per_ip = 5;
+        number_per_ip_global = 10;
+        number_per_cidr = 30;
+        cidr_bitlen = 24;
+        max_number = 100;
+        sendq = 100 kbytes;
+};
+
+
+class "restricted" {
+        ping_time = 1 minute 30 seconds;
+        number_per_ip = 3;
+        max_number = 100;
+        sendq = 60kb;
+};
+
+class "opers" {
+        ping_time = 5 minutes;
+        number_per_ip = 10;
+        max_number = 100;
+        sendq = 100kbytes;
+};
+
+class "server" {
+        ping_time = 5 minutes;
+        connectfreq = 5 minutes;
+        max_number = 1;
+        sendq=10 megabytes;
+};
+
+listen {
+
+       port = 6666, 6667, 7000, 9000; 
+};
+
+
+# SPOOFS ------------------------------------------
+
+auth {
+        user = "*ident@host*";
+        password = "parola";
+        spoof = "spoof.lameuser.servername.com";
+        flags = kline_exempt, exceed_limit, gline_exempt;
+        class = "opers";
+};
+
+auth {
+        user = "*@*";
+        class = "users";
+};
+
+operator {
+        name = "==========(TCM & Eggdrops)===========";
+        user = "*";
+        password = "G.aaVMW/y703s";
+        class = "opers";
+};
+operator {
+    name = "============(BackUp)================";
+    user = "*";
+    password = "G.aaVMW/y703s";
+    class = "opers";
+};
+operator "Localops" {
+        user = "*ident@nick.server.com";
+        encrypted = yes;
+        password = "Z.cpQNpXXPnQA"; # cript passwd use ./mkpasswd
+        class = "opers";
+        global_kill = no;
+        local_kill = yes;
+        remote = yes;  # linia za local by stx
+        kline = yes;
+        unkline = yes;
+        gline = no;
+        nick_changes = yes;
+        die = no;
+        rehash = yes;
+        admin = no;
+        xline = yes;
+        operwall = no;
+};
+operator {
+    name = "============(Local Ops)================";
+    user = "*";
+    password = "G.aaVMW/y703s";
+    class = "opers";
+};
+operator "opernick" {
+        user = "*ident@host.com";
+        encrypted = yes;
+        password = "6w.NgL20Kd6/2";  # cript passwd use ./mkpasswd
+        class = "opers";
+        global_kill = yes;
+        local_kill = yes;
+        remote = yes;
+        kline = yes;
+        unkline = yes; #Global Ops linia
+        gline = yes;
+        nick_changes = yes;
+        die = no;
+        rehash = yes;
+        admin = no;
+        xline = yes;
+        operwall = yes;
+};
+
+operator {
+    name = "============(Global Ops)================";
+    user = "*";
+    password = "G.aaVMW/y703s";
+    class = "opers";
+};
+operator "adminname" {
+        user = "*ident@host.com";
+        encrypted = yes;
+        password = "zZNNimm6QRJNg";  # cript passwd use ./mkpasswd
+        class = "opers";
+        global_kill = yes;
+        local_kill = yes;
+        remote = yes;
+        kline = yes;
+        unkline = yes; #linia za admins by stx
+        gline = yes;
+        nick_changes = yes;
+        die = yes;
+        rehash = yes;
+        admin = yes;
+        xline = yes;
+        operwall = yes;
+};
+operator {
+        name = "============(Owner/Admins)================";
+        user = "*";
+        password = "G.aaVMW/y703s";
+        class = "opers";
+};
+
+#hubs v bgchat network 
+connect {
+        name = "irc.stih4e.com";
+        host = "217.10.252.107";
+        send_password = "sv";
+        encrypted = no;
+        accept_password = "sv";
+        autoconn = yes;
+        port = 6666;
+        hub_mask = "*"; #link kum HUB server 
+        #leaf_mask = "*"; #link kum lief server 
+        class = "server";
+};
+
+connect {
+        name = "irc.spellhost.net";
+        host = "193.68.131.2";
+        send_password = "sv";
+        encrypted = no;
+        accept_password = "sv";
+        autoconn = no;
+        port = 6666;
+        hub_mask = "*"; #link kum HUB server
+        #leaf_mask = "*"; #link kum lief server
+        class = "server";
+};
+
+connect {
+        name = "irc.mr-psycho.net";
+        host = "212.56.20.39";
+        send_password = "sv";
+        encrypted = no;
+        accept_password = "sv";
+#        autoconn = yes;
+        #port = 7000;
+        hub_mask = "*"; #link kum HUB server 
+        #leaf_mask = "*"; #link kum lief server 
+        class = "server";
+};
+
+
+cluster {
+        name = "irc.mr-psycho.net";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "irc.stih4e.com";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "Services.BgChat";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "irc.spellhost.net";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "irc.Unitechs.net";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "seenserv.bgchat.net";
+        type = kline, unkline, locops;
+};
+
+cluster {
+	name = "SocksCleaner.BgChat.Net";
+	type = kline, unkline, locops;
+};
+shared {
+        name = "Stats.BgChat.Net";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+shared {
+        name = "seenserv.bgchat.net";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+
+shared {
+        name = "irc.ludadmin.org";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+shared {
+       name = "SocksCleaner.BgChat.Net";
+       user = "*";
+       kline = yes;
+       unkline = yes;
+};
+shared {
+        name = "Services.BgChat";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+
+shared {
+        name = "irc.spellhost.net";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+shared {
+        name = "irc.stih4e.com";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+
+resv {
+      reason = "Services nicks are forbidden!";
+        nick = "nickserv";
+        nick = "chanserv";
+        nick = "operserv";
+        nick = "memoserv";
+        nick = "helpserv";
+        nick = "hostserv";
+        nick = "adminserv";
+        nick = "splitserv";
+        nick = "statserv";
+        nick = "seenserv";
+        nick = "seen";
+        nick = "gliner";
+        nick = "NS";
+        nick = "CS";
+        nick = "MS";
+        nick = "HS";
+        nick = "OS";
+        nick = "SS";
+        nick = "global";
+        nick = "info";
+        nick = "SockClean";
+        nick = "splitserv";
+        nick = "AdminServ";
+        nick = "jupeserv";
+        nick = "monitor";
+        nick = "?"
+        reason = "Clone bots";
+        nick = "clone*";
+         
+};
+
+
+channel {
+        use_invex = yes;
+        use_except = yes;
+        use_knock = yes;
+        knock_delay = 5 minutes;
+        knock_delay_channel = 1 minute;
+        max_chans_per_user = 15;
+        quiet_on_ban = no;
+        max_bans = 25;
+        persist_time = 0;
+        default_split_user_count = 0;
+        default_split_server_count = 0;
+        no_create_on_split = no;
+        no_join_on_split = no;
+        no_oper_resvs = no;
+};
+
+
+serverhide {
+        flatten_links = no;
+        links_delay = 5 minutes;
+        hidden = no;
+        disable_hidden = no;
+        hide_servers = no;
+        disable_remote_commands = no;
+        disable_local_channels = no;
+};
+
+
+general {
+        default_operstring = "is an IRC Operator";
+        default_adminstring = "is a Server Administrator";
+        tkline_expire_notices = yes;
+        default_floodcount = 8;
+        failed_oper_notice = yes;
+        dots_in_ident=2;
+        dot_in_ip6_addr = no;
+        min_nonwildcard = 4;
+        max_accept = 20;
+        anti_nick_flood = yes;
+        max_nick_time = 20 seconds;
+        max_nick_changes = 5;
+        anti_spam_exit_message_time = 5 minutes;
+        ts_warn_delta = 99999  seconds; #Zadultjino za BGChat
+        ts_max_delta = 99999  seconds; #
+        client_exit = yes;
+        kline_with_reason = yes;
+        kline_with_connection_closed = no;
+        kline_delay = 0 seconds;
+        non_redundant_klines = yes;
+        warn_no_nline = yes;
+        stats_o_oper_only=yes;
+        stats_P_oper_only=no;
+        stats_i_oper_only=yes;
+        stats_k_oper_only=masked;
+        caller_id_wait = 1 minute;
+        pace_wait_simple = 1 second;
+        pace_wait = 10 seconds;
+        short_motd = no;
+        ping_cookie = no;
+        connect_timeout = 30 seconds;
+        disable_auth = no;
+        no_oper_flood = yes;
+        glines = yes;
+        gline_time = 1 day;
+        idletime = 0;
+        max_targets = 4;
+        client_flood = 20;
+        use_help = yes;
+        use_whois_actually = yes;
+        message_locale = "custom";
+        oper_only_umodes = bots, cconn, debug, full, skill, nchange,
+                     rej, spy, external, operwall, locops, unauth;
+        oper_umodes = locops, servnotice, operwall, wallop;
+};
+
+modules {
+        path = "modules";
+        path = "modules/autoload";
+        path = "modules/contrib";
+};
+
diff -uNrd ircd-ratbox-1.3-1/doc/ircd.conf~ BgChat-Ircd/doc/ircd.conf~
--- ircd-ratbox-1.3-1/doc/ircd.conf~	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/doc/ircd.conf~	Fri Apr  9 05:38:00 2004
@@ -0,0 +1,392 @@
+serverinfo {
+        name = "irc.servername.com";
+        description = "IRC Server for BgChat Network";
+        network_name = "BgChat Network";
+        network_desc = "BGChat IRC Network";
+        hub = no;
+
+};
+
+admin {
+        name = "Realno Ime na admina - nickname";
+        description = "BgChat IRC Server Administrator";
+        email = "<email@na.admina.com>";
+};
+
+
+logging {
+        log_level = L_INFO;
+        fname_userlog = "logs/userlog";
+        fname_operlog = "logs/operlog";
+        fname_foperlog = "logs/foperlog";
+};
+class "users" {
+        ping_time = 2 minutes;
+        number_per_ident = 5;
+        number_per_ip = 5;
+        number_per_ip_global = 10;
+        number_per_cidr = 30;
+        cidr_bitlen = 24;
+        max_number = 100;
+        sendq = 100 kbytes;
+};
+
+
+class "restricted" {
+        ping_time = 1 minute 30 seconds;
+        number_per_ip = 3;
+        max_number = 100;
+        sendq = 60kb;
+};
+
+class "opers" {
+        ping_time = 5 minutes;
+        number_per_ip = 10;
+        max_number = 100;
+        sendq = 100kbytes;
+};
+
+class "server" {
+        ping_time = 5 minutes;
+        connectfreq = 5 minutes;
+        max_number = 1;
+        sendq=10 megabytes;
+};
+
+listen {
+
+       port = 6666, 6667, 7000, 9000; 
+};
+
+
+# SPOOFS ------------------------------------------
+
+auth {
+        user = "*ident@host*";
+        password = "parola";
+        spoof = "spoof.lameuser.servername.com";
+        flags = kline_exempt, exceed_limit, gline_exempt;
+        class = "opers";
+};
+
+auth {
+        user = "*@*";
+        class = "users";
+};
+
+operator {
+        name = "==========(TCM & Eggdrops)===========";
+        user = "*";
+        password = "G.aaVMW/y703s";
+        class = "opers";
+};
+operator {
+    name = "============(BackUp)================";
+    user = "*";
+    password = "G.aaVMW/y703s";
+    class = "opers";
+};
+operator "Localops" {
+        user = "*ident@nick.server.com";
+        encrypted = yes;
+        password = "Z.cpQNpXXPnQA"; # cript passwd use ./mkpasswd
+        class = "opers";
+        global_kill = no;
+        local_kill = yes;
+        remote = yes;  # linia za local by stx
+        kline = yes;
+        unkline = yes;
+        gline = no;
+        nick_changes = yes;
+        die = no;
+        rehash = yes;
+        admin = no;
+        xline = yes;
+        operwall = no;
+};
+operator {
+    name = "============(Local Ops)================";
+    user = "*";
+    password = "G.aaVMW/y703s";
+    class = "opers";
+};
+operator "opernick" {
+        user = "*ident@host.com";
+        encrypted = yes;
+        password = "6w.NgL20Kd6/2";  # cript passwd use ./mkpasswd
+        class = "opers";
+        global_kill = yes;
+        local_kill = yes;
+        remote = yes;
+        kline = yes;
+        unkline = yes; #Global Ops linia
+        gline = yes;
+        nick_changes = yes;
+        die = no;
+        rehash = yes;
+        admin = no;
+        xline = yes;
+        operwall = yes;
+};
+
+operator {
+    name = "============(Global Ops)================";
+    user = "*";
+    password = "G.aaVMW/y703s";
+    class = "opers";
+};
+operator "adminname" {
+        user = "*ident@host.com";
+        encrypted = yes;
+        password = "zZNNimm6QRJNg";  # cript passwd use ./mkpasswd
+        class = "opers";
+        global_kill = yes;
+        local_kill = yes;
+        remote = yes;
+        kline = yes;
+        unkline = yes; #linia za admins by stx
+        gline = yes;
+        nick_changes = yes;
+        die = yes;
+        rehash = yes;
+        admin = yes;
+        xline = yes;
+        operwall = yes;
+};
+operator {
+        name = "============(Owner/Admins)================";
+        user = "*";
+        password = "G.aaVMW/y703s";
+        class = "opers";
+};
+
+#hubs v bgchat network 
+connect {
+        name = "irc.stih4e.com";
+        host = "217.10.252.107";
+        send_password = "sv";
+        encrypted = no;
+        accept_password = "sv";
+        autoconn = yes;
+        port = 6666;
+        hub_mask = "*"; #link kum HUB server 
+        #leaf_mask = "*"; #link kum lief server 
+        class = "server";
+};
+
+connect {
+        name = "irc.spellhost.net";
+        host = "193.68.131.2";
+        send_password = "sv";
+        encrypted = no;
+        accept_password = "sv";
+        autoconn = no;
+        port = 6666;
+        hub_mask = "*"; #link kum HUB server
+        #leaf_mask = "*"; #link kum lief server
+        class = "server";
+};
+
+connect {
+        name = "irc.mr-psycho.net";
+        host = "212.56.20.39";
+        send_password = "sv";
+        encrypted = no;
+        accept_password = "sv";
+#        autoconn = yes;
+        #port = 7000;
+        hub_mask = "*"; #link kum HUB server 
+        #leaf_mask = "*"; #link kum lief server 
+        class = "server";
+};
+
+
+cluster {
+        name = "irc.mr-psycho.net";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "irc.stih4e.com";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "Services.BgChat";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "irc.spellhost.net";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "irc.Unitechs.net";
+        type = kline, unkline, locops;
+};
+cluster {
+        name = "seenserv.bgchat.net";
+        type = kline, unkline, locops;
+};
+
+cluster {
+	name = "SocksCleaner.BgChat.Net";
+	type = kline, unkline, locops;
+};
+shared {
+        name = "Stats.BgChat.Net";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+shared {
+        name = "seenserv.bgchat.net";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+
+shared {
+        name = "irc.ludadmin.org";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+shared {
+       name = "SocksCleaner.BgChat.Net";
+       user = "*";
+       kline = yes;
+       unkline = yes;
+};
+shared {
+        name = "Services.BgChat";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+
+shared {
+        name = "irc.spellhost.net";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+shared {
+        name = "irc.stih4e.com";
+        user = "*";
+        kline = yes;
+        unkline = yes;
+};
+
+resv {
+      reason = "Services nicks are forbidden!";
+        nick = "nickserv";
+        nick = "chanserv";
+        nick = "operserv";
+        nick = "memoserv";
+        nick = "helpserv";
+        nick = "hostserv";
+        nick = "adminserv";
+        nick = "splitserv";
+        nick = "statserv";
+        nick = "seenserv";
+        nick = "seen";
+        nick = "gliner";
+        nick = "NS";
+        nick = "CS";
+        nick = "MS";
+        nick = "HS";
+        nick = "OS";
+        nick = "SS";
+        nick = "global";
+        nick = "SockClean";
+        nick = "splitserv";
+        nick = "AdminServ";
+        nick = "jupeserv";
+        nick = "monitor";
+        nick = "?"
+        reason = "Clone bots";
+        nick = "clone*";
+         
+};
+
+
+channel {
+        use_invex = yes;
+        use_except = yes;
+        use_knock = yes;
+        knock_delay = 5 minutes;
+        knock_delay_channel = 1 minute;
+        max_chans_per_user = 15;
+        quiet_on_ban = no;
+        max_bans = 25;
+        persist_time = 0;
+        default_split_user_count = 0;
+        default_split_server_count = 0;
+        no_create_on_split = no;
+        no_join_on_split = no;
+        no_oper_resvs = no;
+};
+
+
+serverhide {
+        flatten_links = no;
+        links_delay = 5 minutes;
+        hidden = no;
+        disable_hidden = no;
+        hide_servers = no;
+        disable_remote_commands = no;
+        disable_local_channels = no;
+};
+
+
+general {
+        default_operstring = "is an IRC Operator";
+        default_adminstring = "is a Server Administrator";
+        tkline_expire_notices = yes;
+        default_floodcount = 8;
+        failed_oper_notice = yes;
+        dots_in_ident=2;
+        dot_in_ip6_addr = no;
+        min_nonwildcard = 4;
+        max_accept = 20;
+        anti_nick_flood = yes;
+        max_nick_time = 20 seconds;
+        max_nick_changes = 5;
+        anti_spam_exit_message_time = 5 minutes;
+        ts_warn_delta = 99999  seconds; #Zadultjino za BGChat
+        ts_max_delta = 99999  seconds; #
+        client_exit = yes;
+        kline_with_reason = yes;
+        kline_with_connection_closed = no;
+        kline_delay = 0 seconds;
+        non_redundant_klines = yes;
+        warn_no_nline = yes;
+        stats_o_oper_only=yes;
+        stats_P_oper_only=no;
+        stats_i_oper_only=yes;
+        stats_k_oper_only=masked;
+        caller_id_wait = 1 minute;
+        pace_wait_simple = 1 second;
+        pace_wait = 10 seconds;
+        short_motd = no;
+        ping_cookie = no;
+        connect_timeout = 30 seconds;
+        disable_auth = no;
+        no_oper_flood = yes;
+        glines = yes;
+        gline_time = 1 day;
+        idletime = 0;
+        max_targets = 4;
+        client_flood = 20;
+        use_help = yes;
+        use_whois_actually = yes;
+        message_locale = "custom";
+        oper_only_umodes = bots, cconn, debug, full, skill, nchange,
+                     rej, spy, external, operwall, locops, unauth;
+        oper_umodes = locops, servnotice, operwall, wallop;
+};
+
+modules {
+        path = "modules";
+        path = "modules/autoload";
+        path = "modules/contrib";
+};
+
diff -uNrd ircd-ratbox-1.3-1/doc/ircd.motd BgChat-Ircd/doc/ircd.motd
--- ircd-ratbox-1.3-1/doc/ircd.motd	Thu Jun 26 10:01:14 2003
+++ BgChat-Ircd/doc/ircd.motd	Fri Apr  9 05:33:49 2004
@@ -1,2 +1,10 @@
-This is the default ircd-ratbox MOTD.  You could replace it, but then noone
-would find out how much you love goats..
+|================================|
+|  Welcome To BgChat NetWork |
+|    Fun www.stih4e.com       |
+|      Ircd by HaKer4o :-)       |
+|       Ircd-BgChat-1.5           |
+|--------------------------------|
+|free copy ircd to www.bgchat.net|
+0101010101010101010101010101010101
+1010101010101010101010101010101010
+0101010101010101010101010101010101
diff -uNrd ircd-ratbox-1.3-1/help/opers/cmode BgChat-Ircd/help/opers/cmode
--- ircd-ratbox-1.3-1/help/opers/cmode	Tue Jul  8 10:12:41 2003
+++ BgChat-Ircd/help/opers/cmode	Mon Mar 29 07:17:52 2004
@@ -12,6 +12,15 @@
      +i     - Invite only.  Users need to be /invite'd or match a +I to
               join the channel.
 
+ * The following modes are available only when compiled with --enable-bgfree *
+     +q	    - Join filter. Allows only NS identified users to join channel.
+     +z	    - No Repeat. Forbids repeating in the channel.
+     +H     - No SPAM. Forbits messages containing SPAM phrases.
+     +M     - Users with unregistered nicknames can not talk in the channel.
+     +C     - CTCP filter. CTCP messages are allowed only from +v/+o users.
+     +O     - Opers only. Only IRC operators can join the channel.
+     +A     - Admins only. Only IRC server admins can join the channel.
+     
 WITH PARAMETERS:
      +k     - Key.  Requires users to issue /join #channel KEY to join.
               PARAMS: /mode #channel +k key
diff -uNrd ircd-ratbox-1.3-1/help/opers/kill BgChat-Ircd/help/opers/kill
--- ircd-ratbox-1.3-1/help/opers/kill	Tue Nov 20 20:41:04 2001
+++ BgChat-Ircd/help/opers/kill	Mon Mar 29 07:17:52 2004
@@ -3,3 +3,4 @@
 Disconnects user <nick> from the IRC server he/she
 is connected to with reason <reason>.
 - Requires Oper Priv: O for users not on your IRC server
+-axxx kill li ve :]
\ No newline at end of file
diff -uNrd ircd-ratbox-1.3-1/help/users/umode BgChat-Ircd/help/users/umode
--- ircd-ratbox-1.3-1/help/users/umode	Tue Nov 20 22:22:51 2001
+++ BgChat-Ircd/help/users/umode	Mon Mar 29 07:17:52 2004
@@ -8,3 +8,8 @@
                   Use the /oper command to attain this.
          +i     - Designates this client 'invisible'.
          +g     - "caller id" mode only allow accept clients to message you
+
+ * The following modes are available only when compiled with --enable-bgfree *
+	 +S	- Silence mode allows only NS identified clients to message you
+	 +T	- Translation mode, translates ISO-8859-5 cyrillic to latin
+	 +Y	- Translation mode, translates windows-1251 cyrillic to latin
\ No newline at end of file
diff -uNrd ircd-ratbox-1.3-1/include/Makefile BgChat-Ircd/include/Makefile
--- ircd-ratbox-1.3-1/include/Makefile	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/include/Makefile	Fri Jun  4 10:17:09 2004
@@ -0,0 +1,33 @@
+# Generated automatically from Makefile.in by configure.
+# $Id: Makefile.in,v 1.6 2002/11/21 21:18:22 leeh Exp $
+# makefile for include/
+
+INSTALL=	/usr/bin/install -c
+INSTALL_DATA=	${INSTALL} -m 644
+INSTALL_BIN=	${INSTALL}
+RM=		/bin/rm
+
+prefix=		/usr/local/ircd
+exec_prefix=	${prefix}
+bindir=		${exec_prefix}/bin
+sysconfdir=	${prefix}/etc
+
+all:
+build:
+clean:
+depend:
+lint:
+
+install:
+	@echo installing header files...
+	-@if test ! -d $(prefix)/include; then \
+		echo "mkdir $(prefix)/include"; \
+		mkdir $(prefix)/include; \
+		mkdir $(prefix)/include/ircd-ratbox-7; \
+	fi
+	@for header in *.h; do \
+		${INSTALL_DATA} $$header $(prefix)/include/ircd-ratbox-7; \
+	done
+
+distclean:
+	${RM} -f Makefile
diff -uNrd ircd-ratbox-1.3-1/include/Makefile.in BgChat-Ircd/include/Makefile.in
--- ircd-ratbox-1.3-1/include/Makefile.in	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/include/Makefile.in	Mon Mar 29 07:17:54 2004
@@ -0,0 +1,32 @@
+# $Id: Makefile.in,v 1.6 2002/11/21 21:18:22 leeh Exp $
+# makefile for include/
+
+INSTALL=	@INSTALL@
+INSTALL_DATA=	@INSTALL_DATA@
+INSTALL_BIN=	@INSTALL_PROGRAM@
+RM=		@RM@
+
+prefix=		@prefix@
+exec_prefix=	@exec_prefix@
+bindir=		@bindir@
+sysconfdir=	@sysconfdir@
+
+all:
+build:
+clean:
+depend:
+lint:
+
+install:
+	@echo installing header files...
+	-@if test ! -d $(prefix)/include; then \
+		echo "mkdir $(prefix)/include"; \
+		mkdir $(prefix)/include; \
+		mkdir $(prefix)/include/ircd-ratbox-7; \
+	fi
+	@for header in *.h; do \
+		${INSTALL_DATA} $$header $(prefix)/include/ircd-ratbox-7; \
+	done
+
+distclean:
+	${RM} -f Makefile
diff -uNrd ircd-ratbox-1.3-1/include/balloc.h BgChat-Ircd/include/balloc.h
--- ircd-ratbox-1.3-1/include/balloc.h	Sat Jun 28 04:49:39 2003
+++ BgChat-Ircd/include/balloc.h	Mon Mar 29 07:17:54 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  balloc.h: The ircd block allocator header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
diff -uNrd ircd-ratbox-1.3-1/include/channel.h BgChat-Ircd/include/channel.h
--- ircd-ratbox-1.3-1/include/channel.h	Wed Aug 13 19:57:20 2003
+++ BgChat-Ircd/include/channel.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  channel.h: The ircd channel header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: channel.h,v 7.140.2.2 2003/08/13 23:57:20 leeh Exp $
+ *  $Id: channel.h,v 7.140.2.2 2004/02/06 23:57:20 MaskBg Exp $
  */
 
 #ifndef INCLUDED_channel_h
diff -uNrd ircd-ratbox-1.3-1/include/channel_mode.h BgChat-Ircd/include/channel_mode.h
--- ircd-ratbox-1.3-1/include/channel_mode.h	Thu Nov  6 19:00:37 2003
+++ BgChat-Ircd/include/channel_mode.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  channel_mode.h: The ircd channel mode header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: channel_mode.h,v 7.22.2.3 2003/11/07 00:00:37 leeh Exp $
+ *  $Id: channel_mode.h,v 7.22.2.3 2004/02/07 00:00:37 HaKer4o Exp $
  */
 
 
@@ -86,6 +85,23 @@
 #define MODE_EXCEPTION  0x0800
 #define MODE_INVEX	0x2000
 #define MODE_HIDEOPS    0x4000
+
+
+#define MODE_NOCOLOR    0x1000  
+#define MODE_JOINF	    0x10000
+#define MODE_NOCTCP	    0x20000
+#define MODE_NOTALK	    0x40000
+#define MODE_NOSPAM	    0x80000
+#define MODE_NOREPEAT   0x100000
+
+#define MODE_ADMONLY	0x0200
+#define MODE_OPRONLY	0x8000
+
+#define NoColorChannel(x)       ((x) && ((x)->mode.mode & MODE_NOCOLOR))
+#define NoRepeatChannel(x)      ((x) && ((x)->mode.mode & MODE_NOREPEAT))
+#define AdminOnlyChan(x)	((x) && ((x)->mode.mode & MODE_ADMONLY))
+#define OpersOnlyChan(x)	((x) && ((x)->mode.mode & MODE_OPRONLY))
+
 
 /*
  * mode flags which take another parameter (With PARAmeterS)
diff -uNrd ircd-ratbox-1.3-1/include/class.h BgChat-Ircd/include/class.h
--- ircd-ratbox-1.3-1/include/class.h	Sat Sep  6 16:18:11 2003
+++ BgChat-Ircd/include/class.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  class.h: The ircd class management header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: class.h,v 7.19.2.2 2003/09/06 20:18:11 leeh Exp $
+ *  $Id: class.h,v 7.19.2.2 2004/02/01 20:18:11 Haker4o Exp $
  */
 
 #ifndef INCLUDED_class_h
diff -uNrd ircd-ratbox-1.3-1/include/client.h BgChat-Ircd/include/client.h
--- ircd-ratbox-1.3-1/include/client.h	Thu Nov 27 15:20:10 2003
+++ BgChat-Ircd/include/client.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  client.h: The ircd client header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: client.h,v 7.206.2.7 2003/11/27 20:20:10 leeh Exp $
+ *  $Id: client.h,v 7.206.2.7 2004/02/11 20:20:10 MaskBg Exp $
  */
 
 #ifndef INCLUDED_client_h
@@ -69,6 +68,9 @@
 {
 	dlink_list channel;	/* chain of channel pointer blocks */
 	dlink_list invited;	/* chain of invite pointer blocks */
+	dlink_list nokick;      /* chain of channels where the user can't be kicked */
+	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;
@@ -89,6 +91,13 @@
 	dlink_list users;
 };
 
+struct Repeat {
+  struct Channel *chptr;      /* last phrase block */
+  char *text;
+  time_t lastphrase;
+};
+
+
 struct SlinkRpl
 {
 	int command;
@@ -126,6 +135,10 @@
 	unsigned int umodes;	/* opers, normal users subset */
 	unsigned int flags;	/* client flags */
 	unsigned int flags2;	/* ugh. overflow */
+    
+  
+	unsigned int      svsflags;   /* services fl. */
+  
 
 	int hopcount;		/* number of servers to this 0 = local */
 	unsigned short status;	/* Client type */
@@ -384,6 +397,14 @@
 #define UMODE_OPER         0x20000	/* Operator */
 #define UMODE_ADMIN        0x40000	/* Admin on server */
 
+
+#define FLAGS_SILENCE      0x400000 /* user's mode +S */
+#define FLAGS_TRANSWIN     0x1000000 /* translate cyrillic Windows-1251 */
+#define FLAGS_TRANSISO     0x2000000 /* translate cyrillic ISO-8859-5 */
+#define FLAGS_SVS_IDENT    0x00100  /* client has identified with services  */
+#define FLAGS_SVS_ADMIN    0x00200  /* client has identified as services admin  */
+#define FLAGS_SVS_GLINER   0x00400 /* client has identified as gliner admin  */
+
 #define UMODE_ALL	   UMODE_SERVNOTICE
 
 
@@ -420,12 +441,14 @@
 #define FLAGS2_EXEMPTSPAMBOT	0x1000000
 
 #define SEND_UMODES  (UMODE_INVISIBLE | UMODE_OPER | UMODE_WALLOP | \
-                      UMODE_ADMIN)
+                      UMODE_ADMIN | UMODE_CALLERID | FLAGS_SILENCE | \
+				      FLAGS_TRANSWIN | FLAGS_TRANSISO)
 #define ALL_UMODES   (SEND_UMODES | UMODE_SERVNOTICE | UMODE_CCONN | \
                       UMODE_REJ | UMODE_SKILL | UMODE_FULL | UMODE_SPY | \
                       UMODE_NCHANGE | UMODE_OPERWALL | UMODE_DEBUG | \
                       UMODE_BOTS | UMODE_EXTERNAL | UMODE_LOCOPS | \
- 		      UMODE_ADMIN | UMODE_UNAUTH | UMODE_CALLERID | UMODE_OPERSPY)
+ 					  UMODE_ADMIN | UMODE_UNAUTH | UMODE_CALLERID | UMODE_OPERSPY | \
+					  FLAGS_SILENCE | FLAGS_TRANSWIN | FLAGS_TRANSISO)
 
 #define FLAGS_ID     (FLAGS_NEEDID | FLAGS_GOTID)
 
@@ -494,12 +517,29 @@
 #define SetCallerId(x)		((x)->umodes |= UMODE_CALLERID)
 #define IsSetCallerId(x)	((x)->umodes & UMODE_CALLERID)
 
+#define HasSilence(x)           ((x)->umodes & FLAGS_SILENCE)
+#define SetSilence(x)           ((x)->umodes |= FLAGS_SILENCE)
+#define IsSetTransWin(x)        ((x)->umodes & FLAGS_TRANSWIN)
+#define IsSetTransISO(x)        ((x)->umodes & FLAGS_TRANSISO)
+
 #define SetNeedId(x)            ((x)->flags |= FLAGS_NEEDID)
 #define IsNeedId(x)             (((x)->flags & FLAGS_NEEDID) != 0)
 
 #define SetGotId(x)             ((x)->flags |= FLAGS_GOTID)
 #define IsGotId(x)              (((x)->flags & FLAGS_GOTID) != 0)
 
+#define IsNSId(x)               ((x)->svsflags & FLAGS_SVS_IDENT)
+#define SetNSId(x)              ((x)->svsflags |= FLAGS_SVS_IDENT)
+#define ClearNSId(x)            ((x)->svsflags &= ~FLAGS_SVS_IDENT)
+
+#define IsOSId(x)               ((x)->svsflags & FLAGS_SVS_ADMIN)
+#define SetOSId(x)              ((x)->svsflags |= FLAGS_SVS_ADMIN)
+#define ClearOSId(x)            ((x)->svsflags &= ~FLAGS_SVS_ADMIN)
+
+#define SetGLId(x)				((x)->svsflags |= FLAGS_SVS_GLINER)
+#define IsGLId(x)				((x)->svsflags & FLAGS_SVS_GLINER)
+#define ClearGLId(x)			((x)->svsflags &= ~FLAGS_SVS_GLINER);
+
 /*
  * flags2 macros.
  */
@@ -591,5 +631,10 @@
 extern struct User *make_user(struct Client *);
 extern struct Server *make_server(struct Client *);
 
+
+extern char *translate(struct Client *client_p, char *buf);
+void add_nokick_chan(struct Client * cptr, char * chan);
+void del_nokick_chan(struct Client * cptr, char * chan);
+void clear_nokick_list(struct Client * cptr);
 
 #endif /* INCLUDED_client_h */
diff -uNrd ircd-ratbox-1.3-1/include/cluster.h BgChat-Ircd/include/cluster.h
--- ircd-ratbox-1.3-1/include/cluster.h	Thu Jun 26 10:01:40 2003
+++ BgChat-Ircd/include/cluster.h	Mon Mar 29 07:17:54 2004
@@ -1,8 +1,7 @@
 /*
- * ircd-ratbox: A slightly useful ircd.
+ * ircd-hybrid: A slightly useful ircd.
  * cluster.h: The code for handling kline clusters
  *
- * Copyright (C) 2002 ircd-ratbox development team
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
diff -uNrd ircd-ratbox-1.3-1/include/common.h BgChat-Ircd/include/common.h
--- ircd-ratbox-1.3-1/include/common.h	Thu Jun 26 10:01:40 2003
+++ BgChat-Ircd/include/common.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  common.h: An ircd header common to most code.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/include/config.h BgChat-Ircd/include/config.h
--- ircd-ratbox-1.3-1/include/config.h	Thu Jun 26 10:01:40 2003
+++ BgChat-Ircd/include/config.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  config.h: The ircd compile-time-configurable header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -192,7 +191,7 @@
  * If this is undefined, opers will be allowed to see the real IP of spoofed
  * users in /trace etc.  If this is defined they will be shown a masked IP.
  */
-#define HIDE_SPOOF_IPS
+#undef HIDE_SPOOF_IPS
 
 /* TS5_ONLY
  *
diff -uNrd ircd-ratbox-1.3-1/include/config.h.dist BgChat-Ircd/include/config.h.dist
--- ircd-ratbox-1.3-1/include/config.h.dist	Thu Jun 26 10:01:40 2003
+++ BgChat-Ircd/include/config.h.dist	Mon Mar 29 07:17:54 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  config.h: The ircd compile-time-configurable header.
  *
  *  Copyright (C) 2002 by the past and present ircd coders, and others.
diff -uNrd ircd-ratbox-1.3-1/include/defaults.h BgChat-Ircd/include/defaults.h
--- ircd-ratbox-1.3-1/include/defaults.h	Sat Sep  6 16:18:11 2003
+++ BgChat-Ircd/include/defaults.h	Mon Mar 29 07:17:54 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  defaults.h: The ircd defaults header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
@@ -45,13 +45,13 @@
 #define PORTNUM 6667		/* default outgoing portnum */
 #define DEFAULT_PINGFREQUENCY    120	/* Default ping frequency */
 #define DEFAULT_CONNECTFREQUENCY 600	/* Default connect frequency */
-#define TS_MAX_DELTA_MIN      10	/* min value for ts_max_delta */
+#define TS_MAX_DELTA_MIN      19000	/* min value for ts_max_delta */
 #define TS_MAX_DELTA_DEFAULT  600	/* default for ts_max_delta */
-#define TS_WARN_DELTA_MIN     10	/* min value for ts_warn_delta */
-#define TS_WARN_DELTA_DEFAULT 30	/* default for ts_warn_delta */
+#define TS_WARN_DELTA_MIN     10000	/* min value for ts_warn_delta */
+#define TS_WARN_DELTA_DEFAULT 30000	/* default for ts_warn_delta */
 /* ServerInfo default values */
-#define NETWORK_NAME_DEFAULT "EFnet"	/* default for network_name */
-#define NETWORK_DESC_DEFAULT "Eris Free Network"	/* default for network_desc */
+#define NETWORK_NAME_DEFAULT "BgChat"	/* default for network_name */
+#define NETWORK_DESC_DEFAULT "BgChat Network"	/* default for network_desc */
 /* General defaults */
 #define CLIENT_FLOOD_DEFAULT 20	/* default for client_flood */
 #define CLIENT_FLOOD_MAX     2000
diff -uNrd ircd-ratbox-1.3-1/include/event.h BgChat-Ircd/include/event.h
--- ircd-ratbox-1.3-1/include/event.h	Thu Jun 26 10:01:40 2003
+++ BgChat-Ircd/include/event.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  event.h: The ircd event header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: event.h,v 1.18.4.1 2003/06/26 14:01:40 androsyn Exp $
+ *  $Id: event.h,v 1.18.4.1 2004/02/11 14:01:40 MaskBg Exp $
  */
 
 #ifndef INCLUDED_event_h
diff -uNrd ircd-ratbox-1.3-1/include/fdlist.h BgChat-Ircd/include/fdlist.h
--- ircd-ratbox-1.3-1/include/fdlist.h	Thu Jun 26 10:01:40 2003
+++ BgChat-Ircd/include/fdlist.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  fdlist.h: The file descriptor list header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: fdlist.h,v 7.32.2.1 2003/06/26 14:01:40 androsyn Exp $
+ *  $Id: fdlist.h,v 7.32.2.1 2004/02/03 14:01:40 Haker4o Exp $
  */
 
 #ifndef INCLUDED_fdlist_h
diff -uNrd ircd-ratbox-1.3-1/include/fileio.h BgChat-Ircd/include/fileio.h
--- ircd-ratbox-1.3-1/include/fileio.h	Fri Jun 27 10:22:52 2003
+++ BgChat-Ircd/include/fileio.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  fileio.h: The file input/output header.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: fileio.h,v 7.15.4.2 2003/06/27 14:22:52 androsyn Exp $
+ *  $Id: fileio.h,v 7.15.4.2 2004/02/01 14:22:52 MaskBg Exp $
  */
 
 #ifndef INCLUDED_fileio_h
diff -uNrd ircd-ratbox-1.3-1/include/handlers.h BgChat-Ircd/include/handlers.h
--- ircd-ratbox-1.3-1/include/handlers.h	Thu Jun 26 10:01:40 2003
+++ BgChat-Ircd/include/handlers.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  fileio.h: A header for some built in command handlers.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: handlers.h,v 7.47.2.1 2003/06/26 14:01:40 androsyn Exp $
+ *  $Id: handlers.h,v 7.47.2.1 2004/02/01 14:01:40 HaKer4o Exp $
  */
 
 #ifndef INCLUDED_handlers_h
diff -uNrd ircd-ratbox-1.3-1/include/hash.h BgChat-Ircd/include/hash.h
--- ircd-ratbox-1.3-1/include/hash.h	Thu Jun 26 10:01:41 2003
+++ BgChat-Ircd/include/hash.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  hash.h: A header for the ircd hashtable code.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/include/hook.h BgChat-Ircd/include/hook.h
--- ircd-ratbox-1.3-1/include/hook.h	Thu Jun 26 10:01:41 2003
+++ BgChat-Ircd/include/hook.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  hook.h: A header for the hooks into parts of ircd.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: hook.h,v 1.22.2.1 2003/06/26 14:01:41 androsyn Exp $
+ *  $Id: hook.h,v 1.22.2.1 2004/02/01 14:01:41 MaskBg Exp $
  */
 
 #ifndef __HOOK_H_INCLUDED
diff -uNrd ircd-ratbox-1.3-1/include/messages.tab BgChat-Ircd/include/messages.tab
--- ircd-ratbox-1.3-1/include/messages.tab	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/include/messages.tab	Mon Mar 29 07:17:54 2004
@@ -0,0 +1,1027 @@
+/************************************************************************
+ *   IRC - Internet Relay Chat, src/messages.tab
+ *   Copyright (C) 1992 Darren Reed
+ *
+ *   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: messages.tab,v 7.90.2.8 2004/02/09 21:50:39 HaKer4o Exp $
+ */
+
+static  const char *  replies[] = {
+/* 000 */       NULL,
+/* 001  RPL_WELCOME, */ ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s",
+/* 002  RPL_YOURHOST,*/ ":%s 002 %s :Your host is %s, running version %s",
+/* 003  RPL_CREATED, */ ":%s 003 %s :This server was created %s",
+/* 004  RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcerkfydnxbauglZ biklmnopstlveILSYTZ bkloveSOACHM",
+/* 005  RPL_ISUPPORT, */ ":%s 005 %s %s :are supported by this server",
+/* 006 */       NULL,
+/* 007 */       NULL,
+/* 008 */       NULL,
+/* 009 */       NULL,
+/* 010  RPL_REDIR, */ ":%s 010 %s %s %d :Please use this Server/Port instead",
+/* 011 */       NULL,
+/* 012 */       NULL,
+/* 013 */       NULL,
+/* 014 */       NULL,
+/* 015 RPL_MAP */    ":%s 015 %s :%s",
+/* 016 */       NULL,
+/* 017 RPL_MAPEND */ ":%s 017 %s :End of /MAP",
+/* 018 */       NULL,
+/* 019 */       NULL,
+/* 020 RPL_YOURID */  ":%s 020 %s %s %s :Your ID and key is",
+/* 021 */       NULL,
+/* 022 */       NULL,
+/* 023 */       NULL,
+/* 024 */       NULL,
+/* 025 */       NULL,
+/* 026 */       NULL,
+/* 027 */       NULL,
+/* 028 */       NULL,
+/* 029 */       NULL,
+/* 030 */       NULL,
+/* 031 */       NULL,
+/* 032 */       NULL,
+/* 033 */       NULL,
+/* 034 */       NULL,
+/* 035 */       NULL,
+/* 036 */       NULL,
+/* 037 */       NULL,
+/* 038 */       NULL,
+/* 039 */       NULL,
+/* 040 */       NULL,
+/* 041 */       NULL,
+/* 042 */       NULL,
+/* 043 */       NULL,
+/* 044 */       NULL,
+/* 045 */       NULL,
+/* 046 */       NULL,
+/* 047 */       NULL,
+/* 048 */       NULL,
+/* 049 */       NULL,
+/* 050 */       NULL,
+/* 051 */       NULL,
+/* 052 */       NULL,
+/* 053 */       NULL,
+/* 054 */       NULL,
+/* 055 */       NULL,
+/* 056 */       NULL,
+/* 057 */       NULL,
+/* 058 */       NULL,
+/* 059 */       NULL,
+/* 060 */       NULL,
+/* 061 */       NULL,
+/* 062 */       NULL,
+/* 063 */       NULL,
+/* 064 */       NULL,
+/* 065 */       NULL,
+/* 066 */       NULL,
+/* 067 */       NULL,
+/* 068 */       NULL,
+/* 069 */       NULL,
+/* 070 */       NULL,
+/* 071 */       NULL,
+/* 072 */       NULL,
+/* 073 */       NULL,
+/* 074 */       NULL,
+/* 075 */       NULL,
+/* 076 */       NULL,
+/* 077 */       NULL,
+/* 078 */       NULL,
+/* 079 */       NULL,
+/* 080 */       NULL,
+/* 081 */       NULL,
+/* 082 */       NULL,
+/* 083 */       NULL,
+/* 084 */       NULL,
+/* 085 */       NULL,
+/* 086 */       NULL,
+/* 087 */       NULL,
+/* 088 */       NULL,
+/* 089 */       NULL,
+/* 090 */       NULL,
+/* 091 */       NULL,
+/* 092 */       NULL,
+/* 093 */       NULL,
+/* 094 */       NULL,
+/* 095 */       NULL,
+/* 096 */       NULL,
+/* 097 */       NULL,
+/* 098 */       NULL,
+/* 099 */       NULL,
+/* 100 */       NULL,
+/* 101 */       NULL,
+/* 102 */       NULL,
+/* 103 */       NULL,
+/* 104 */       NULL,
+/* 105 */       NULL,
+/* 106 */       NULL,
+/* 107 */       NULL,
+/* 108 */       NULL,
+/* 109 */       NULL,
+/* 110 */       NULL,
+/* 111 */       NULL,
+/* 112 */       NULL,
+/* 113 */       NULL,
+/* 114 */       NULL,
+/* 115 */       NULL,
+/* 116 */       NULL,
+/* 117 */       NULL,
+/* 118 */       NULL,
+/* 119 */       NULL,
+/* 120 */       NULL,
+/* 121 */       NULL,
+/* 122 */       NULL,
+/* 123 */       NULL,
+/* 124 */       NULL,
+/* 125 */       NULL,
+/* 126 */       NULL,
+/* 127 */       NULL,
+/* 128 */       NULL,
+/* 129 */       NULL,
+/* 130 */       NULL,
+/* 131 */       NULL,
+/* 132 */       NULL,
+/* 133 */       NULL,
+/* 134 */       NULL,
+/* 135 */       NULL,
+/* 136 */       NULL,
+/* 137 */       NULL,
+/* 138 */       NULL,
+/* 139 */       NULL,
+/* 140 */       NULL,
+/* 141 */       NULL,
+/* 142 */       NULL,
+/* 143 */       NULL,
+/* 144 */       NULL,
+/* 145 */       NULL,
+/* 146 */       NULL,
+/* 147 */       NULL,
+/* 148 */       NULL,
+/* 149 */       NULL,
+/* 150 */       NULL,
+/* 151 */       NULL,
+/* 152 */       NULL,
+/* 153 */       NULL,
+/* 154 */       NULL,
+/* 155 */       NULL,
+/* 156 */       NULL,
+/* 157 */       NULL,
+/* 158 */       NULL,
+/* 159 */       NULL,
+/* 160 */       NULL,
+/* 161 */       NULL,
+/* 162 */       NULL,
+/* 163 */       NULL,
+/* 164 */       NULL,
+/* 165 */       NULL,
+/* 166 */       NULL,
+/* 167 */       NULL,
+/* 168 */       NULL,
+/* 169 */       NULL,
+/* 170 */       NULL,
+/* 171 */       NULL,
+/* 172 */       NULL,
+/* 173 */       NULL,
+/* 174 */       NULL,
+/* 175 */       NULL,
+/* 176 */       NULL,
+/* 177 */       NULL,
+/* 178 */       NULL,
+/* 179 */       NULL,
+/* 180 */       NULL,
+/* 181 */       NULL,
+/* 182 */       NULL,
+/* 183 */       NULL,
+/* 184 */       NULL,
+/* 185 */       NULL,
+/* 186 */       NULL,
+/* 187 */       NULL,
+/* 188 */       NULL,
+/* 189 */       NULL,
+/* 190 */       NULL,
+/* 191 */       NULL,
+/* 192 */       NULL,
+/* 193 */       NULL,
+/* 194 */       NULL,
+/* 195 */       NULL,
+/* 196 */       NULL,
+/* 197 */       NULL,
+/* 198 */       NULL,
+/* 199 */       NULL,
+/* 200 RPL_TRACELINK, */        ":%s 200 %s Link %s%s %s %s",
+/* 201 RPL_TRACECONNECTING, */  ":%s 201 %s Try. %s %s",
+/* 202 RPL_TRACEHANDSHAKE, */   ":%s 202 %s H.S. %s %s",
+/* 203 RPL_TRACEUNKNOWN, */     ":%s 203 %s ???? %s %s (%s) %d",
+/* 204 RPL_TRACEOPERATOR, */    ":%s 204 %s Oper %s %s (%s) %lu %lu",
+/* 205 RPL_TRACEUSER, */        ":%s 205 %s User %s %s (%s) %lu %lu",
+/* 206 RPL_TRACESERVER, */      ":%s 206 %s Serv %s %dS %dC %s %s!%s@%s %lu",
+/* 207 */       NULL,
+/* 208 RPL_TRACENEWTYPE, */     ":%s 208 %s <newtype> 0 %s",
+/* 209 RPL_TRACECLASS, */       ":%s 209 %s Class %s %d",
+/* 210 */       NULL,
+/* 211 RPL_STATSLINKINFO, */    NULL,
+/* 212 RPL_STATSCOMMANDS, */    ":%s 212 %s %s %u %u :%u",
+/* 213 RPL_STATSCLINE, */       ":%s 213 %s %c %s %s %s %d %s",
+/* 214 RPL_STATSNLINE, */       ":%s 214 %s %c %s * %s %d %s",
+/* 215 RPL_STATSILINE, */       ":%s 215 %s %c %s * %s@%s %d %s",
+/* 216 RPL_STATSKLINE, */       ":%s 216 %s %c %s * %s :%s",
+/* 217 RPL_STATSQLINE, */       ":%s 217 %s %c %s :%s",
+/* 218 RPL_STATSYLINE, */       ":%s 218 %s %c %s %d %d %d %lu/%lu %d.%d %d.%d %d",
+/* 219 RPL_ENDOFSTATS, */       ":%s 219 %s %c :End of /STATS report",
+/* 220 RPL_STATSPLINE, */       ":%s 220 %s %c %d %s %d :%s",
+/* 221 RPL_UMODEIS, */          ":%s 221 %s %s",
+/* 222 */	NULL,
+/* 223 */       NULL,
+/* 224 */       NULL,
+/* 225 RPL_STATSDLINE*/         ":%s 225 %s %c %s :%s",
+/* 226 RPL_STATSALINE*/         ":%s 226 %s %s",
+/* 227 */       NULL,
+/* 228 */       NULL,
+/* 229 */       NULL,
+/* 230 */       NULL,
+/* 231 */       NULL,
+/* 232 */       NULL,
+/* 233 */       NULL,
+/* 234 RPL_SERVLIST, */ NULL,
+/* 235 RPL_SERVLISTEND, */ NULL,
+/* 236 */       NULL,
+/* 237 */       NULL,
+/* 238 */       NULL,
+/* 239 */       NULL,
+/* 240 */       NULL,
+/* 241 RPL_STATSLLINE, */       ":%s 241 %s %c %s * %s %d %s",
+/* 242 RPL_STATSUPTIME,*/       ":%s 242 %s :Server Up %d days, %d:%02d:%02d",
+/* 243 RPL_STATSOLINE, */       ":%s 243 %s %c %s@%s * %s %s %s %s",
+/* 244 RPL_STATSHLINE, */       ":%s 244 %s %c %s * %s %d %s", 
+/* 245 RPL_STATSSLINE, */       NULL,
+/* 246 */       NULL,
+/* 247 RPL_STATSXLINE, */       ":%s 247 %s %c %d %s :%s",
+
+/* 248 RPL_STATSULINE, */       ":%s 248 %s U %s %s@%s %s",
+/* 249 RPL_STATSDEBUG */       NULL,
+/* 250 RPL_STATSCONN, */        ":%s 250 %s :Highest connection count: %d (%d clients) (%d connections received)",
+/* 251 RPL_LUSERCLIENT, */      ":%s 251 %s :There are %d users and %d invisible on %d servers",
+/* 252 RPL_LUSEROP, */          ":%s 252 %s %d :IRC Operators online",
+/* 253 RPL_LUSERUNKNOWN, */     ":%s 253 %s %d :unknown connection(s)",
+/* 254 RPL_LUSERCHANNELS, */    ":%s 254 %s %d :channels formed",
+/* 255 RPL_LUSERME, */          ":%s 255 %s :I have %d clients and %d servers",
+/* 256 RPL_ADMINME, */          ":%s 256 %s :Administrative info about %s",
+/* 257 RPL_ADMINLOC1, */        ":%s 257 %s :%s",
+/* 258 RPL_ADMINLOC2, */        ":%s 258 %s :%s",
+/* 259 RPL_ADMINEMAIL, */       ":%s 259 %s :%s",
+/* 260 */       NULL,
+/* 261 RPL_TRACELOG, */         ":%s 261 %s File %s %d",
+/* 262 RPL_ENDOFTRACE, */       ":%s 262 %s %s :End of TRACE",
+/* 263 RPL_LOAD2HI, */          ":%s 263 %s %s :Server load is temporarily too heavy. Please wait a while and try again.",
+/* 264 */       NULL,
+/* 265 RPL_LOCALUSERS, */       ":%s 265 %s :Current local  users: %d  Max: %d",
+/* 266 RPL_GLOBALUSERS, */      ":%s 266 %s :Current global users: %d  Max: %d",
+/* 267 RPL_IDENTUSERS, */       ":%s 267 %s :Current identified users: %d  Max: %d",
+/* 268 RPL_OSIDUSERS, */        ":%s 268 %s :Current Services Administrators: %d  Max: %d",
+/* 269 RPL_GLIDUSERS, */        ":%s 269 %s :Current Gliner Administrators: %d  Max: %d",
+/* 270 */       NULL,
+/* 271 */       NULL,
+/* 272 */       NULL,
+/* 273 */       NULL,
+/* 274 */       NULL,
+/* 275 */       NULL,
+/* 276 */       NULL,
+/* 277 */       NULL,
+/* 278 */       NULL,
+/* 279 */       NULL,
+/* 280 */       NULL,
+/* 281 RPL_ACCEPTLIST, */       ":%s 281 %s %s :",
+/* 282 RPL_ENDOFACCEPT, */       ":%s 282 %s :End of /ACCEPT list.",
+/* 283 */       NULL,
+/* 284 */       NULL,
+/* 285 */       NULL,
+/* 286 */       NULL,
+/* 287 */       NULL,
+/* 288 */       NULL,
+/* 289 */       NULL,
+/* 290 */       NULL,
+/* 291 */       NULL,
+/* 292 */       NULL,
+/* 293 */       NULL,
+/* 294 RPL_INGMODE, */       ":%s 294 %s %s :is in +g mode (caller id)",
+/* 295 */       NULL,
+/* 296 */       NULL,
+/* 297 */       NULL,
+/* 298 */       NULL,
+/* 299 */       NULL,
+/* 300 RPL_NONE, */      NULL,
+/* 301 RPL_AWAY, */      ":%s 301 %s %s :%s",
+/* 302 RPL_USERHOST, */  ":%s 302 %s :%s",
+/* 303 RPL_ISON, */     ":%s 303 %s :",
+/* 304 RPL_TEXT, */      NULL,
+/* 305 RPL_UNAWAY, */   ":%s 305 %s :You are no longer marked as being away",
+/* 306 RPL_NOWAWAY, */  ":%s 306 %s :You have been marked as being away",
+/* 307 */       NULL,
+/* 308 */       NULL,
+/* 309 */       NULL,
+/* 310 */       NULL,
+/* 311 RPL_WHOISUSER, */        ":%s 311 %s %s %s %s * :%s",
+/* 312 RPL_WHOISSERVER, */      ":%s 312 %s %s %s :%s",
+/* 313 RPL_WHOISOPERATOR, */    ":%s 313 %s %s :%s",
+/* 314 RPL_WHOWASUSER, */       ":%s 314 %s %s %s %s * :%s",
+/* 315 RPL_ENDOFWHO, */         ":%s 315 %s %s :End of /WHO list.",
+/* 316 RPL_WHOISCHANOP, */      NULL,
+/* 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 :",
+/* 320 */       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 RPL_WHOISSVSHINT, */     ":%s 325 %s %s :Has identified for: This nick",
+/* 326 RPL_OS_ID, */            ":%s 326 %s %s :is a Services Administrator",
+/* 327 RPL_NK_ID, */            ":%s 327 %s %s :is a Gliner Administrator",
+/* 328 */       NULL,
+/* 329 RPL_CREATIONTIME, */     ":%s 329 %s %s %lu", 
+/* 330 RPL_SILENCE */           ":%s 325 %s %s :Accepts messages from registered nicks only",
+/* 331 RPL_NOTOPIC, */          ":%s 331 %s %s :No topic is set.",
+/* 332 RPL_TOPIC, */            ":%s 332 %s %s :%s",
+/* 333 RPL_TOPICWHOTIME, */     ":%s 333 %s %s %s %lu",
+/* 334 */       NULL,
+/* 335 */       NULL,
+/* 336 */       NULL,
+/* 337 */       NULL,
+/* 338 RPL_WHOISACTUALLY, */	":%s 338 %s %s %s :actually using host",
+/* 339 */       NULL,
+/* 340 */       NULL,
+/* 341 RPL_INVITING, */         ":%s 341 %s %s %s",
+/* 342 RPL_SUMMONING, */ NULL,
+/* 343 */       NULL,
+/* 344 */       NULL,
+/* 345 */       NULL,
+/* 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",
+/* 349 RPL_ENDOFEXCEPTLIST */   ":%s 349 %s %s :End of Channel Exception List",
+/* 350 */       NULL,
+/* 351 RPL_VERSION, */          ":%s 351 %s %s(%s).%s %s :%s%s",
+/* 352 RPL_WHOREPLY, */         ":%s 352 %s %s %s %s %s %s %s :%d %s",
+/* 353 RPL_NAMREPLY, */         ":%s 353 %s %s %s :",
+/* 354 */       NULL,
+/* 355 */       NULL,
+/* 356 */       NULL,
+/* 357 */       NULL,
+/* 358 */       NULL,
+/* 359 */       NULL,
+/* 360 */       NULL,
+/* 361 RPL_KILLDONE, */ NULL,
+/* 362 RPL_CLOSING, */          ":%s 362 %s %s :Closed. Status = %d",
+/* 363 RPL_CLOSEEND, */         ":%s 363 %s %d :Connections Closed",
+/* 364 RPL_LINKS, */            ":%s 364 %s %s %s :%d %s",
+/* 365 RPL_ENDOFLINKS, */       ":%s 365 %s %s :End of /LINKS list.",
+/* 366 RPL_ENDOFNAMES, */       ":%s 366 %s %s :End of /NAMES list.",
+/* 367 RPL_BANLIST, */          ":%s 367 %s %s %s %s %lu",
+/* 368 RPL_ENDOFBANLIST, */     ":%s 368 %s %s :End of Channel Ban List",
+/* 369 RPL_ENDOFWHOWAS, */      ":%s 369 %s %s :End of WHOWAS",
+/* 370 */       NULL,
+/* 371 RPL_INFO, */             ":%s 371 %s :%s",
+/* 372 RPL_MOTD, */             ":%s 372 %s :- %s",
+/* 373 RPL_INFOSTART, */        ":%s 373 %s :Server INFO",
+/* 374 RPL_ENDOFINFO, */        ":%s 374 %s :End of /INFO list.",
+/* 375 RPL_MOTDSTART, */        ":%s 375 %s :- %s Message of the Day - ",
+/* 376 RPL_ENDOFMOTD, */        ":%s 376 %s :End of /MOTD command.",
+/* 377 */       NULL,
+/* 378 */       NULL,
+/* 379 */       NULL,
+/* 380 */       NULL,
+/* 381 RPL_YOUREOPER, */        ":%s 381 %s :You have entered... the Vanity Zone!.",
+/* 382 RPL_REHASHING, */        ":%s 382 %s %s :Rehashing",
+/* 383 */       NULL,
+/* 384 RPL_MYPORTIS, */         ":%s 384 %s %d :Port to local server is",
+/* 385 RPL_NOTOPERANYMORE, */   NULL,
+/* 386 */                       ":%s 386 %s :%s",
+/* 387 */       NULL,
+/* 388 */       NULL,
+/* 389 */       NULL,
+/* 390 */       NULL,
+/* 391 RPL_TIME, */             ":%s 391 %s %s :%s",
+/* 392 */       NULL,
+/* 393 */       NULL,
+/* 394 */       NULL,
+/* 395 */       NULL,
+/* 396 */       NULL,
+/* 397 */       NULL,
+/* 398 */       NULL,
+/* 399 */       NULL,
+/* 400 */       NULL,
+/* 401 ERR_NOSUCHNICK, */       ":%s 401 %s %s :No such nick/channel",
+/* 402 ERR_NOSUCHSERVER, */     ":%s 402 %s %s :No such server",
+/* 403 ERR_NOSUCHCHANNEL, */    ":%s 403 %s %s :No such channel",
+/* 404 ERR_CANNOTSENDTOCHAN, */ ":%s 404 %s %s :Cannot send to channel",
+/* 405 ERR_TOOMANYCHANNELS, */  ":%s 405 %s %s :You have joined too many channels",
+/* 406 ERR_WASNOSUCHNICK, */    ":%s 406 %s %s :There was no such nickname",
+/* 407 ERR_TOOMANYTARGETS, */   ":%s 407 %s %s :Too many recipients.",
+/* 408 */       NULL,
+/* 409 ERR_NOORIGIN, */         ":%s 409 %s :No origin specified",
+/* 410 */       NULL,
+/* 411 ERR_NORECIPIENT, */      ":%s 411 %s :No recipient given (%s)",
+/* 412 ERR_NOTEXTTOSEND, */     ":%s 412 %s :No text to send",
+/* 413 ERR_NOTOPLEVEL, */       ":%s 413 %s %s :No toplevel domain specified",
+/* 414 ERR_WILDTOPLEVEL, */     ":%s 414 %s %s :Wildcard in toplevel Domain",
+/* 415 ERR_SERV_NICK, */        ":%s 415 %s %s :- You Can not Kick/Deop Services nick!",
+/* 416 ERR_TOOMANYMATCHES */    ":%s 416 %s %s :output too large, truncated",
+/* 417 */       NULL,
+/* 418 */       NULL,
+/* 419 */       NULL,
+/* 420 */       NULL,
+/* 421 ERR_UNKNOWNCOMMAND, */   ":%s 421 %s %s :Unknown command",
+/* 422 ERR_NOMOTD, */           ":%s 422 %s :MOTD File is missing",
+/* 423 ERR_NOADMININFO, */
+                ":%s 423 %s %s :No administrative info available",
+/* 424 ERR_FILEERROR, */        ":%s 424 %s :File error doing %s on %s",
+/* 425 */       NULL,
+/* 426 */       NULL,
+/* 427 */       NULL,
+/* 428 */       NULL,
+/* 429 */       NULL,
+/* 430 */       NULL,
+/* 431 ERR_NONICKNAMEGIVEN, */  ":%s 431 %s :No nickname given",
+/* 432 ERR_ERRONEUSNICKNAME, */ ":%s 432 %s %s :Erroneous Nickname",
+/* 433 ERR_NICKNAMEINUSE, */    ":%s 433 %s %s :Nickname is already in use.",
+/* 434 */       NULL,
+/* 435 */       NULL,
+/* 436 ERR_NICKCOLLISION, */    ":%s 436 %s %s :Nickname collision KILL",
+/* 437 ERR_ERR_UNAVAILRESOURCE, */ ":%s 437 %s %s :Nick/channel is temporarily unavailable",
+/* 438 ERR_NICKTOOFAST */       ":%s 438 %s %s %s :Nick change too fast. Please wait %d seconds.",
+/* 439 */       NULL,
+/* 440 */       NULL,
+/* 441 ERR_USERNOTINCHANNEL, */ ":%s 441 %s %s %s :They aren't on that channel",
+/* 442 ERR_NOTONCHANNEL, */     ":%s 442 %s %s :You're not on that channel",
+/* 443 ERR_USERONCHANNEL, */    ":%s 443 %s %s %s :is already on channel",
+/* 444 ERR_NOLOGIN, */          ":%s 444 %s %s :User not logged in",
+/* 445 ERR_SUMMONDISABLED, */   ":%s 445 %s :SUMMON has been removed",
+/* 446 ERR_USERSDISABLED, */    ":%s 446 %s :USERS has been removed",
+/* 447 */       NULL,
+/* 448 */       NULL,
+/* 449 */       NULL,
+/* 450 */       NULL,
+/* 451 ERR_NOTREGISTERED, */    ":%s 451 %s :You have not registered",
+/* 452 ERR_NOREPEATING, */      ":%s 452 %s %s :No repeating allowed (+z)",
+/* 453 */       NULL,
+/* 454 */       NULL,
+/* 455 */       NULL,
+/* 456 ERR_ACCEPTFULL */        ":%s 456 %s :Accept list is full",
+/* 457 ERR_ACCEPTEXIST */       ":%s 457 %s %s :is already on your accept list",
+/* 458 ERR_ACCEPTNOT */         ":%s 458 %s %s :is not on your accept list",
+/* 459 */       NULL,
+/* 460 */       NULL,
+/* 461 ERR_NEEDMOREPARAMS, */   ":%s 461 %s %s :Not enough parameters",
+/* 462 ERR_ALREADYREGISTRED, */ ":%s 462 %s :You may not reregister",
+/* 463 ERR_NOPERMFORHOST, */    ":%s 463 %s :Your host isn't among the privileged",
+/* 464 ERR_PASSWDMISMATCH, */   ":%s 464 %s :Password Incorrect",
+/* 465 ERR_YOUREBANNEDCREEP, */ ":%s 465 %s :You are banned from this server- %s",
+/* 466 ERR_YOUWILLBEBANNED, */  NULL,
+/* 467 ERR_KEYSET, */           ":%s 467 %s %s :Channel key already set",
+/* 468 */       NULL,
+/* 469 */			":%s 469 %s %s :Cannot join channel (+A). IRC Server Admins only!!!",
+/* 470 */       		":%s 470 %s %s :Cannot join channel (+O). IRC Operators only!!!",
+/* 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)",
+/* 474 ERR_BANNEDFROMCHAN, */   ":%s 474 %s %s :Cannot join channel (+b)",
+/* 475 ERR_BADCHANNELKEY, */    ":%s 475 %s %s :Cannot join channel (+k)",
+/* 476 ERR_BADCHANMASK, */      ":%s 476 %s %s :Bad Channel Mask",
+/* 477 ERR_MODELESS, */         ":%s 477 %s %s :Channel does not support modes",
+/* 478 ERR_BANLISTFULL, */      ":%s 478 %s %s %s :Channel ban list is full",
+/* 479 ERR_BADCHANNAME */       ":%s 479 %s %s :Illegal channel name",
+/* 480 */       NULL,
+/* 481 ERR_NOPRIVILEGES, */
+                ":%s 481 %s :Permission Denied - You're not an IRC operator",
+/* 482 ERR_CHANOPRIVSNEEDED, */ ":%s 482 %s %s :You're not channel operator",
+/* 483 ERR_CANTKILLSERVER, */   ":%s 483 %s :You can't kill a server!",
+/* 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 */       NULL,
+/* 487 */       NULL,
+/* 488 */       NULL,
+/* 489 ERR_NOCOLOR, */ ":%s 489 %s %s :Colors are forbidden on this channel!",
+/* 490 ERR_JOINF, */   ":%s 490 %s %s :Can't join the channel, because your nick is either not regged or too young!",
+/* 491 ERR_NOOPERHOST, */       ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone",
+/* 492 ERR_NOCTCP, */           ":%s 492 %s %s :CTCP messages from non +v/+o/+h are forbidden!",
+/* 493 ERR_NOTALK, */           ":%s 493 %s %s :You can't talk on this channel, while your nickname is not regged ot regged too recently!",
+/* 494 ERR_NOSPAM, */           ":%s 494 %s %s :You can't send this to the channel, while it contains a spam phrase, if you think it's not contact the admin (/ADMIN)",
+/* 495 */       NULL,
+/* 496 */       NULL,
+/* 497 */       NULL,
+/* 498 */       NULL,
+/* 499 */       NULL,
+/* 500 */       NULL,
+/* 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 */	NULL,
+/* 506 */       NULL,
+/* 507 */       NULL,
+/* 508 */	NULL,
+/* 509 */	NULL,
+/* 510 */	NULL,
+/* 511 */	NULL,
+/* 512 */	NULL,
+/* 513 ERR_WRONGPONG */		":%s 513 %s :To connect type /QUOTE PONG %08lX",
+/* 514 */	NULL,
+/* 515 */	NULL,
+/* 516 */	NULL,
+/* 517 */	NULL,
+/* 518 */	NULL,
+/* 519 */	NULL,
+/* 520 */	NULL,
+/* 521 */	NULL,
+/* 522 */	NULL,
+/* 523 */	NULL,
+/* 524 ERR_HELPNOTFOUND, */	":%s 524 %s %s :Help not found",
+/* 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 */	NULL,
+/* 601 */	NULL,
+/* 602 */	NULL,
+/* 603 */	NULL,
+/* 604 */	NULL,
+/* 605 */	NULL,
+/* 606 */	NULL,
+/* 607 */	NULL,
+/* 608 */	NULL,
+/* 609 */	NULL,
+/* 610 */	NULL,
+/* 611 */	NULL,
+/* 612 */	NULL,
+/* 613 */	NULL,
+/* 614 */	NULL,
+/* 615 */	NULL,
+/* 616 */	NULL,
+/* 617 */	NULL,
+/* 618 */	NULL,
+/* 619 */	NULL,
+/* 620 */	NULL,
+/* 621 */	NULL,
+/* 622 */	NULL,
+/* 623 */	NULL,
+/* 624 */	NULL,
+/* 625 */	NULL,
+/* 626 */	NULL,
+/* 627 */	NULL,
+/* 628 */	NULL,
+/* 629 */	NULL,
+/* 630 */	NULL,
+/* 631 */	NULL,
+/* 632 */	NULL,
+/* 633 */	NULL,
+/* 634 */	NULL,
+/* 635 */	NULL,
+/* 636 */	NULL,
+/* 637 */	NULL,
+/* 638 */	NULL,
+/* 639 */	NULL,
+/* 640 */	NULL,
+/* 641 */	NULL,
+/* 642 */	NULL,
+/* 643 */	NULL,
+/* 644 */	NULL,
+/* 645 */	NULL,
+/* 646 */	NULL,
+/* 647 */	NULL,
+/* 648 */	NULL,
+/* 649 */	NULL,
+/* 650 */	NULL,
+/* 651 */	NULL,
+/* 652 */	NULL,
+/* 653 */	NULL,
+/* 654 */	NULL,
+/* 655 */	NULL,
+/* 656 */	NULL,
+/* 657 */	NULL,
+/* 658 */	NULL,
+/* 659 */	NULL,
+/* 660 */	NULL,
+/* 661 */	NULL,
+/* 662 */	NULL,
+/* 663 */	NULL,
+/* 664 */	NULL,
+/* 665 */	NULL,
+/* 666 */	NULL,
+/* 667 */	NULL,
+/* 668 */	NULL,
+/* 669 */	NULL,
+/* 670 */	NULL,
+/* 671 */	NULL,
+/* 672 */	NULL,
+/* 673 */	NULL,
+/* 674 */	NULL,
+/* 675 */	NULL,
+/* 676 */	NULL,
+/* 677 */	NULL,
+/* 678 */	NULL,
+/* 679 */	NULL,
+/* 680 */	NULL,
+/* 681 */	NULL,
+/* 682 */	NULL,
+/* 683 */	NULL,
+/* 684 */	NULL,
+/* 685 */	NULL,
+/* 686 */	NULL,
+/* 687 */	NULL,
+/* 688 */	NULL,
+/* 689 */	NULL,
+/* 690 */	NULL,
+/* 691 */	NULL,
+/* 692 */	NULL,
+/* 693 */	NULL,
+/* 694 */	NULL,
+/* 695 */	NULL,
+/* 696 */	NULL,
+/* 697 */	NULL,
+/* 698 */	NULL,
+/* 699 */	NULL,
+/* 700 */	NULL,
+/* 701 */	NULL,
+/* 702 RPL_MODLIST, */		":%s 702 %s %s 0x%x %s %s",
+/* 703 RPL_ENDOFMODLIST, */	":%s 703 %s :End of /MODLIST.",
+/* 704 RPL_HELPSTART, */	":%s 704 %s %s :%s",
+/* 705 RPL_HELPTXT, */		":%s 705 %s %s :%s",
+/* 706 RPL_ENDOFHELP, */	":%s 706 %s %s :End of /HELP.",
+/* 707 */	NULL,
+/* 708 */	NULL,
+/* 709 RPL_ETRACE */		":%s 709 %s %s %s %s %s %s %s :%s",
+/* 710 RPL_KNOCK */		":%s 710 %s %s %s!%s@%s :has asked for an invite.",
+/* 711 RPL_KNOCKDLVR */		":%s 711 %s %s :Your KNOCK has been delivered.",
+/* 712 ERR_TOOMANYKNOCK */	":%s 712 %s %s :Too many KNOCKs (%s).",
+/* 713 ERR_CHANOPEN */		":%s 713 %s %s :Channel is open.",
+/* 714 ERR_KNOCKONCHAN */	":%s 714 %s %s :You are already on that channel.",
+/* 715 ERR_KNOCKDISABLED */	":%s 715 %s :KNOCKs are disabled.",
+/* 716 RPL_TARGUMODEG */	":%s 716 %s %s :is in +g mode (server-side ignore.)",
+/* 717 RPL_TARGNOTIFY */	":%s 717 %s %s :has been informed that you messaged them.",
+/* 718 RPL_UMODEGMSG */		":%s 718 %s %s %s@%s :is messaging you, and you have umode +g.",
+/* 719 */	NULL,
+/* 720 RPL_OMOTDSTART */	":%s 720 %s :Start of OPER MOTD",
+/* 721 RPL_OMOTD */		":%s 721 %s :- %s",
+/* 722 RPL_ENDOFOMOTD */	":%s 722 %s :End of OPER MOTD",
+/* 723 */	NULL,
+/* 724 */	NULL,
+/* 725 */	NULL,
+/* 726 */	NULL,
+/* 727 */	NULL,
+/* 728 */	NULL,
+/* 729 */	NULL,
+/* 730 */	NULL,
+/* 731 */	NULL,
+/* 732 */	NULL,
+/* 733 */	NULL,
+/* 734 */	NULL,
+/* 735 */	NULL,
+/* 736 */	NULL,
+/* 737 */	NULL,
+/* 738 */	NULL,
+/* 739 */	NULL,
+/* 740 */	NULL,
+/* 741 */	NULL,
+/* 742 */	NULL,
+/* 743 */	NULL,
+/* 744 */	NULL,
+/* 745 */	NULL,
+/* 746 */	NULL,
+/* 747 */	NULL,
+/* 748 */	NULL,
+/* 749 */	NULL,
+/* 750 */	NULL,
+/* 751 */	NULL,
+/* 752 */	NULL,
+/* 753 */	NULL,
+/* 754 */	NULL,
+/* 755 */	NULL,
+/* 756 */	NULL,
+/* 757 */	NULL,
+/* 758 */	NULL,
+/* 759 */	NULL,
+/* 760 */	NULL,
+/* 761 */	NULL,
+/* 762 */	NULL,
+/* 763 */	NULL,
+/* 764 */	NULL,
+/* 765 */	NULL,
+/* 766 */	NULL,
+/* 767 */	NULL,
+/* 768 */	NULL,
+/* 769 */	NULL,
+/* 770 */	NULL,
+/* 771 */	NULL,
+/* 772 */	NULL,
+/* 773 */	NULL,
+/* 774 */	NULL,
+/* 775 */	NULL,
+/* 776 */	NULL,
+/* 777 */	NULL,
+/* 778 */	NULL,
+/* 779 */	NULL,
+/* 780 */	NULL,
+/* 781 */	NULL,
+/* 782 */	NULL,
+/* 783 */	NULL,
+/* 784 */	NULL,
+/* 785 */	NULL,
+/* 786 */	NULL,
+/* 787 */	NULL,
+/* 788 */	NULL,
+/* 789 */	NULL,
+/* 790 */	NULL,
+/* 791 */	NULL,
+/* 792 */	NULL,
+/* 793 */	NULL,
+/* 794 */	NULL,
+/* 795 */	NULL,
+/* 796 */	NULL,
+/* 797 */	NULL,
+/* 798 */	NULL,
+/* 799 */	NULL,
+/* 800 */	NULL,
+/* 801 */	NULL,
+/* 802 */	NULL,
+/* 803 */	NULL,
+/* 804 */	NULL,
+/* 805 */	NULL,
+/* 806 */	NULL,
+/* 807 */	NULL,
+/* 808 */	NULL,
+/* 809 */	NULL,
+/* 810 */	NULL,
+/* 811 */	NULL,
+/* 812 */	NULL,
+/* 813 */	NULL,
+/* 814 */	NULL,
+/* 815 */	NULL,
+/* 816 */	NULL,
+/* 817 */	NULL,
+/* 818 */	NULL,
+/* 819 */	NULL,
+/* 820 */	NULL,
+/* 821 */	NULL,
+/* 822 */	NULL,
+/* 823 */	NULL,
+/* 824 */	NULL,
+/* 825 */	NULL,
+/* 826 */	NULL,
+/* 827 */	NULL,
+/* 828 */	NULL,
+/* 829 */	NULL,
+/* 830 */	NULL,
+/* 831 */	NULL,
+/* 832 */	NULL,
+/* 833 */	NULL,
+/* 834 */	NULL,
+/* 835 */	NULL,
+/* 836 */	NULL,
+/* 837 */	NULL,
+/* 838 */	NULL,
+/* 839 */	NULL,
+/* 840 */	NULL,
+/* 841 */	NULL,
+/* 842 */	NULL,
+/* 843 */	NULL,
+/* 844 */	NULL,
+/* 845 */	NULL,
+/* 846 */	NULL,
+/* 847 */	NULL,
+/* 848 */	NULL,
+/* 849 */	NULL,
+/* 850 */	NULL,
+/* 851 */	NULL,
+/* 852 */	NULL,
+/* 853 */	NULL,
+/* 854 */	NULL,
+/* 855 */	NULL,
+/* 856 */	NULL,
+/* 857 */	NULL,
+/* 858 */	NULL,
+/* 859 */	NULL,
+/* 860 */	NULL,
+/* 861 */	NULL,
+/* 862 */	NULL,
+/* 863 */	NULL,
+/* 864 */	NULL,
+/* 865 */	NULL,
+/* 866 */	NULL,
+/* 867 */	NULL,
+/* 868 */	NULL,
+/* 869 */	NULL,
+/* 870 */	NULL,
+/* 871 */	NULL,
+/* 872 */	NULL,
+/* 873 */	NULL,
+/* 874 */	NULL,
+/* 875 */	NULL,
+/* 876 */	NULL,
+/* 877 */	NULL,
+/* 878 */	NULL,
+/* 879 */	NULL,
+/* 880 */	NULL,
+/* 881 */	NULL,
+/* 882 */	NULL,
+/* 883 */	NULL,
+/* 884 */	NULL,
+/* 885 */	NULL,
+/* 886 */	NULL,
+/* 887 */	NULL,
+/* 888 */	NULL,
+/* 889 */	NULL,
+/* 890 */	NULL,
+/* 891 */	NULL,
+/* 892 */	NULL,
+/* 893 */	NULL,
+/* 894 */	NULL,
+/* 895 */	NULL,
+/* 896 */	NULL,
+/* 897 */	NULL,
+/* 898 */	NULL,
+/* 899 */	NULL,
+/* 900 */	NULL,
+/* 901 */	NULL,
+/* 902 */	NULL,
+/* 903 */	NULL,
+/* 904 */	NULL,
+/* 905 */	NULL,
+/* 906 */	NULL,
+/* 907 */	NULL,
+/* 908 */	NULL,
+/* 909 */	NULL,
+/* 910 */	NULL,
+/* 911 */	NULL,
+/* 912 */	NULL,
+/* 913 */	NULL,
+/* 914 */	NULL,
+/* 915 */	NULL,
+/* 916 */	NULL,
+/* 917 */	NULL,
+/* 918 */	NULL,
+/* 919 */	NULL,
+/* 920 */	NULL,
+/* 921 */	NULL,
+/* 922 */	NULL,
+/* 923 */	NULL,
+/* 924 */	NULL,
+/* 925 */	NULL,
+/* 926 */	NULL,
+/* 927 */	NULL,
+/* 928 */	NULL,
+/* 929 */	NULL,
+/* 930 */	NULL,
+/* 931 */	NULL,
+/* 932 */	NULL,
+/* 933 */	NULL,
+/* 934 */	NULL,
+/* 935 */	NULL,
+/* 936 */	NULL,
+/* 937 */	NULL,
+/* 938 */	NULL,
+/* 939 */	NULL,
+/* 940 */	NULL,
+/* 941 */	NULL,
+/* 942 */	NULL,
+/* 943 */	NULL,
+/* 944 */	NULL,
+/* 945 */	NULL,
+/* 946 */	NULL,
+/* 947 */	NULL,
+/* 948 */	NULL,
+/* 949 */	NULL,
+/* 950 */	NULL,
+/* 951 */	NULL,
+/* 952 */	NULL,
+/* 953 */	NULL,
+/* 954 */	NULL,
+/* 955 */	NULL,
+/* 956 */	NULL,
+/* 957 */	NULL,
+/* 958 */	NULL,
+/* 959 */	NULL,
+/* 960 */	NULL,
+/* 961 */	NULL,
+/* 962 */	NULL,
+/* 963 */	NULL,
+/* 964 */	NULL,
+/* 965 */	NULL,
+/* 966 */	NULL,
+/* 967 */	NULL,
+/* 968 */	NULL,
+/* 969 */	NULL,
+/* 970 */	NULL,
+/* 971 */	NULL,
+/* 972 */	NULL,
+/* 973 */	NULL,
+/* 974 */	NULL,
+/* 975 */	NULL,
+/* 976 */	NULL,
+/* 977 */	NULL,
+/* 978 */	NULL,
+/* 979 */	NULL,
+/* 980 */	NULL,
+/* 981 */	NULL,
+/* 982 */	NULL,
+/* 983 */	NULL,
+/* 984 */	NULL,
+/* 985 */	NULL,
+/* 986 */	NULL,
+/* 987 */	NULL,
+/* 988 */	NULL,
+/* 989 */	NULL,
+/* 990 */	NULL,
+/* 991 */	NULL,
+/* 992 */	NULL,
+/* 993 */	NULL,
+/* 994 */	NULL,
+/* 995 */	NULL,
+/* 996 */	NULL,
+/* 997 */	NULL,
+/* 998 */	NULL,
+/* 999 LAST ERR_LAST_ERR_MSG,*/	":%s 999 %s :Last Error Message"
+};
diff -uNrd ircd-ratbox-1.3-1/include/modules.h BgChat-Ircd/include/modules.h
--- ircd-ratbox-1.3-1/include/modules.h	Tue Jul  8 10:19:07 2003
+++ BgChat-Ircd/include/modules.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  modules.h: A header for the modules functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: modules.h,v 7.54.2.3 2003/07/08 14:19:07 leeh Exp $
+ *  $Id: modules.h,v 7.54.2.3 2004/01/02 14:19:07 MaskBg Exp $
  */
 
 #ifndef INCLUDED_modules_h
@@ -137,6 +136,10 @@
 extern struct Message squit_msgtab;
 extern struct Message stats_msgtab;
 extern struct Message svinfo_msgtab;
+extern struct Message svshint_msgtab;
+extern struct Message svsjoin_msgtab;
+extern struct Message svsnick_msgtab;
+extern struct Message services_msgtab;
 extern struct Message testline_msgtab;
 extern struct Message time_msgtab;
 extern struct Message topic_msgtab;
diff -uNrd ircd-ratbox-1.3-1/include/numeric.h BgChat-Ircd/include/numeric.h
--- ircd-ratbox-1.3-1/include/numeric.h	Sun Oct 12 08:50:43 2003
+++ BgChat-Ircd/include/numeric.h	Fri Apr  9 05:22:58 2004
@@ -117,9 +117,16 @@
 #define RPL_LOCALUSERS       265
 #define RPL_GLOBALUSERS      266
 
+
+#define RPL_IDENTUSERS       267        /* for showing id users for ns */
+#define RPL_OSIDUSERS        268	/* for showin' services admin */
+#define RPL_GLIDUSERS        269	/* Gliner admin */
+
+
 #define RPL_ACCEPTLIST	     281
 #define RPL_ENDOFACCEPT      282
 
+#define RPL_INGMODE          294
 /* numeric_replies */
 
 #define RPL_NONE             300
@@ -151,8 +158,13 @@
 #define RPL_LISTEND          323
 #define RPL_CHANNELMODEIS    324
 
-#define RPL_CREATIONTIME     329
 
+#define RPL_WHOISSVSHINT     325           /* identified with services - tenks for maskbg */
+#define RPL_OS_ID            326        /* identified as a services admin - tenks for maskbg */
+#define RPL_NK_ID            327        /* identified as a Gliner admin - haker4o  */
+#define RPL_SILENCE          328
+
+#define RPL_CREATIONTIME     329
 #define RPL_NOTOPIC          331
 #define RPL_TOPIC            332
 #define RPL_TOPICWHOTIME     333
@@ -220,6 +232,10 @@
 #define ERR_NOTOPLEVEL       413
 #define ERR_WILDTOPLEVEL     414
 
+
+#define ERR_SERV_NICK        415        /* error deoping service nick  */
+
+
 #define ERR_TOOMANYMATCHES   416
 
 #define ERR_UNKNOWNCOMMAND   421
@@ -243,6 +259,9 @@
 
 #define ERR_NOTREGISTERED    451
 
+
+#define ERR_NOREPEATING	     452
+
 #define ERR_ACCEPTFULL       456
 #define ERR_ACCEPTEXIST      457
 #define ERR_ACCEPTNOT        458
@@ -255,6 +274,11 @@
 #define ERR_YOUWILLBEBANNED  466
 #define ERR_KEYSET           467
 
+
+#define ERR_ADMINCHAN        469  // +A chan mode err
+#define ERR_OPERCHAN         470  // +O chan mode err
+
+
 #define ERR_CHANNELISFULL    471
 #define ERR_UNKNOWNMODE      472
 #define ERR_INVITEONLYCHAN   473
@@ -271,7 +295,18 @@
 #define ERR_RESTRICTED       484
 #define ERR_BANNEDNICK       485
 
+
+#define ERR_NOCOLOR          489
+#define ERR_JOINF            490
+
+
 #define ERR_NOOPERHOST       491
+
+
+#define ERR_NOCTCP           492
+#define ERR_NOTALK           493
+#define ERR_NOSPAM           494
+
 
 #define ERR_UMODEUNKNOWNFLAG 501
 #define ERR_USERSDONTMATCH   502
diff -uNrd ircd-ratbox-1.3-1/include/patchlevel.h BgChat-Ircd/include/patchlevel.h
--- ircd-ratbox-1.3-1/include/patchlevel.h	Fri Jan  9 15:05:13 2004
+++ BgChat-Ircd/include/patchlevel.h	Fri Apr  9 05:23:25 2004
@@ -1,29 +1,11 @@
 /*
- *  ircd-ratbox: A slightly useful ircd. 
+ *  ircd-hybrid: A slightly useful ircd. 
  *  patchlevel.h: A header defining the patchlevel.
  *
- *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
- *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
- *
- *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
- *  USA
  *
- *  $Id: patchlevel.h,v 7.50.2.15 2004/01/09 20:05:13 androsyn Exp $
+ *  $Id: patchlevel.h,v 7.50.2.15 2004/02/09 20:05:13 haker4o Exp $
  */
-
 #ifndef PATCHLEVEL
-#define PATCHLEVEL   "ircd-ratbox-1.3-1"
+#define PATCHLEVEL   "BgChat-Ircd-1.5"
 #endif
+
diff -uNrd ircd-ratbox-1.3-1/include/s_conf.h BgChat-Ircd/include/s_conf.h
--- ircd-ratbox-1.3-1/include/s_conf.h	Fri Dec 19 12:32:49 2003
+++ BgChat-Ircd/include/s_conf.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_conf.h: A header for the configuration functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_conf.h,v 7.241.2.12 2003/12/19 17:32:49 androsyn Exp $
+ *  $Id: s_conf.h,v 7.241.2.12 2004/02/09 17:32:49 MaskBg Exp $
  */
 
 #ifndef INCLUDED_s_conf_h
@@ -443,6 +442,11 @@
 extern char *get_oper_name(struct Client *client_p);
 
 extern int yylex(void);
+
+
+extern void add_adv_text(void *);
+extern int IsAdvQuit(char *);
+
 
 extern unsigned long cidr_to_bitmask[];
 
diff -uNrd ircd-ratbox-1.3-1/include/s_misc.h BgChat-Ircd/include/s_misc.h
--- ircd-ratbox-1.3-1/include/s_misc.h	Sat Jun 28 05:22:56 2003
+++ BgChat-Ircd/include/s_misc.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_misc.h: A header for the miscellaneous functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_misc.h,v 7.9.2.1 2003/06/28 09:22:56 leeh Exp $
+ *  $Id: s_misc.h,v 7.9.2.1 2004/02/10 09:22:56 MaskBg Exp $
  */
 
 #ifndef INCLUDED_s_misc_h
@@ -41,6 +40,12 @@
                   ((x > _1MEG) ? "Megabytes" : "Kilobytes")))
 #define _GMKv(x)  ( (x > _1TER) ? (float)(x/_1TER) : ((x > _1GIG) ? \
                (float)(x/_1GIG) : ((x > _1MEG) ? (float)(x/_1MEG) : (float)x)))
+
+
+/* for services' nicks  */
+extern long     s_check( char * szName );
+
+extern char *strip_color(const char *, int);
 
 
 #endif
diff -uNrd ircd-ratbox-1.3-1/include/s_serv.h BgChat-Ircd/include/s_serv.h
--- ircd-ratbox-1.3-1/include/s_serv.h	Thu Nov  6 19:00:37 2003
+++ BgChat-Ircd/include/s_serv.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_serv.h: A header for the server functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_serv.h,v 7.80.2.3 2003/11/07 00:00:37 leeh Exp $
+ *  $Id: s_serv.h,v 7.80.2.3 2004/02/07 00:00:37 HaKer4o Exp $
  */
 
 #ifndef INCLUDED_serv_h
@@ -251,6 +250,15 @@
 
 extern int MaxClientCount;	/* GLOBAL - highest number of clients */
 extern int MaxConnectionCount;	/* GLOBAL - highest number of connections */
+
+
+extern int CurrentIdentUsers;  /* Currently identified users to services */
+extern int MaxIdentUsers;  /* Max identified users to services */
+extern int CurrentOSidUsers; /* identified S admins  */
+extern int MaxOSidUsers;     /* maximum value */
+extern int CurrentGlinerUsers;     /* Gliner identified users */
+extern int MaxGlinerUsers;     /* Gliner users maximum value */
+
 
 extern int refresh_user_links;
 
diff -uNrd ircd-ratbox-1.3-1/include/serno.h BgChat-Ircd/include/serno.h
--- ircd-ratbox-1.3-1/include/serno.h	Fri Jan  9 15:05:14 2004
+++ BgChat-Ircd/include/serno.h	Mon Mar 29 07:17:54 2004
@@ -1 +1,2 @@
-#define SERIALNUM "20040109_1"
+#define SERIALNUM "20040121_1"
+
diff -uNrd ircd-ratbox-1.3-1/include/supported.h BgChat-Ircd/include/supported.h
--- ircd-ratbox-1.3-1/include/supported.h	Mon Aug  4 15:35:23 2003
+++ BgChat-Ircd/include/supported.h	Mon Mar 29 07:17:54 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  supported.h: Header for 005 numeric etc...
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: supported.h,v 1.31.2.2 2003/08/04 19:35:23 leeh Exp $
+ *  $Id: supported.h,v 1.31.2.2 2004/02/01 19:35:23 MaskBg Exp $
  */
 
 #ifndef INCLUDED_supported_h
@@ -55,13 +54,15 @@
         ConfigChannel.max_bans, \
         ConfigFileEntry.max_targets,NICKLEN-1,TOPICLEN,TOPICLEN
 
+
 #define FEATURES2 "CHANTYPES=%s" \
                   " PREFIX=(ov)@+" \
-		  " CHANMODES=%s%sb,k,l,imnpst" \
+		  " CHANMODES=%s%sb,k,l,imnpstzqCHMAO" \
 		  " NETWORK=%s" \
 		  " CASEMAPPING=%s" \
 		  " CHARSET=ascii" \
 		  " CALLERID" \
+		  " SILENCE" \
 		  " ETRACE" \
 		  " WALLCHOPS"
 
diff -uNrd ircd-ratbox-1.3-1/modules/Makefile.in BgChat-Ircd/modules/Makefile.in
--- ircd-ratbox-1.3-1/modules/Makefile.in	Thu Nov 27 12:31:47 2003
+++ BgChat-Ircd/modules/Makefile.in	Mon Mar 29 07:17:54 2004
@@ -77,6 +77,18 @@
   m_names.c \
   m_oper.c \
   m_operwall.c \
+  m_svshint.c \
+  m_svsjoin.c \
+  m_to.c \
+  m_whoisme.c \
+  m_svspart.c \
+  m_svsnick.c \
+  m_services.c \
+  m_omode.c \
+  m_opme.c \
+  m_okick.c \
+  m_omode.c \
+  m_map.c \
   m_pass.c \
   m_ping.c \
   m_pong.c \
diff -uNrd ircd-ratbox-1.3-1/modules/core/m_kick.c BgChat-Ircd/modules/core/m_kick.c
--- ircd-ratbox-1.3-1/modules/core/m_kick.c	Sun Nov  2 20:35:00 2003
+++ BgChat-Ircd/modules/core/m_kick.c	Mon Mar 29 07:17:53 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_kick.c: Kicks a user from a channel.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_kick.c,v 1.68.2.2 2003/11/03 01:35:00 leeh Exp $
+ *  $Id: m_kick.c,v 1.68.2.2 2004/02/03 01:35:00 MaskBg Exp $
  */
 
 #include "stdinc.h"
@@ -170,6 +169,26 @@
 	{
 		return;
 	}
+
+
+        if (s_check(user)) {
+             sendto_one(source_p, form_str(ERR_SERV_NICK),
+                 me.name, parv[0], user);
+             return;
+        }
+	
+	if (IsOSId(who) && !IsOSId(source_p)) {
+             sendto_one(source_p, ":%s NOTICE %s : You can't kick Services Administrators [%s/%s]",
+                 me.name, source_p->name,parv[2],parv[1]);
+             return;
+	}
+
+	if (dlinkFind(&who->user->nokick, chptr) != NULL) {
+             sendto_one(source_p, ":%s NOTICE %s : You can't kick Nick add to nokick list [%s/%s]",
+                 me.name, source_p->name,parv[2],parv[1]);
+             return;
+	}
+
 
 	msptr = find_channel_membership(chptr, who);
 	if(msptr != NULL)
diff -uNrd ircd-ratbox-1.3-1/modules/core/m_kill.c BgChat-Ircd/modules/core/m_kill.c
--- ircd-ratbox-1.3-1/modules/core/m_kill.c	Thu Nov  6 19:00:42 2003
+++ BgChat-Ircd/modules/core/m_kill.c	Fri Apr  9 05:13:10 2004
@@ -1,27 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrd: an advanced Internet Relay Chat Daemon(ircd).
  *  m_kill.c: Kills a user.
- *
- *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
- *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
- *
- *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
- *  USA
- *
- *  $Id: m_kill.c,v 1.82.2.7 2003/11/07 00:00:42 leeh Exp $
+ *  Tenks for MaskBg Fix
+ *  BgChat devel [HaKer4o]
+ *  $Id: m_kill.c,v 1.82.2.7 2004/2/01 00:00:42 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/modules/core/m_message.c BgChat-Ircd/modules/core/m_message.c
--- ircd-ratbox-1.3-1/modules/core/m_message.c	Wed Jan  7 20:20:17 2004
+++ BgChat-Ircd/modules/core/m_message.c	Mon Mar 29 07:17:53 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_message.c: Sends a (PRIVMSG|NOTICE) message to a user or channel.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_message.c,v 1.131.2.5 2004/01/08 01:20:17 leeh Exp $
+ *  $Id: m_message.c,v 1.131.2.5 2004/02/07 01:20:17 MaskBg Exp $
  */
 
 #include "stdinc.h"
@@ -431,6 +430,44 @@
 {
 	int result;
 
+	struct Channel *vchan = NULL;
+	char *chname = NULL;
+	struct ResvEntry *ptr;
+
+	chname = chptr->chname;
+
+	vchan = chptr;
+ 
+	if (find_color_ctcp(text, 1) && (vchan->mode.mode & MODE_NOCOLOR) &&
+        !(ptr = (struct ResvEntry *) get_nick_resv(source_p->name)))
+	  {
+	    sendto_one(source_p, form_str(ERR_NOCOLOR), me.name,
+        	   source_p->name, vchan->chname);
+	    return;
+        } else 
+	    if (find_color_ctcp(text, 0) && ircncmp(text, "\001ACTION", 7) && (vchan->mode.mode & MODE_NOCTCP) &&
+ 	    !((ptr = (struct ResvEntry *) get_nick_resv(source_p->name))) &&
+	    !is_chanop(find_channel_membership(vchan, source_p)) && !is_voiced(find_channel_membership(vchan, source_p))) {
+		sendto_one(source_p, form_str(ERR_NOCTCP), me.name,
+            		    source_p->name, vchan->chname);
+		return;
+	    } else 
+		if ((vchan->mode.mode & MODE_NOTALK) /* && ServicesOn */ &&
+		 (!IsNSId(source_p) /* || source_p->ns_reg + ConfigFileEntry.how_old >= time(NULL)*/)  &&
+		 !((ptr = (struct ResvEntry *) get_nick_resv(source_p->name))) &&
+		 !IsOper(source_p)) {
+			sendto_one(source_p, form_str(ERR_NOTALK), me.name,
+	        		    source_p->name, vchan->chname);
+			return;
+		    } else 
+			if (!is_chanop(find_channel_membership(vchan, source_p)) && NoRepeatChannel(vchan) && !IsOper(source_p)) {
+			    if (check_repeat(source_p, vchan, text)) {
+				  sendto_one(source_p, form_str(ERR_NOREPEATING),
+		    				 me.name, source_p->name, vchan->chname);
+    				  return;
+			    }
+			}
+
 	if(MyClient(source_p))
 	{
 		/* idle time shouldnt be reset by notices --fl */
@@ -444,6 +481,10 @@
 		if(result == CAN_SEND_OPV ||
 		   !flood_attack_channel(p_or_n, source_p, chptr, chptr->chname))
 		{
+
+		    if (NoColorChannel(chptr))
+        		text = strip_color(text, 0);
+
 			sendto_channel_butone(client_p, source_p, chptr, command, ":%s", text);
 		}
 	}
@@ -474,12 +515,51 @@
 		  struct Client *source_p, struct Channel *chptr, int flags, const char *text)
 {
 	char c;
+	
+
+	struct Channel *vchan = NULL;
+	char *chname = NULL;
+	int type;
+	struct ResvEntry *ptr;
+
 
 	if(flags & CHFL_VOICE)
 		c = '+';
 	else
 		c = '@';
 
+
+  chname = chptr->chname;
+  vchan = chptr;
+
+  if (find_color_ctcp(text, 1) && (vchan->mode.mode & MODE_NOCOLOR) &&
+      !((ptr = (struct ResvEntry *) get_nick_resv(source_p->name)) /* && !irccmp(ptr->reason, ConfigFileEntry.services_qline)*/))
+  {
+	sendto_one(source_p, form_str(ERR_NOCOLOR), me.name,
+               source_p->name, vchan->chname);
+	return;
+  } else if (find_color_ctcp(text, 0) && ircncmp(text, "\001ACTION", 7) && (vchan->mode.mode & MODE_NOCTCP) &&
+			 !((ptr = (struct ResvEntry *) get_nick_resv(source_p->name)) /*&& !irccmp(ptr->reason, ConfigFileEntry.services_qline)*/) &&
+		     !is_chanop(find_channel_membership(vchan, source_p)) && !is_voiced(find_channel_membership(vchan, source_p))) {
+	sendto_one(source_p, form_str(ERR_NOCTCP), me.name,
+               source_p->name, vchan->chname);
+	return;
+  } else if ((vchan->mode.mode & MODE_NOTALK) &&
+		     !IsNSId(source_p) &&
+		     !(ptr = (struct ResvEntry *) get_nick_resv(source_p->name)) &&
+		     !IsOper(source_p)) {
+    sendto_one(source_p, form_str(ERR_NOTALK), me.name,
+	           source_p->name, vchan->chname);
+	return;
+    } else if (!is_chanop(find_channel_membership(vchan, source_p)) && NoRepeatChannel(vchan) && !IsOper(source_p)) {
+    if (check_repeat(source_p, vchan, text)) {
+	  sendto_one(source_p, form_str(ERR_NOREPEATING),
+		         me.name, source_p->name, vchan->chname);
+      return;
+    }
+  }
+
+
 	if(MyClient(source_p))
 	{
 		/* idletime shouldnt be reset by notice --fl */
@@ -524,12 +604,30 @@
 static void
 msg_client(int p_or_n, const char *command, struct Client *source_p, struct Client *target_p, const char *text)
 {
+
+
+  struct ResvEntry *ptr;
+
+
 	if(MyClient(source_p))
 	{
 		/* reset idle time for message if its not a notice */
 		if((p_or_n != NOTICE) && source_p->user)
 			source_p->user->last = CurrentTime;
 	}
+	
+
+	if (source_p->user && HasSilence(target_p) &&
+	    (target_p != source_p) && !IsOper(target_p) && !IsNSId(source_p))
+	{
+	  sendto_one(source_p, ":%s NOTICE %s :Error: %s is in silence mode and does NOT accept messages from unregistered/unidentified (too recently registered) nicknames",
+				 me.name, source_p->name, target_p->name);
+	  sendto_one(source_p, ":%s NOTICE %s :Error: If you want to send messages to %s you will have to identify or register your nickname",
+				 me.name, source_p->name, target_p->name);
+	  return;
+	} else if (source_p->user && (IsSetTransWin(target_p) || IsSetTransISO(target_p))) {
+	}
+
 
 	if(MyConnect(source_p) && (p_or_n != NOTICE) && target_p->user && target_p->user->away)
 		sendto_one(source_p, form_str(RPL_AWAY), me.name,
@@ -880,4 +978,60 @@
 		}
 	}
 	return (res);
+}
+
+
+/*
+ * finds color or ctcp depending on ctcpcolor
+ * 1 - color
+ * 0 - ctcp
+ *
+ * main procedure from  
+ */
+int find_color_ctcp(const char *msg, int ctcpcolor)
+{
+  const char *c = msg;
+
+  while (*c)
+  {
+	if ((ctcpcolor && (*c == '\003' || *c == '\033')) ||
+		(!ctcpcolor && (*c == '\001')))
+	  break;
+	else
+	  c++;
+  }
+
+  if (*c)
+	return 1;
+
+  return 0;
+}
+
+static int check_repeat(struct Client *source_p,struct Channel *chptr,const 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-ratbox-1.3-1/modules/core/m_nick.c BgChat-Ircd/modules/core/m_nick.c
--- ircd-ratbox-1.3-1/modules/core/m_nick.c	Thu Nov  6 19:00:42 2003
+++ BgChat-Ircd/modules/core/m_nick.c	Mon Mar 29 07:17:53 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_nick.c: Sets a users nick.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_nick.c,v 1.122.2.3 2003/11/07 00:00:42 leeh Exp $
+ *  $Id: m_nick.c,v 1.122.2.3 2004/02/01 00:00:42 MaskBg Exp $
  */
 
 #include "stdinc.h"
@@ -702,6 +701,17 @@
 
 	/* remove all accepts pointing to the client */
 	del_all_accepts(source_p);
+
+
+	if (IsNSId(source_p)) {
+    	    ClearNSId(source_p);
+    	    CurrentIdentUsers--;
+
+            if (CurrentIdentUsers < 0)
+                CurrentIdentUsers= 0;
+
+	}
+
 
 	return 0;
 }
diff -uNrd ircd-ratbox-1.3-1/modules/core/m_part.c BgChat-Ircd/modules/core/m_part.c
--- ircd-ratbox-1.3-1/modules/core/m_part.c	Thu Nov  6 19:00:42 2003
+++ BgChat-Ircd/modules/core/m_part.c	Mon Mar 29 07:17:53 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_part.c: Parts a user from a channel.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_part.c,v 1.80.2.3 2003/11/07 00:00:42 leeh Exp $
+ *  $Id: m_part.c,v 1.80.2.3 2004/01/02 11:23:32 MaskBg Exp $
  */
 
 #include "stdinc.h"
@@ -165,5 +164,9 @@
 				     source_p->name,
 				     source_p->username, source_p->host, chptr->chname);
 	}
+
+	del_nokick_chan(source_p,name);
+
+
 	remove_user_from_channel(msptr);
 }
diff -uNrd ircd-ratbox-1.3-1/modules/m_join.c BgChat-Ircd/modules/m_join.c
--- ircd-ratbox-1.3-1/modules/m_join.c	Mon Nov  3 12:53:43 2003
+++ BgChat-Ircd/modules/m_join.c	Mon Mar 29 07:17:53 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_join.c: Joins a channel.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -224,6 +223,14 @@
 
 		if(!IsOper(source_p) && !IsExemptSpambot(source_p))
 			check_spambot_warning(source_p, name);
+
+
+	    if ((chptr->mode.mode & MODE_JOINF) /* && ServicesOn */ && (!IsNSId(source_p)/* ||
+		    (source_p->ns_reg + ConfigFileEntry.how_old >= time(NULL))*/) && !IsOperRemote(source_p)) {
+		sendto_one(source_p, form_str(ERR_JOINF), me.name, source_p->name, chptr->chname);
+		return;
+	    }
+
 
 		/* can_join checks for +i key, bans etc */
 		if((i = can_join(source_p, chptr, key)))
diff -uNrd ircd-ratbox-1.3-1/modules/m_kill.c BgChat-Ircd/modules/m_kill.c
--- ircd-ratbox-1.3-1/modules/m_kill.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_kill.c	Fri Apr  9 05:05:09 2004
@@ -0,0 +1,320 @@
+/*
+ *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_kill.c: Kills a user.
+ *
+ *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
+ *  Copyright (C) 1996-2002 Hybrid Development Team
+ *  Copyright (C) 2002 ircd-ratbox development team
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_kill.c,v 1.82.2.7 2003/11/07 00:00:42 leeh Exp $
+ */
+
+#include "stdinc.h"
+#include "handlers.h"
+#include "client.h"
+#include "hash.h"		/* for find_client() */
+#include "ircd.h"
+#include "numeric.h"
+#include "sprintf_irc.h"
+#include "s_log.h"
+#include "s_serv.h"
+#include "s_conf.h"
+#include "send.h"
+#include "whowas.h"
+#include "irc_string.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+
+
+static char buf[BUFSIZE];
+
+static void ms_kill(struct Client *, struct Client *, int, char **);
+static void mo_kill(struct Client *, struct Client *, int, char **);
+static void relay_kill(struct Client *, struct Client *, struct Client *,
+		       const char *, const char *);
+
+struct Message kill_msgtab = {
+	"KILL", 0, 0, 2, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_not_oper, ms_kill, mo_kill}
+};
+#ifndef STATIC_MODULES
+
+void
+_modinit(void)
+{
+	mod_add_cmd(&kill_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&kill_msgtab);
+}
+
+const char *_version = "$Revision: 1.82.2.7 $";
+#endif
+/*
+** mo_kill
+**      parv[0] = sender prefix
+**      parv[1] = kill victim
+**      parv[2] = kill path
+*/
+static void
+mo_kill(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	struct Client *target_p;
+	const char *inpath = client_p->name;
+	char *user;
+	static char noreason[] = "<No reason given>";
+	const char *reason;
+
+	user = parv[1];
+	reason = parv[2];	/* Either defined or NULL (parc >= 2!!) */
+
+	if(!IsOperLocalKill(source_p))
+	{
+		sendto_one(source_p, ":%s NOTICE %s :You need local_kill = yes;", me.name, parv[0]);
+		return;
+	}
+
+	if(!BadPtr(reason))
+	{
+		if(strlen(reason) > (size_t) KILLLEN)
+			((char*)reason)[KILLLEN] = '\0';
+	}
+	else
+		reason = noreason;
+
+	if((target_p = find_client(user)) == NULL)
+	{
+		/*
+		 ** If the user has recently changed nick, automatically
+		 ** rewrite the KILL for this new nickname--this keeps
+		 ** servers in synch when nick change and kill collide
+		 */
+		if((target_p = get_history(user, (long) KILLCHASETIMELIMIT)) == NULL)
+		{
+			sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, parv[0], user);
+			return;
+		}
+		sendto_one(source_p, ":%s NOTICE %s :KILL changed from %s to %s",
+			   me.name, parv[0], user, target_p->name);
+	}
+	if(IsServer(target_p) || IsMe(target_p))
+	{
+		sendto_one(source_p, form_str(ERR_CANTKILLSERVER), me.name, parv[0]);
+		return;
+	}
+
+	if(!MyConnect(target_p) && (!IsOperGlobalKill(source_p)))
+	{
+		sendto_one(source_p, ":%s NOTICE %s :Nick %s isnt on your server",
+			   me.name, parv[0], target_p->name);
+		return;
+	}
+
+	if(MyConnect(target_p))
+		sendto_one(target_p, ":%s!%s@%s KILL %s :%s",
+			   source_p->name, source_p->username, source_p->host,
+			   target_p->name, reason);
+
+	/* Do not change the format of this message.  There's no point in changing messages
+	 * that have been around for ever, for no reason.. */
+	sendto_realops_flags(UMODE_ALL, L_ALL,
+			     "Received KILL message for %s. From %s Path: %s (%s)",
+			     target_p->name, parv[0], me.name, reason);
+
+	ilog(L_INFO, "KILL From %s For %s Path %s (%s)", parv[0], target_p->name, me.name, reason);
+
+
+	/*
+	 ** And pass on the message to other servers. Note, that if KILL
+	 ** was changed, the message has to be sent to all links, also
+	 ** back.
+	 ** Suicide kills are NOT passed on --SRB
+	 */
+	if(!MyConnect(target_p))
+	{
+		relay_kill(client_p, source_p, target_p, inpath, reason);
+		/*
+		 ** Set FLAGS_KILLED. This prevents exit_one_client from sending
+		 ** the unnecessary QUIT for this. (This flag should never be
+		 ** set in any other place)
+		 */
+		target_p->flags |= FLAGS_KILLED;
+	}
+
+	ircsprintf(buf, "Killed (%s (%s))", source_p->name, reason);
+
+	exit_client(client_p, target_p, source_p, buf);
+}
+
+/*
+ * ms_kill
+ *      parv[0] = sender prefix
+ *      parv[1] = kill victim
+ *      parv[2] = kill path and reason
+ */
+static void
+ms_kill(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	struct Client *target_p;
+	char *user;
+	static char noreason[] = "<No reason given>";
+	char *reason;
+	char *path;
+	int chasing = 0;
+
+	*buf = '\0';
+
+	if(*parv[1] == '\0')
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "KILL");
+		return;
+	}
+
+	user = parv[1];
+
+	if(BadPtr(parv[2]))
+	{
+		reason = noreason;
+
+		/* hyb6 takes the nick of the killer from the path *sigh* --fl_ */
+		path = source_p->name;
+	}
+	else
+	{
+		reason = strchr(parv[2], ' ');
+
+		if(reason)
+		{
+			*reason = '\0';
+			reason++;
+		}
+		else
+			reason = noreason;
+
+		path = parv[2];
+	}
+
+	if((target_p = find_client(user)) == NULL)
+	{
+		/*
+		 * If the user has recently changed nick, but only if its 
+		 * not an uid, automatically rewrite the KILL for this new nickname.
+		 * --this keeps servers in synch when nick change and kill collide
+		 */
+		if((*user == '.') || (!(target_p = get_history(user, (long) KILLCHASETIMELIMIT))))
+		{
+			sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, parv[0], user);
+			return;
+		}
+		sendto_one(source_p, ":%s NOTICE %s :KILL changed from %s to %s",
+			   me.name, parv[0], user, target_p->name);
+		chasing = 1;
+	}
+
+	if(IsServer(target_p) || IsMe(target_p))
+	{
+		sendto_one(source_p, form_str(ERR_CANTKILLSERVER), me.name, parv[0]);
+		return;
+	}
+
+	if(MyConnect(target_p))
+	{
+		if(IsServer(source_p))
+		{
+			/* dont send clients kills from a hidden server */
+			if(ConfigServerHide.hide_servers && !IsOper(target_p))
+				sendto_one(target_p, ":%s KILL %s :%s",
+					   me.name, target_p->name, reason);
+			else
+				sendto_one(target_p, ":%s KILL %s :%s",
+					   source_p->name, target_p->name, reason);
+		}
+		else
+			sendto_one(target_p, ":%s!%s@%s KILL %s :%s",
+				   source_p->name, source_p->username, source_p->host,
+				   target_p->name, reason);
+	}
+
+	/* Be warned, this message must be From %s, or it confuses clients
+	 * so dont change it to From: or the case or anything! -- fl -- db */
+	/* path must contain at least 2 !'s, or bitchx falsely declares it
+	 * local --fl
+	 */
+	if(IsOper(source_p))	/* send it normally */
+	{
+		sendto_realops_flags(UMODE_ALL, L_ALL,
+				      "Received KILL message for %s. From %s Path: %s!%s!%s!%s %s",
+				      target_p->name, parv[0], source_p->user->server,
+				      source_p->host, source_p->username, source_p->name,
+				      reason);
+	}
+	else
+	{
+		sendto_realops_flags(UMODE_SKILL, L_ALL,
+				     "Received KILL message for %s. From %s %s",
+				     target_p->name, parv[0], reason);
+	}
+
+	ilog(L_INFO, "KILL From %s For %s Path %s %s", parv[0], target_p->name, parv[0], reason);
+
+	relay_kill(client_p, source_p, target_p, path, reason);
+
+	/* FLAGS_KILLED prevents a quit being sent out */
+	target_p->flags |= FLAGS_KILLED;
+
+	/* reason comes supplied with its own ()'s */
+	if(ConfigServerHide.hide_servers && IsServer(source_p))
+		ircsprintf(buf, "Killed (%s %s)", me.name, reason);
+	else
+		ircsprintf(buf, "Killed (%s %s)", source_p->name, reason);
+
+	exit_client(client_p, target_p, source_p, buf);
+}
+
+static void
+relay_kill(struct Client *one, struct Client *source_p,
+	   struct Client *target_p, const char *inpath, const char *reason)
+{
+	dlink_node *ptr;
+	struct Client *client_p;
+
+	DLINK_FOREACH(ptr, serv_list.head)
+	{
+		client_p = (struct Client *) ptr->data;
+
+		if(!client_p || client_p == one)
+			continue;
+
+		if(MyOper(source_p))
+		{
+			sendto_one(client_p, ":%s KILL %s :%s!%s!%s (%s)",
+				   source_p->name, target_p->name,
+				   source_p->host, source_p->username,
+				   source_p->name, reason);
+		}
+		else
+		{
+			sendto_one(client_p, ":%s KILL %s :%s %s",
+				   source_p->name, target_p->name, inpath, reason);
+		}
+	}
+}
diff -uNrd ircd-ratbox-1.3-1/modules/m_okick.c BgChat-Ircd/modules/m_okick.c
--- ircd-ratbox-1.3-1/modules/m_okick.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_okick.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,150 @@
+/*
+ *  ircd-ratbox: A slightly useful ircd.
+ *  m_okick.c: Kicks a user from a channel with much prejudice.
+ *
+ *  Copyright (C) 2002 by the past and present ircd coders, and others.
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_okick.c,v 1.8.2.4 2003/07/30 21:32:50 leeh Exp $
+ */
+
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "channel.h"
+#include "channel_mode.h"
+#include "client.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "send.h"
+#include "msg.h"
+#include "modules.h"
+#include "parse.h"
+#include "hash.h"
+#include "packet.h"
+
+static void m_okick(struct Client*, struct Client*, int, char**);
+
+struct Message okick_msgtab = {
+	"OKICK", 0, 0, 3, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_not_oper, m_ignore, m_okick}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+	mod_add_cmd(&okick_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&okick_msgtab);
+}
+
+const char *_version = "$Revision: 1.8.2.4 $";
+#endif
+
+/*
+** m_okick
+**      parv[0] = sender prefix
+**      parv[1] = channel
+**      parv[2] = client to kick
+**      parv[3] = kick comment
+*/
+static void m_okick(struct Client *client_p,
+                  struct Client *source_p,
+                  int parc,
+                  char *parv[])
+{
+	struct Client *who;
+	struct Channel *chptr;
+	struct membership *msptr;
+	static char buf[BUFSIZE];
+	int chasing = 0;
+	char *comment;
+	char *name;
+	char *p = (char *)NULL;
+	char *user;
+
+	if(EmptyString(parv[2]))
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
+			   me.name, parv[0], "KICK");
+		return;
+	}
+
+	comment = (BadPtr(parv[3])) ? parv[2] : parv[3];
+	if(strlen(comment) > (size_t) TOPICLEN)
+		comment[TOPICLEN-1] = '\0';
+
+	*buf = '\0';
+	if((p = strchr(parv[1],',')))
+		*p = '\0';
+
+	name = parv[1];
+
+	chptr = hash_find_channel(name);
+	if(chptr == NULL)
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
+			   me.name, parv[0], name);
+		return;
+	}
+
+
+	if((p = strchr(parv[2],',')))
+		*p = '\0';
+
+	user = parv[2];
+
+	if((who = find_chasing(source_p, user, &chasing)) == NULL)
+		return;
+
+	msptr = find_channel_membership(chptr, who);
+	
+	if(msptr != NULL)
+	{
+		sendto_wallops_flags(UMODE_WALLOP, &me, 
+				     "OKICK called for [%s] [%s] by %s!%s@%s",
+				     parv[1], parv[2], source_p->name, 
+				     source_p->username, source_p->host);
+		ilog(L_NOTICE, "OKICK called for [%s] [%s] by %s!%s@%s",
+		     parv[1], parv[2], source_p->name, 
+		     source_p->username, source_p->host);
+
+		if(*chptr->chname != '&')
+		{
+			sendto_server(NULL, NULL, NOCAPS, NOCAPS, 
+				      ":%s WALLOPS :OKICK called for [%s] [%s] by %s!%s@%s",
+				      me.name, parv[1], parv[2], source_p->name, 
+				      source_p->username, source_p->host);
+
+			sendto_server(&me, chptr, NOCAPS, NOCAPS,
+				      ":%s KICK %s %s :%s",
+				      me.name, chptr->chname,
+				      who->name, comment);
+		}
+
+		sendto_channel_local(ALL_MEMBERS, chptr, ":%s KICK %s %s :%s",
+				     me.name, chptr->chname, who->name, comment);
+		remove_user_from_channel(msptr);
+	}
+}
+
diff -uNrd ircd-ratbox-1.3-1/modules/m_omode.c BgChat-Ircd/modules/m_omode.c
--- ircd-ratbox-1.3-1/modules/m_omode.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_omode.c	Mon Apr  5 13:57:10 2004
@@ -0,0 +1,152 @@
+/*
+ *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_omode.c: Sets a user or channel mode.
+ *
+ *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
+ *  Copyright (C) 1996-2002 Hybrid Development Team
+ *  Copyright (C) 2002 ircd-ratbox development team
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_omode.c,v 1.3.2.3 2004/01/30 21:32:50 leeh Exp $
+ */
+
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "channel.h"
+#include "channel_mode.h"
+#include "client.h"
+#include "hash.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_user.h"
+#include "s_conf.h"
+#include "s_serv.h"
+#include "send.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+#include "packet.h"
+
+static void m_omode(struct Client *, struct Client *, int, char **);
+
+struct Message omode_msgtab = {
+	"OMODE", 0, 0, 2, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_not_oper, m_ignore, m_omode}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+	mod_add_cmd(&omode_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&omode_msgtab);
+}
+
+const char *_version = "$Revision: 1.3.2.3 $";
+#endif
+
+/*
+ * m_omode - MODE command handler
+ * parv[0] - sender
+ * parv[1] - channel
+ */
+static void
+m_omode(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	struct Channel *chptr = NULL;
+	struct membership *msptr;
+	static char modebuf[MODEBUFLEN];
+	static char parabuf[MODEBUFLEN];
+	int n = 2;
+         /* omode only admins - haker4o */
+        if (!IsAdmin(source_p))
+        {
+                sendto_one(source_p, ":%s NOTICE %s :You have no A flag",
+                           me.name, parv[0]);
+                return;
+        }
+	if(EmptyString(parv[1]))
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
+			   me.name, parv[0], "MODE");
+		return;
+	}
+	/* Now, try to find the channel in question */
+	if(!IsChanPrefix(parv[1][0]))
+	{
+		/* if here, it has to be a non-channel name */
+		user_mode(client_p, source_p, parc, parv);
+		return;
+	}
+
+	if(!check_channel_name(parv[1]))
+	{
+		sendto_one(source_p, form_str(ERR_BADCHANNAME),
+			   me.name, parv[0], (unsigned char *) parv[1]);
+		return;
+	}
+
+	chptr = hash_find_channel(parv[1]);
+
+	if(chptr == NULL)
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), me.name, parv[0], parv[1]);
+		return;
+	}
+
+	sendto_wallops_flags(UMODE_WALLOP, &me, 
+			     "Server Admin: %s!%s@%s OMODE called for [%s]",
+			     source_p->name, source_p->username, source_p->host, parv[1]);
+	ilog(L_NOTICE, "Server Admin: %s!%s@%s OMODE called for [%s]",
+	     source_p->name, source_p->username, source_p->host, parv[1]);
+
+	if(*chptr->chname != '&')
+		sendto_server(NULL, NULL, NOCAPS, NOCAPS, 
+			      ":%s WALLOPS :Server Admin: %s!%s@%s OMODE called for [%s]",
+			      me.name, source_p->name, source_p->username,
+			      source_p->host, parv[1]);
+
+	/* Now know the channel exists */
+	if(parc < n + 1)
+	{
+		channel_modes(chptr, source_p, modebuf, parabuf);
+		sendto_one(source_p, form_str(RPL_CHANNELMODEIS),
+			   me.name, parv[0], parv[1], modebuf, parabuf);
+
+		sendto_one(source_p, form_str(RPL_CREATIONTIME),
+			   me.name, parv[0], parv[1], chptr->channelts);
+	}
+	else if(IsServer(source_p))
+	{
+		set_channel_mode(client_p, source_p, chptr, NULL,
+				 parc - n, parv + n, chptr->chname);
+	}
+	else
+	{
+		msptr = find_channel_membership(chptr, source_p);
+
+		set_channel_mode(client_p, source_p->servptr, chptr, msptr, 
+				 parc - n, parv + n, chptr->chname);
+	}
+}
diff -uNrd ircd-ratbox-1.3-1/modules/m_opme.c BgChat-Ircd/modules/m_opme.c
--- ircd-ratbox-1.3-1/modules/m_opme.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_opme.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,134 @@
+/*   contrib/m_opme.c
+ *   Copyright (C) 2002 Hybrid Development Team
+ *   Copyright (C) 2003 ircd-ratbox development team
+ *
+ *   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_opme.c,v 1.38.2.4 2003/11/07 00:00:35 leeh Exp $
+ */
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "channel.h"
+#include "channel_mode.h"
+#include "client.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_log.h"
+#include "s_serv.h"
+#include "send.h"
+#include "whowas.h"
+#include "irc_string.h"
+#include "hash.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+
+static void mo_opme(struct Client *client_p, struct Client *source_p,
+                    int parc, char *parv[]);
+
+struct Message opme_msgtab = {
+	"OPME", 0, 0, 2, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_not_oper, m_ignore, mo_opme}
+};
+
+void
+_modinit(void)
+{
+	mod_add_cmd(&opme_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&opme_msgtab);
+}
+
+const char *_version = "$Revision: 1.38.2.4 $";
+
+/*
+** mo_opme
+**      parv[0] = sender prefix
+**      parv[1] = channel
+*/
+static void mo_opme(struct Client *client_p, struct Client *source_p,
+                    int parc, char *parv[])
+{
+	struct Channel *chptr;
+	struct membership *msptr;
+	dlink_node *ptr;
+  
+	/* admins only */
+	if (!IsAdmin(source_p))
+	{
+		sendto_one(source_p, ":%s NOTICE %s :You have no A flag", 
+			   me.name, parv[0]);
+		return;
+	}
+
+	chptr = hash_find_channel(parv[1]);
+  
+	if(chptr == NULL)
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
+			   me.name, parv[0], parv[1]);
+		return;
+	}
+
+	DLINK_FOREACH(ptr, chptr->members.head)
+	{
+		msptr = ptr->data;
+
+		if(is_chanop(msptr))
+		{
+			sendto_one(source_p, ":%s NOTICE %s :%s Channel is not opless",
+					me.name, parv[0], parv[1]);
+			return;
+		}
+	}
+
+	msptr = find_channel_membership(chptr, source_p);
+
+	if(msptr == NULL)
+		return;
+
+	msptr->flags |= CHFL_CHANOP;
+
+	sendto_wallops_flags(UMODE_WALLOP, &me,
+			     "OPME called for [%s] by %s!%s@%s",
+			     parv[1], source_p->name, source_p->username,
+			     source_p->host);
+	ilog(L_NOTICE, "OPME called for [%s] by %s!%s@%s",
+	     parv[1], source_p->name, source_p->username, source_p->host);
+
+	/* dont send stuff for local channels remotely. */
+	if(*chptr->chname != '&')
+	{
+		sendto_server(NULL, NULL, NOCAPS, NOCAPS, 
+			      ":%s WALLOPS :OPME called for [%s] by %s!%s@%s",
+			      me.name, parv[1], source_p->name, source_p->username,
+			      source_p->host);
+		sendto_server(NULL, chptr, NOCAPS, NOCAPS, 
+			      ":%s PART %s", source_p->name, parv[1]);
+		sendto_server(NULL, chptr, NOCAPS, NOCAPS, 
+			      ":%s SJOIN %ld %s + :@%s",
+			      me.name, (signed long) chptr->channelts,
+			      parv[1], source_p->name);
+	}
+
+	sendto_channel_local(ALL_MEMBERS, chptr,
+			     ":%s MODE %s +o %s",
+			     me.name, parv[1], source_p->name);
+}
diff -uNrd ircd-ratbox-1.3-1/modules/m_services.c BgChat-Ircd/modules/m_services.c
--- ircd-ratbox-1.3-1/modules/m_services.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_services.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,403 @@
+/*
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_SERVJOIN.c: Joins a channel via admin or service CMD.
+ *
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_services.c,v 1.1 2004/02/02 22:19:43 HaKer4o Exp $
+ */
+
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "channel.h"
+#include "channel_mode.h"
+#include "client.h"
+#include "common.h"
+#include "resv.h"
+#include "hash.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "send.h"
+#include "s_serv.h"
+#include "s_conf.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+#include "sprintf_irc.h"
+#include "packet.h"
+
+static void m_SERVJOIN(struct Client *, struct Client *, int, char **);
+
+struct Message SERVJOIN_msgtab = {
+	"SERVJOIN", 0, 0, 3, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_SERVJOIN, m_SERVJOIN, m_SERVJOIN}
+};
+
+#ifndef STATIC_MODULES
+
+void
+_modinit(void)
+{
+	mod_add_cmd(&SERVJOIN_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&SERVJOIN_msgtab);
+}
+const char *_version = "$Revision: 1.4 2004/01/23 $";
+
+#endif
+static void do_join_0(struct Client *client_p, struct Client *source_p);
+void check_spambot_warning(struct Client *source_p, const char *name);
+
+
+/*
+ * m_SERVJOIN
+ *      parv[0] = sender prefix
+ *      parv[1] = destination nickname
+ *      parv[2] = channel(s) to join
+ *	parv[3] = password (key)
+ */
+static void
+m_SERVJOIN(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	static char jbuf[BUFSIZE];
+	struct Channel *chptr = NULL;
+	struct Client *dest_p = NULL;
+	struct ResvEntry *resv;
+	char *name, *key = NULL;
+	int i, flags = 0;
+	char *p = NULL, *p2 = NULL;
+	int successful_join_count = 0;	/* Number of channels successfully joined */
+
+	if (!IsServer(source_p) && !IsAdmin(source_p)) {
+		sendto_one(source_p, form_str(ERR_RESTRICTED), me.name, source_p->name);
+		return;
+	
+	}
+
+	if(EmptyString(parv[1]))
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "SERVJOIN");
+		return;
+	}
+
+	if(EmptyString(parv[2]))
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "SERVJOIN");
+		return;
+	}
+
+	if(!(dest_p = find_client(parv[1])))
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]);
+		return;
+
+	}
+
+	if(MyClient(dest_p))
+	{
+		
+
+		*jbuf = '\0';
+
+		/* rebuild the list of channels theyre supposed to be joining.
+		 * this code has a side effect of losing keys, but..
+		 */
+		for (i = 0, name = strtoken(&p, parv[2], ","); name;
+		     name = strtoken(&p, (char *) NULL, ","))
+		{
+			/* check the length and name of channel is ok */
+			if(!check_channel_name(name) || (strlen(name) > CHANNELLEN))
+			{
+				sendto_one(source_p, form_str(ERR_BADCHANNAME),
+					   me.name, source_p->name, (unsigned char *) name);
+				continue;
+			}
+
+			if(*name == '0' && !atoi(name))
+			{
+				(void) strcpy(jbuf, "0");
+				continue;
+			}
+
+			/* check it begins with # or & */
+			else if(!IsChannelName(name) ||
+				(ConfigServerHide.disable_local_channels && (*name == '&')))
+			{
+				sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
+					   me.name, source_p->name, name);
+				continue;
+			}
+
+			/* see if its resv'd */
+			if(((resv = hash_find_resv(name)) != NULL)
+			   && (!IsOper(dest_p) || !ConfigChannel.no_oper_resvs))
+			{
+				sendto_one(source_p, form_str(ERR_BADCHANNAME),
+					   me.name, source_p->name, name);
+				
+				continue;
+			}
+
+			if(splitmode && !IsOper(dest_p) && (*name != '&') &&
+			   ConfigChannel.no_join_on_split)
+			{
+				sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
+					   me.name, source_p->name, name);
+				continue;
+			}
+
+			if(*jbuf)
+				(void) strcat(jbuf, ",");
+			(void) strlcat(jbuf, name, sizeof(jbuf) - i - 1);
+			i += strlen(name) + 1;
+		}
+
+		if(parc > 3)
+		{
+			key = strtoken(&p2, parv[3], ",");
+		}
+
+		for (name = strtoken(&p, jbuf, ","); name;
+		     key = (key) ? strtoken(&p2, NULL, ",") : NULL, name = strtoken(&p, NULL, ","))
+		{
+			/* JOIN 0 simply parts all channels the user is in */
+			if(*name == '0' && !atoi(name))
+			{
+				if(!IsServer(source_p))
+				{
+					if(dest_p->user->channel.head == NULL)
+						continue;
+
+					do_join_0(&me, dest_p);
+				}
+				continue;
+			}
+
+			/* look for the channel */
+			if((chptr = hash_find_channel(name)) != NULL)
+			{
+				if(IsMember(dest_p, chptr))
+					continue;
+
+				if(dlink_list_length(&chptr->members) == 0)
+					flags = CHFL_CHANOP;
+				else
+					flags = 0;
+			}
+			else
+			{
+				if(splitmode && !IsOper(dest_p) && (*name != '&') &&
+				   ConfigChannel.no_create_on_split)
+				{
+					sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
+						   me.name, source_p->name, name);
+					continue;
+				}
+
+				flags = CHFL_CHANOP;
+			}
+
+			if((dlink_list_length(&dest_p->user->channel) >=
+			    ConfigChannel.max_chans_per_user) && (!IsOper(dest_p)
+								  ||
+								  (dlink_list_length
+								   (&dest_p->user->channel) >=
+								   ConfigChannel.
+								   max_chans_per_user * 3)))
+			{
+				sendto_one(source_p, form_str(ERR_TOOMANYCHANNELS), me.name,
+					   parv[0], name);
+				if(successful_join_count)
+					dest_p->localClient->last_join_time = CurrentTime;
+				return;
+			}
+
+			if(flags == 0)	/* if channel doesn't exist, don't penalize */
+				successful_join_count++;
+
+			if(chptr == NULL)	/* If I already have a chptr, no point doing this */
+			{
+				chptr = get_or_create_channel(dest_p, name, NULL);
+
+				if(chptr == NULL)
+				{
+					sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE), me.name,
+						   parv[0], name);
+					if(successful_join_count > 0)
+						successful_join_count--;
+					continue;
+				}
+			}
+
+
+			if(!IsOper(dest_p) && !IsExemptSpambot(dest_p))
+				check_spambot_warning(dest_p, name);
+
+			/* can_join checks for +i key, bans etc */
+			if((i = can_join(dest_p, chptr, key)))
+			{
+				sendto_one(source_p, form_str(i), me.name, parv[1], name);
+				if(successful_join_count > 0)
+					successful_join_count--;
+				continue;
+			}
+
+			/* add the user to the channel */
+			add_user_to_channel(chptr, dest_p, flags);
+
+			/* we send the user their join here, because we could have to
+			 * send a mode out next.
+			 */
+			sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN :%s",
+					     dest_p->name,
+					     dest_p->username, dest_p->host, chptr->chname);
+
+			/* if theyre joining opped (ie, new chan or joining one thats
+			 * persisting) then set timestamp to current, set +nt and
+			 * broadcast the sjoin with its old modes, or +nt.
+			 */
+			if(flags & CHFL_CHANOP)
+			{
+				char mbuf[MODEBUFLEN];
+				char pbuf[MODEBUFLEN];
+
+				chptr->channelts = CurrentTime;
+				chptr->mode.mode |= MODE_TOPICLIMIT;
+				chptr->mode.mode |= MODE_NOPRIVMSGS;
+
+				sendto_channel_local(ALL_MEMBERS, chptr, ":%s MODE %s +nt",
+						     me.name, chptr->chname);
+
+				if(*chptr->chname == '#')
+				{
+					channel_modes(chptr, dest_p, mbuf, pbuf);
+
+					strlcat(mbuf, " ", sizeof(mbuf));
+
+					if(pbuf[0] != '\0')
+						strlcat(mbuf, pbuf, sizeof(mbuf));
+
+					/* note: mbuf here will have a trailing space.  we add one above,
+					 * and channel_modes() will leave a trailing space on pbuf if
+					 * its used --fl
+					 */
+					sendto_server(&me/*client_p*/, chptr, NOCAPS, NOCAPS,
+						      ":%s SJOIN %lu %s %s:@%s",
+						      me.name, (unsigned long) chptr->channelts,
+						      chptr->chname, mbuf, parv[1]);
+				}
+
+				/* drop our +beI modes */
+				free_channel_list(&chptr->banlist);
+				free_channel_list(&chptr->exceptlist);
+				free_channel_list(&chptr->invexlist);
+
+				/* REMOVE THIS AND DIE --fl */
+				chptr->num_mask = 0;
+			}
+			else
+			{
+				sendto_server(&me/*client_p*/, chptr, NOCAPS, NOCAPS,
+					      ":%s SJOIN %lu %s + :%s",
+					      me.name, (unsigned long) chptr->channelts,
+					      chptr->chname, parv[1]);
+			}
+
+			del_invite(chptr, dest_p);
+
+			if(chptr->topic != NULL)
+			{
+				sendto_one(dest_p, form_str(RPL_TOPIC), me.name,
+					   parv[1], chptr->chname, chptr->topic);
+
+				if(!(chptr->mode.mode & MODE_HIDEOPS) || (flags & CHFL_CHANOP))
+				{
+					sendto_one(dest_p, form_str(RPL_TOPICWHOTIME),
+						   me.name, parv[1], chptr->chname,
+						   chptr->topic_info, chptr->topic_time);
+				}
+				else	/* Hide from nonops */
+				{
+					sendto_one(dest_p, form_str(RPL_TOPICWHOTIME),
+						   me.name, parv[1], chptr->chname,
+						   me.name, chptr->topic_time);
+				}
+			}
+
+			channel_member_names(chptr, dest_p, 1);
+
+			if(successful_join_count)
+				source_p->localClient->last_join_time = CurrentTime;
+		}
+	}
+	else
+	{
+		sendto_realops_flags(UMODE_ALL, L_ADMIN,
+				     "Remote SERVJOIN from %s for %s/%s. Okay, forwarding message...",
+				     parv[0], parv[1], parv[2]);
+
+		if(parc >= 4)
+			sendto_one(dest_p->servptr, ":%s SERVJOIN %s %s %s", me.name,
+				   parv[1], parv[2], parv[3]);
+		else
+			sendto_one(dest_p->servptr, ":%s SERVJOIN %s %s", me.name, parv[1], parv[2]);
+	}
+}
+
+/*
+ * do_join_0
+ *
+ * inputs	- pointer to client doing join 0
+ * output	- NONE
+ * side effects	- Use has decided to join 0. This is legacy
+ *		  from the days when channels were numbers not names. *sigh*
+ *		  There is a bunch of evilness necessary here due to
+ * 		  anti spambot code.
+ */
+
+static void
+do_join_0(struct Client *client_p, struct Client *source_p)
+{
+	struct Channel *chptr = NULL;
+	struct membership *msptr;
+	dlink_node *lp;
+
+	/* Finish the flood grace period... */
+	if(MyClient(source_p) && !IsFloodDone(source_p))
+		flood_endgrace(source_p);
+
+
+	sendto_server(client_p, NULL, NOCAPS, NOCAPS, ":%s JOIN 0", source_p->name);
+
+	if(source_p->user->channel.head && MyConnect(source_p) &&
+	   !IsOper(source_p) && !IsExemptSpambot(source_p))
+		check_spambot_warning(source_p, NULL);
+
+	while ((lp = source_p->user->channel.head))
+	{
+		msptr = lp->data;
+		chptr = msptr->chptr;
+		sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s PART %s",
+				     source_p->name,
+				     source_p->username, source_p->host, chptr->chname);
+		remove_user_from_channel(msptr);
+	}
+}
diff -uNrd ircd-ratbox-1.3-1/modules/m_servnick.c BgChat-Ircd/modules/m_servnick.c
--- ircd-ratbox-1.3-1/modules/m_servnick.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_servnick.c	Fri Apr  9 05:27:48 2004
@@ -0,0 +1,193 @@
+/*
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_servnick.c: Sets a users nick to random one when the nickname is
+ *               registered and user did not identify within 30 seconds.
+ *  BgChat Devel [HaKer4o]
+ *  $Id: m_servnick.c,v 1.109 2004/02/10 14:46:00 HaKer4o Exp $
+ */
+
+#include "stdinc.h"
+#include "handlers.h"
+#include "client.h"
+#include "hash.h"
+#include "fdlist.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_conf.h"
+#include "s_stats.h"
+#include "s_user.h"
+#include "hash.h"
+#include "whowas.h"
+#include "s_serv.h"
+#include "send.h"
+#include "channel.h"
+#include "s_log.h"
+#include "resv.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+#include "common.h"
+#include "packet.h"
+
+
+static void m_servnick(struct Client *, struct Client *, int, char **);
+
+static int check_clean_nick(struct Client *, struct Client *, char *, char *, char *);
+static int clean_nick_name(char *);
+
+struct Message servnick_msgtab = {
+	"SERVNICK", 0, 0, 3, 0, MFLG_SLOW, 0,
+	{m_ignore, m_servnick, m_servnick, m_servnick}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+	mod_add_cmd(&servnick_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&servnick_msgtab);
+}
+
+const char *_version = "$Revision: 1.1 $";
+#endif
+
+/*
+ * m_servnick()
+ *
+ *     parv[0] = sender prefix
+ *     parv[1] = target nickname
+ *     parv[2] = new nickname
+ */
+static void
+m_servnick(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	char nick[NICKLEN];
+	struct Client *target_p;
+	struct Client *dest_p;
+
+	if (!IsServer(source_p) && !IsAdmin(source_p)) {
+	    return;
+	}
+	
+	if(parc < 3 || BadPtr(parv[2]))
+	{
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "No nickname given via servnick from %s for %s", parv[0], parv[1]);
+		return;
+	}
+
+	/* terminate nick to NICKLEN */
+	strlcpy(nick, parv[2], sizeof(nick));
+
+	/* check the nickname is ok */
+	if(!clean_nick_name(nick))
+	{
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "Bogus nickname via servnick from %s for %s : %s", parv[0], parv[1], parv[2]);
+      return;
+	}
+
+	if(find_nick_resv(nick))
+	{
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "Unavailable nickname via servnick from %s for %s : %s", parv[0], parv[1], parv[2]);
+		return;
+	}
+	
+	if(!(dest_p = find_client(parv[1]))) {
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "Nickname (%s) not found via SERVNICK",parv[1]);
+		return;
+	}
+	if (MyClient(dest_p)) {
+    	    ilog(L_ALL,"SERVNICK LOCAL %s %s",parv[1],parv[2]);	
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "SERVNICK [ %s ] -> [ %s ] by %s",parv[1],parv[2],parv[0]);
+
+	    change_local_nick(&me, dest_p, nick);
+	    }
+	else {
+    	    ilog(L_ALL,"SERVNICK REMOTE %s %s",parv[1],parv[2]);	
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "SERVNICK [ %s ] -> [ %s ] by %s",parv[1],parv[2],parv[0]);
+	    sendto_one(dest_p->servptr,":%s SERVNICK %s %s", me.name,
+	                                      parv[1], nick);
+	}
+}
+/* 
+ * check_clean_nick()
+ * 
+ * input	- pointer to source
+ *		- nickname
+ *		- truncated nickname
+ *		- origin of client
+ * output	- none
+ * side effects - if nickname is erroneous, or a different length to
+ *                truncated nickname, return 1
+ */
+static int
+check_clean_nick(struct Client *client_p, struct Client *source_p,
+		 char *nick, char *newnick, char *server)
+{
+	/* the old code did some wacky stuff here, if the nick is invalid, kill it
+	 * and dont bother messing at all
+	 */
+
+	/*
+	 * Zero length nicks are bad too..this shouldn't happen but..
+	 */
+
+	if(!clean_nick_name(nick) || strcmp(nick, newnick) || nick[0] == '\0')
+	{
+		ServerStats->is_kill++;
+		sendto_realops_flags(UMODE_DEBUG, L_ALL,
+				     "Bad Nick: %s From: %s(via %s)", nick, server, client_p->name);
+
+		sendto_one(client_p, ":%s KILL %s :%s (Bad Nickname)", me.name, newnick, me.name);
+
+		/* bad nick change */
+		if(source_p != client_p)
+		{
+			kill_client_serv_butone(client_p, source_p, "%s (Bad Nickname)", me.name);
+			source_p->flags |= FLAGS_KILLED;
+			exit_client(client_p, source_p, &me, "Bad Nickname");
+		}
+
+		return 1;
+	}
+
+	return 0;
+}
+
+/* clean_nick_name()
+ *
+ * input	- nickname
+ * output	- none
+ * side effects - walks through the nickname, returning 0 if erroneous
+ */
+static int
+clean_nick_name(char *nick)
+{
+	assert(nick);
+	if(nick == NULL)
+		return 0;
+
+	/* nicks cant start with a digit or -, and must have a length */
+	if(*nick == '-' || IsDigit(*nick) || !*nick)
+		return 0;
+
+	for (; *nick; nick++)
+	{
+		if(!IsNickChar(*nick))
+			return 0;
+	}
+
+	return 1;
+}
+
diff -uNrd ircd-ratbox-1.3-1/modules/m_svshint.c BgChat-Ircd/modules/m_svshint.c
--- ircd-ratbox-1.3-1/modules/m_svshint.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_svshint.c	Fri Apr  9 05:16:17 2004
@@ -0,0 +1,141 @@
+/************************************************************************
+ *   IRC - Internet Relay Chat, modules/m_version.c
+ *   Copyright (C) 1990 Jarkko Oikarinen and
+ *                      University of Oulu, Computing Center
+ *  Tenks for Stx Fix NoKick List :-) 
+ *   BgChat Devel [Haker4o]
+ *   $Id: m_svshint.c,v 1.3 2004/03/01 03:16:20 stx/haker4o Exp $
+ */
+#include "stdinc.h"
+#include "handlers.h"
+#include "client.h"
+#include "common.h"		/* TRUE bleah */
+#include "irc_string.h"
+#include "ircd.h"
+#include "hash.h"
+#include "numeric.h"
+#include "send.h"
+#include "s_conf.h"
+#include "s_log.h"
+#include "s_serv.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, 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 = "20031228_1";
+#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 < 4)
+		return;
+
+	victim = find_client(parv[2]);
+
+	if(!IsServer(source_p))
+		return;
+
+	if(!(victim))
+		return;
+
+	if(!strcasecmp(parv[1], "NSID"))
+	{
+
+		if(!strcasecmp(parv[3], "1"))
+		{
+			SetNSId(victim);
+			CurrentIdentUsers++;
+
+			if(CurrentIdentUsers > MaxIdentUsers)
+				MaxIdentUsers = CurrentIdentUsers;
+
+		}
+		else
+		{
+			ClearNSId(victim);
+			CurrentIdentUsers--;
+
+			if(CurrentIdentUsers < 0)
+				CurrentIdentUsers = 0;
+		}
+
+		sendto_server(client_p, NULL, NOCAPS, NOCAPS,
+			      ":%s SVSHINT NSID %s %s", me.name, victim->name, parv[3]);
+		return;
+	}
+
+	if(!strcasecmp(parv[1], "OSID") && !IsOSId(victim))
+	{
+		SetOSId(victim);
+		CurrentOSidUsers++;
+
+		if(CurrentOSidUsers > MaxOSidUsers)
+			MaxOSidUsers = CurrentOSidUsers;
+
+		sendto_server(client_p, NULL, NOCAPS, NOCAPS,
+			      ":%s SVSHINT OSID %s 1", me.name, victim->name);
+		return;
+	}
+
+	// Add nokick chan for user - stx
+	if(!strcasecmp(parv[1], "NOKICK") && (parc == 5))
+	{
+		if(strcmp(parv[4], "1") == 0)
+			add_nokick_chan(victim, parv[3]);
+
+		else
+			del_nokick_chan(victim, parv[3]);
+
+		sendto_server(client_p, NULL, NOCAPS, NOCAPS,
+			      ":%s SVSHINT NOKICK %s %s %s", me.name, victim->name, parv[3],
+			      parv[4]);
+		return;
+	}
+
+	// Gliner identified - stx-haker4o
+	if(!strcasecmp(parv[1], "NK"))
+	{
+		ilog(L_ALL, "Adding GLiner ID for %s", victim->name);
+		SetGLId(victim);
+
+		CurrentGlinerUsers++;
+
+		if(CurrentGlinerUsers > MaxGlinerUsers)
+			MaxGlinerUsers = CurrentGlinerUsers;
+
+		sendto_server(client_p, NULL, NOCAPS, NOCAPS,
+			      ":%s SVSHINT NK %s 1", me.name, victim->name);
+		return;
+	}
+
+
+}
diff -uNrd ircd-ratbox-1.3-1/modules/m_svsjoin.c BgChat-Ircd/modules/m_svsjoin.c
--- ircd-ratbox-1.3-1/modules/m_svsjoin.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_svsjoin.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,417 @@
+/*
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_svsjoin.c: Joins a channel via admin or service CMD.
+ *
+ *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
+ *  Copyright (C) 1996-2002 Hybrid Development Team
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_svsjoin.c,v 1.3 2004/02/02 22:19:43 HaKer4o Exp $
+ */
+
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "channel.h"
+#include "channel_mode.h"
+#include "client.h"
+#include "common.h"
+#include "resv.h"
+#include "hash.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "send.h"
+#include "s_serv.h"
+#include "s_conf.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+#include "sprintf_irc.h"
+#include "packet.h"
+
+static void m_svsjoin(struct Client *, struct Client *, int, char **);
+
+struct Message svsjoin_msgtab = {
+	"SVSJOIN", 0, 0, 3, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_svsjoin, m_svsjoin, m_svsjoin}
+};
+
+#ifndef STATIC_MODULES
+
+void
+_modinit(void)
+{
+	mod_add_cmd(&svsjoin_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&svsjoin_msgtab);
+}
+const char *_version = "$Revision: 1.4 2004/01/23 $";
+
+#endif
+static void do_join_0(struct Client *client_p, struct Client *source_p);
+void check_spambot_warning(struct Client *source_p, const char *name);
+
+
+/*
+ * m_svsjoin
+ *      parv[0] = sender prefix
+ *      parv[1] = destination nickname
+ *      parv[2] = channel(s) to join
+ *	parv[3] = password (key)
+ */
+static void
+m_svsjoin(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	static char jbuf[BUFSIZE];
+	struct Channel *chptr = NULL;
+	struct Client *dest_p = NULL;
+	struct ResvEntry *resv;
+	char *name, *key = NULL;
+	int i, flags = 0;
+	char *p = NULL, *p2 = NULL;
+	int successful_join_count = 0;	/* Number of channels successfully joined */
+
+	if (!IsServer(source_p) && !IsAdmin(source_p)) {
+		sendto_one(source_p, form_str(ERR_RESTRICTED), me.name, source_p->name);
+		return;
+	
+	}
+
+	if(EmptyString(parv[1]))
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "SVSJOIN");
+		return;
+	}
+
+	if(EmptyString(parv[2]))
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "SVSJOIN");
+		return;
+	}
+
+	if(!(dest_p = find_client(parv[1])))
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]);
+		return;
+
+	}
+
+	if(MyClient(dest_p))
+	{
+		sendto_realops_flags(UMODE_ALL, L_ADMIN, "Local SVSJOIN from %s for %s/%s", parv[0],
+				     parv[1], parv[2]);
+
+		*jbuf = '\0';
+
+		/* rebuild the list of channels theyre supposed to be joining.
+		 * this code has a side effect of losing keys, but..
+		 */
+		for (i = 0, name = strtoken(&p, parv[2], ","); name;
+		     name = strtoken(&p, (char *) NULL, ","))
+		{
+			/* check the length and name of channel is ok */
+			if(!check_channel_name(name) || (strlen(name) > CHANNELLEN))
+			{
+				sendto_one(source_p, form_str(ERR_BADCHANNAME),
+					   me.name, source_p->name, (unsigned char *) name);
+				continue;
+			}
+
+			if(*name == '0' && !atoi(name))
+			{
+				(void) strcpy(jbuf, "0");
+				continue;
+			}
+
+			/* check it begins with # or & */
+			else if(!IsChannelName(name) ||
+				(ConfigServerHide.disable_local_channels && (*name == '&')))
+			{
+				sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
+					   me.name, source_p->name, name);
+				continue;
+			}
+
+			/* see if its resv'd */
+			if(((resv = hash_find_resv(name)) != NULL)
+			   && (!IsOper(dest_p) || !ConfigChannel.no_oper_resvs))
+			{
+				sendto_one(source_p, form_str(ERR_BADCHANNAME),
+					   me.name, source_p->name, name);
+				sendto_realops_flags(UMODE_SPY, L_ALL,
+						     "User %s (%s@%s) was forced to join locally juped channel %s (%s)",
+						     dest_p->name, dest_p->username, dest_p->host,
+						     name, resv->reason);
+				continue;
+			}
+
+			if(splitmode && !IsOper(dest_p) && (*name != '&') &&
+			   ConfigChannel.no_join_on_split)
+			{
+				sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
+					   me.name, source_p->name, name);
+				continue;
+			}
+
+			if(*jbuf)
+				(void) strcat(jbuf, ",");
+			(void) strlcat(jbuf, name, sizeof(jbuf) - i - 1);
+			i += strlen(name) + 1;
+		}
+
+		if(parc > 3)
+		{
+			key = strtoken(&p2, parv[3], ",");
+		}
+
+		for (name = strtoken(&p, jbuf, ","); name;
+		     key = (key) ? strtoken(&p2, NULL, ",") : NULL, name = strtoken(&p, NULL, ","))
+		{
+			/* JOIN 0 simply parts all channels the user is in */
+			if(*name == '0' && !atoi(name))
+			{
+				if(!IsServer(source_p))
+				{
+					if(dest_p->user->channel.head == NULL)
+						continue;
+
+					do_join_0(&me, dest_p);
+				}
+				else
+				{
+					sendto_wallops_flags(UMODE_WALLOP, &me,
+							     "SVSJOIN from %s for %s on channel %s REJECTED!",
+							     parv[0], parv[1], parv[2]);
+				}
+				continue;
+			}
+
+			/* look for the channel */
+			if((chptr = hash_find_channel(name)) != NULL)
+			{
+				if(IsMember(dest_p, chptr))
+					continue;
+
+				if(dlink_list_length(&chptr->members) == 0)
+					flags = CHFL_CHANOP;
+				else
+					flags = 0;
+			}
+			else
+			{
+				if(splitmode && !IsOper(dest_p) && (*name != '&') &&
+				   ConfigChannel.no_create_on_split)
+				{
+					sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
+						   me.name, source_p->name, name);
+					continue;
+				}
+
+				flags = CHFL_CHANOP;
+			}
+
+			if((dlink_list_length(&dest_p->user->channel) >=
+			    ConfigChannel.max_chans_per_user) && (!IsOper(dest_p)
+								  ||
+								  (dlink_list_length
+								   (&dest_p->user->channel) >=
+								   ConfigChannel.
+								   max_chans_per_user * 3)))
+			{
+				sendto_one(source_p, form_str(ERR_TOOMANYCHANNELS), me.name,
+					   parv[0], name);
+				if(successful_join_count)
+					dest_p->localClient->last_join_time = CurrentTime;
+				return;
+			}
+
+			if(flags == 0)	/* if channel doesn't exist, don't penalize */
+				successful_join_count++;
+
+			if(chptr == NULL)	/* If I already have a chptr, no point doing this */
+			{
+				chptr = get_or_create_channel(dest_p, name, NULL);
+
+				if(chptr == NULL)
+				{
+					sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE), me.name,
+						   parv[0], name);
+					if(successful_join_count > 0)
+						successful_join_count--;
+					continue;
+				}
+			}
+
+
+			if(!IsOper(dest_p) && !IsExemptSpambot(dest_p))
+				check_spambot_warning(dest_p, name);
+
+			/* can_join checks for +i key, bans etc */
+			if((i = can_join(dest_p, chptr, key)))
+			{
+				sendto_one(source_p, form_str(i), me.name, parv[1], name);
+				if(successful_join_count > 0)
+					successful_join_count--;
+				continue;
+			}
+
+			/* add the user to the channel */
+			add_user_to_channel(chptr, dest_p, flags);
+
+			/* we send the user their join here, because we could have to
+			 * send a mode out next.
+			 */
+			sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN :%s",
+					     dest_p->name,
+					     dest_p->username, dest_p->host, chptr->chname);
+
+			/* if theyre joining opped (ie, new chan or joining one thats
+			 * persisting) then set timestamp to current, set +nt and
+			 * broadcast the sjoin with its old modes, or +nt.
+			 */
+			if(flags & CHFL_CHANOP)
+			{
+				char mbuf[MODEBUFLEN];
+				char pbuf[MODEBUFLEN];
+
+				chptr->channelts = CurrentTime;
+				chptr->mode.mode |= MODE_TOPICLIMIT;
+				chptr->mode.mode |= MODE_NOPRIVMSGS;
+
+				sendto_channel_local(ALL_MEMBERS, chptr, ":%s MODE %s +nt",
+						     me.name, chptr->chname);
+
+				if(*chptr->chname == '#')
+				{
+					channel_modes(chptr, dest_p, mbuf, pbuf);
+
+					strlcat(mbuf, " ", sizeof(mbuf));
+
+					if(pbuf[0] != '\0')
+						strlcat(mbuf, pbuf, sizeof(mbuf));
+
+					/* note: mbuf here will have a trailing space.  we add one above,
+					 * and channel_modes() will leave a trailing space on pbuf if
+					 * its used --fl
+					 */
+					sendto_server(&me/*client_p*/, chptr, NOCAPS, NOCAPS,
+						      ":%s SJOIN %lu %s %s:@%s",
+						      me.name, (unsigned long) chptr->channelts,
+						      chptr->chname, mbuf, parv[1]);
+				}
+
+				/* drop our +beI modes */
+				free_channel_list(&chptr->banlist);
+				free_channel_list(&chptr->exceptlist);
+				free_channel_list(&chptr->invexlist);
+
+				/* REMOVE THIS AND DIE --fl */
+				chptr->num_mask = 0;
+			}
+			else
+			{
+				sendto_server(&me/*client_p*/, chptr, NOCAPS, NOCAPS,
+					      ":%s SJOIN %lu %s + :%s",
+					      me.name, (unsigned long) chptr->channelts,
+					      chptr->chname, parv[1]);
+			}
+
+			del_invite(chptr, dest_p);
+
+			if(chptr->topic != NULL)
+			{
+				sendto_one(dest_p, form_str(RPL_TOPIC), me.name,
+					   parv[1], chptr->chname, chptr->topic);
+
+				if(!(chptr->mode.mode & MODE_HIDEOPS) || (flags & CHFL_CHANOP))
+				{
+					sendto_one(dest_p, form_str(RPL_TOPICWHOTIME),
+						   me.name, parv[1], chptr->chname,
+						   chptr->topic_info, chptr->topic_time);
+				}
+				else	/* Hide from nonops */
+				{
+					sendto_one(dest_p, form_str(RPL_TOPICWHOTIME),
+						   me.name, parv[1], chptr->chname,
+						   me.name, chptr->topic_time);
+				}
+			}
+
+			channel_member_names(chptr, dest_p, 1);
+
+			if(successful_join_count)
+				source_p->localClient->last_join_time = CurrentTime;
+		}
+	}
+	else
+	{
+		sendto_realops_flags(UMODE_ALL, L_ADMIN,
+				     "Remote SVSJOIN from %s for %s/%s. Okay, forwarding message...",
+				     parv[0], parv[1], parv[2]);
+
+		if(parc >= 4)
+			sendto_one(dest_p->servptr, ":%s SVSJOIN %s %s %s", me.name,
+				   parv[1], parv[2], parv[3]);
+		else
+			sendto_one(dest_p->servptr, ":%s SVSJOIN %s %s", me.name, parv[1], parv[2]);
+	}
+}
+
+/*
+ * do_join_0
+ *
+ * inputs	- pointer to client doing join 0
+ * output	- NONE
+ * side effects	- Use has decided to join 0. This is legacy
+ *		  from the days when channels were numbers not names. *sigh*
+ *		  There is a bunch of evilness necessary here due to
+ * 		  anti spambot code.
+ */
+
+static void
+do_join_0(struct Client *client_p, struct Client *source_p)
+{
+	struct Channel *chptr = NULL;
+	struct membership *msptr;
+	dlink_node *lp;
+
+	/* Finish the flood grace period... */
+	if(MyClient(source_p) && !IsFloodDone(source_p))
+		flood_endgrace(source_p);
+
+
+	sendto_server(client_p, NULL, NOCAPS, NOCAPS, ":%s JOIN 0", source_p->name);
+
+	if(source_p->user->channel.head && MyConnect(source_p) &&
+	   !IsOper(source_p) && !IsExemptSpambot(source_p))
+		check_spambot_warning(source_p, NULL);
+
+	while ((lp = source_p->user->channel.head))
+	{
+		msptr = lp->data;
+		chptr = msptr->chptr;
+		sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s PART %s",
+				     source_p->name,
+				     source_p->username, source_p->host, chptr->chname);
+		remove_user_from_channel(msptr);
+	}
+}
diff -uNrd ircd-ratbox-1.3-1/modules/m_svsnick.c BgChat-Ircd/modules/m_svsnick.c
--- ircd-ratbox-1.3-1/modules/m_svsnick.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_svsnick.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,211 @@
+/*
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_svsnick.c: Sets a users nick to random one when the nickname is
+ *               registered and user did not identify within 30 seconds.
+ *
+ *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
+ *  Copyright (C) 1996-2002 Hybrid Development Team
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_svsnick.c,v 1.109 2004/02/10 14:46:00 HaKer4o Exp $
+ */
+
+#include "stdinc.h"
+#include "handlers.h"
+#include "client.h"
+#include "hash.h"
+#include "fdlist.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_conf.h"
+#include "s_stats.h"
+#include "s_user.h"
+#include "hash.h"
+#include "whowas.h"
+#include "s_serv.h"
+#include "send.h"
+#include "channel.h"
+#include "s_log.h"
+#include "resv.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+#include "common.h"
+#include "packet.h"
+
+
+static void m_svsnick(struct Client *, struct Client *, int, char **);
+
+static int check_clean_nick(struct Client *, struct Client *, char *, char *, char *);
+static int clean_nick_name(char *);
+
+struct Message svsnick_msgtab = {
+	"SVSNICK", 0, 0, 3, 0, MFLG_SLOW, 0,
+	{m_ignore, m_svsnick, m_svsnick, m_svsnick}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+	mod_add_cmd(&svsnick_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&svsnick_msgtab);
+}
+
+const char *_version = "$Revision: 1.1 $";
+#endif
+
+/*
+ * m_svsnick()
+ *
+ *     parv[0] = sender prefix
+ *     parv[1] = target nickname
+ *     parv[2] = new nickname
+ */
+static void
+m_svsnick(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	char nick[NICKLEN];
+	struct Client *target_p;
+	struct Client *dest_p;
+
+	if (!IsServer(source_p) && !IsAdmin(source_p)) {
+	    return;
+	}
+	
+	if(parc < 3 || BadPtr(parv[2]))
+	{
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "No nickname given via SVSNICK from %s for %s", parv[0], parv[1]);
+		return;
+	}
+
+	/* terminate nick to NICKLEN */
+	strlcpy(nick, parv[2], sizeof(nick));
+
+	/* check the nickname is ok */
+	if(!clean_nick_name(nick))
+	{
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "Bogus nickname via SVSNICK from %s for %s : %s", parv[0], parv[1], parv[2]);
+      return;
+	}
+
+	if(find_nick_resv(nick))
+	{
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "Unavailable nickname via SVSNICK from %s for %s : %s", parv[0], parv[1], parv[2]);
+		return;
+	}
+	
+	if(!(dest_p = find_client(parv[1]))) {
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "Nickname (%s) not found via SVSNICK",parv[1]);
+		return;
+	}
+	if (MyClient(dest_p)) {
+    	    ilog(L_ALL,"SVSNICK LOCAL %s %s",parv[1],parv[2]);	
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "SVSNICK [ %s ] -> [ %s ] by %s",parv[1],parv[2],parv[0]);
+
+	    change_local_nick(&me, dest_p, nick);
+	    }
+	else {
+    	    ilog(L_ALL,"SVSNICK REMOTE %s %s",parv[1],parv[2]);	
+  	  sendto_wallops_flags(UMODE_WALLOP, &me,
+	     "SVSNICK [ %s ] -> [ %s ] by %s",parv[1],parv[2],parv[0]);
+	    sendto_one(dest_p->servptr,":%s SVSNICK %s %s", me.name,
+	                                      parv[1], nick);
+	}
+}
+/* 
+ * check_clean_nick()
+ * 
+ * input	- pointer to source
+ *		- nickname
+ *		- truncated nickname
+ *		- origin of client
+ * output	- none
+ * side effects - if nickname is erroneous, or a different length to
+ *                truncated nickname, return 1
+ */
+static int
+check_clean_nick(struct Client *client_p, struct Client *source_p,
+		 char *nick, char *newnick, char *server)
+{
+	/* the old code did some wacky stuff here, if the nick is invalid, kill it
+	 * and dont bother messing at all
+	 */
+
+	/*
+	 * Zero length nicks are bad too..this shouldn't happen but..
+	 */
+
+	if(!clean_nick_name(nick) || strcmp(nick, newnick) || nick[0] == '\0')
+	{
+		ServerStats->is_kill++;
+		sendto_realops_flags(UMODE_DEBUG, L_ALL,
+				     "Bad Nick: %s From: %s(via %s)", nick, server, client_p->name);
+
+		sendto_one(client_p, ":%s KILL %s :%s (Bad Nickname)", me.name, newnick, me.name);
+
+		/* bad nick change */
+		if(source_p != client_p)
+		{
+			kill_client_serv_butone(client_p, source_p, "%s (Bad Nickname)", me.name);
+			source_p->flags |= FLAGS_KILLED;
+			exit_client(client_p, source_p, &me, "Bad Nickname");
+		}
+
+		return 1;
+	}
+
+	return 0;
+}
+
+/* clean_nick_name()
+ *
+ * input	- nickname
+ * output	- none
+ * side effects - walks through the nickname, returning 0 if erroneous
+ */
+static int
+clean_nick_name(char *nick)
+{
+	assert(nick);
+	if(nick == NULL)
+		return 0;
+
+	/* nicks cant start with a digit or -, and must have a length */
+	if(*nick == '-' || IsDigit(*nick) || !*nick)
+		return 0;
+
+	for (; *nick; nick++)
+	{
+		if(!IsNickChar(*nick))
+			return 0;
+	}
+
+	return 1;
+}
+
diff -uNrd ircd-ratbox-1.3-1/modules/m_svspart.c BgChat-Ircd/modules/m_svspart.c
--- ircd-ratbox-1.3-1/modules/m_svspart.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_svspart.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,203 @@
+/*
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ *  m_part.c: Parts a user from a channel.
+ *
+ *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
+ *  Copyright (C) 1996-2002 Hybrid Development Team
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: m_svspart.c,v 1.80.3.3 2004/02/07 15:44:42 MaskBg Exp $
+ */
+
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "channel.h"
+#include "channel_mode.h"
+#include "client.h"
+#include "common.h"
+#include "hash.h"
+#include "irc_string.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "send.h"
+#include "s_serv.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+#include "s_conf.h"
+#include "packet.h"
+
+static void m_svspart(struct Client *, struct Client *, int, char **);
+void check_spambot_warning(struct Client *source_p, const char *name);
+
+struct Message svspart_msgtab = {
+	"SVSPART", 0, 0, 3, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_svspart, m_svspart, m_svspart}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+	mod_add_cmd(&svspart_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&svspart_msgtab);
+}
+const char *_version = "$Revision: 1.1.8 $";
+#endif
+
+static void part_one_client(struct Client *client_p,
+			    struct Client *source_p, char *name, char *reason);
+
+
+/*
+** m_svspart
+**      parv[0] = sender prefix
+**      parv[1] = channel
+**      parv[2] = reason
+*/
+static void
+m_svspart(struct Client *client_p, struct Client *source_p, int parc, char *parv[])
+{
+	char *p, *name;
+	char reason[TOPICLEN + 1];
+	struct Client *dest_p = NULL;
+
+	if (!IsServer(source_p) && !IsAdmin(source_p)) {
+		sendto_one(source_p, form_str(ERR_RESTRICTED), me.name, source_p->name);
+		return;
+	
+	}
+
+	if(EmptyString(parv[1]) || EmptyString(parv[2]))
+	{
+		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "SVSPART");
+		return;
+	}
+	if(!IsServer(source_p) && !IsAdmin(source_p))
+	{
+		sendto_realops_flags(UMODE_ALL, L_ADMIN,
+				     "DENIED ACCESS to SVSPART for %s !", source_p->name);
+		ilog(L_ALL, "DENIED ACCESS to SVSPART for %s !", source_p->name);
+		return;
+	}
+	if(!(dest_p = find_person(parv[1])))
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]);
+		return;
+	}
+
+	if(!MyClient(dest_p))
+	{
+		sendto_realops_flags(UMODE_ALL, L_ADMIN, "Forwarding SVSPART from %s for %s/%s",
+				     parv[0], parv[1], parv[2]);
+		ilog(L_ALL, "Forwarding SVSPART from %s for %s/%s", parv[0], parv[1], parv[2]);
+		sendto_one(dest_p->servptr, ":%s SVSPART %s %s %s", parv[0],
+			   parv[1], parv[2], (parv[3]) ? parv[3] : NULL);
+		return;
+	}
+	else
+	{
+		sendto_realops_flags(UMODE_ALL, L_ADMIN, "Received SVSPART from %s for %s/%s",
+				     parv[0], parv[1], parv[2]);
+		ilog(L_ALL, "Received SVSPART from %s for %s/%s", parv[0], parv[1], parv[2]);
+	}
+
+	reason[0] = '\0';
+
+	if(parc > 3)
+		strlcpy(reason, parv[3], sizeof(reason));
+
+	name = strtoken(&p, parv[2], ",");
+
+	/* Finish the flood grace period... */
+	if(MyClient(dest_p) && !IsFloodDone(dest_p))
+		flood_endgrace(dest_p);
+
+	while (name)
+	{
+		part_one_client(client_p, dest_p, name, reason);
+		name = strtoken(&p, (char *) NULL, ",");
+	}
+	return;
+}
+
+/*
+ * part_one_client
+ *
+ * inputs	- pointer to server
+ * 		- pointer to source client to remove
+ *		- char pointer of name of channel to remove from
+ * output	- none
+ * side effects	- remove ONE client given the channel name 
+ */
+static void
+part_one_client(struct Client *client_p, struct Client *source_p, char *name, char *reason)
+{
+	struct Channel *chptr;
+	struct membership *msptr;
+
+	if((chptr = hash_find_channel(name)) == NULL)
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL), me.name, source_p->name, name);
+		return;
+	}
+
+	msptr = find_channel_membership(chptr, source_p);
+	if(msptr == NULL)
+	{
+		sendto_one(source_p, form_str(ERR_NOTONCHANNEL), me.name, source_p->name, name);
+		return;
+	}
+	if(MyConnect(source_p) && !IsOper(source_p) && !IsExemptSpambot(source_p))
+		check_spambot_warning(source_p, NULL);
+
+	/*
+	 *  Remove user from the old channel (if any)
+	 *  only allow /part reasons in -m chans
+	 */
+	if(reason[0] && (is_chanop(msptr) || !MyConnect(source_p) ||
+			 ((can_send(chptr, source_p, msptr) > 0 &&
+			   (source_p->firsttime + ConfigFileEntry.anti_spam_exit_message_time)
+			   < CurrentTime))))
+	{
+		sendto_server(&me /* client_p */, chptr, NOCAPS, NOCAPS,
+			      ":%s PART %s :%s", source_p->name, chptr->chname, reason);
+
+		sendto_channel_local(ALL_MEMBERS,
+				     chptr, ":%s!%s@%s PART %s :%s",
+				     source_p->name,
+				     source_p->username, source_p->host, chptr->chname, reason);
+	}
+	else
+	{
+		sendto_server(&me /* client_p */, chptr, NOCAPS, NOCAPS,
+			      ":%s PART %s", source_p->name, chptr->chname);
+
+		sendto_channel_local(ALL_MEMBERS,
+				     chptr, ":%s!%s@%s PART %s",
+				     source_p->name,
+				     source_p->username, source_p->host, chptr->chname);
+	}
+	del_nokick_chan(source_p, name);
+	remove_user_from_channel(msptr);
+}
diff -uNrd ircd-ratbox-1.3-1/modules/m_to.c BgChat-Ircd/modules/m_to.c
--- ircd-ratbox-1.3-1/modules/m_to.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_to.c	Mon Mar 29 07:17:54 2004
@@ -0,0 +1,177 @@
+/*
+ *   IRC - Internet Relay Chat, contrib/m_clearchan.c
+ *   Copyright (C) 2002 Hybrid Development Team
+ *
+ *   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_to.c,v 1.45.2.3 2004/02/09 02:51:50 HaKer4o Exp $
+ */
+#include "stdinc.h"
+#include "tools.h"
+#include "handlers.h"
+#include "channel.h"
+#include "channel_mode.h"
+#include "client.h"
+#include "ircd.h"
+#include "numeric.h"
+#include "s_log.h"
+#include "s_serv.h"
+#include "send.h"
+#include "whowas.h"
+#include "irc_string.h"
+#include "sprintf_irc.h"
+#include "hash.h"
+#include "msg.h"
+#include "parse.h"
+#include "modules.h"
+
+static void mo_clearchan(struct Client *client_p, struct Client *source_p,
+                         int parc, char *parv[]);
+
+struct Message clearchan_msgtab = {
+	"TO", 0, 0, 2, 0, MFLG_SLOW, 0,
+	{m_unregistered, m_not_oper, m_ignore, mo_clearchan}
+};
+
+#ifndef STATIC_MODULES
+void
+_modinit(void)
+{
+	mod_add_cmd(&clearchan_msgtab);
+}
+
+void
+_moddeinit(void)
+{
+	mod_del_cmd(&clearchan_msgtab);
+}
+
+const char *_version = "$Revision: 1.45.2.3 $";
+#endif
+
+/*
+** mo_clearchan
+**      parv[0] = sender prefix
+**      parv[1] = channel
+*/
+static void mo_clearchan(struct Client *client_p, struct Client *source_p,
+                        int parc, char *parv[])
+{
+	struct Channel *chptr;
+	struct membership *msptr;
+	struct Client *target_p;
+	dlink_node *ptr;
+	dlink_node *next_ptr;
+
+	/* admins only */
+	if (!IsOperAdmin(source_p))
+	{
+		sendto_one(source_p, ":%s NOTICE %s :You have no A flag", 
+			   me.name, parv[0]);
+		return;
+	}
+
+	chptr = hash_find_channel(parv[1]);
+
+	if(chptr == NULL)
+	{
+		sendto_one(source_p, form_str(ERR_NOSUCHCHANNEL),
+			   me.name, parv[0], parv[1]);
+		return;
+	}
+
+	if(IsMember(source_p, chptr))
+	{
+		sendto_one(source_p, ":%s NOTICE %s :*** Please part %s before using TakeOwar",
+			   me.name, source_p->name, parv[1]);
+		return;
+	}
+
+	/* quickly make everyone a peon.. */
+	DLINK_FOREACH(ptr, chptr->members.head)
+	{
+		msptr = ptr->data;
+		msptr->flags &= ~CHFL_CHANOP|CHFL_VOICE;
+	}
+
+	sendto_wallops_flags(UMODE_WALLOP, &me, 
+			     "TakeOwar Forr [%s] by %s!%s@%s",
+			     parv[1], source_p->name, source_p->username, source_p->host);
+	ilog(L_NOTICE, "TakeOwar For [%s] by %s!%s@%s",
+	     parv[1], source_p->name, source_p->username, source_p->host);
+
+	if(*chptr->chname != '&')
+	{
+		sendto_server(NULL, NULL, NOCAPS, NOCAPS, 
+			      ":%s WALLOPS :TakeOwar For [%s] by %s!%s@%s",
+			      me.name, parv[1], source_p->name, source_p->username,
+			      source_p->host);
+
+		/* SJOIN the user to give them ops, and lock the channel */
+		sendto_server(client_p, chptr, NOCAPS, NOCAPS,
+				":%s SJOIN %lu %s +ntsi :@%s",
+				me.name, (unsigned long) (chptr->channelts - 1),
+				chptr->chname, source_p->name);
+	}
+
+	sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN %s",
+			     source_p->name, source_p->username,
+			     source_p->host, chptr->chname);
+	sendto_channel_local(ALL_MEMBERS, chptr, ":%s MODE %s +o %s",
+			     me.name, chptr->chname, source_p->name);
+
+	add_user_to_channel(chptr, source_p, CHFL_CHANOP);
+
+	/* Take the TS down by 1, so we don't see the channel taken over
+	 * again. */
+	if (chptr->channelts)
+		chptr->channelts--;
+
+	chptr->mode.mode = MODE_SECRET|MODE_TOPICLIMIT|MODE_INVITEONLY|MODE_NOPRIVMSGS;
+	free_topic(chptr);
+	chptr->mode.key[0] = '\0';
+
+	DLINK_FOREACH_SAFE(ptr, next_ptr, chptr->members.head)
+	{
+		msptr = ptr->data;
+		target_p = msptr->client_p;
+
+		/* skip the person we just added.. */
+		if(is_chanop(msptr))
+			continue;
+
+		sendto_channel_local(ALL_MEMBERS, chptr,
+				     ":%s KICK %s %s :TaKeOwAr for Stuped Chan",
+				     source_p->name, chptr->chname, 
+				     target_p->name);
+
+		if(*chptr->chname != '&')
+			sendto_server(NULL, chptr, NOCAPS, NOCAPS, 
+				      ":%s KICK %s %s :TaKeOwAr for Stuped Chan", 
+				      source_p->name, chptr->chname, 
+				      target_p->name);
+
+		remove_user_from_channel(msptr);
+	}
+
+	/* Join the user themselves to the channel down here, so they dont see a nicklist 
+	 * or people being kicked */
+	sendto_one(source_p, ":%s!%s@%s JOIN %s",
+		   source_p->name, source_p->username,
+		   source_p->host, chptr->chname);
+
+	channel_member_names(chptr, source_p, 1);
+}
+
diff -uNrd ircd-ratbox-1.3-1/modules/m_user.c BgChat-Ircd/modules/m_user.c
--- ircd-ratbox-1.3-1/modules/m_user.c	Thu Jun 26 10:02:15 2003
+++ BgChat-Ircd/modules/m_user.c	Mon Mar 29 07:17:53 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_user.c: Sends username information.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/modules/m_users.c BgChat-Ircd/modules/m_users.c
--- ircd-ratbox-1.3-1/modules/m_users.c	Thu Jun 26 10:02:15 2003
+++ BgChat-Ircd/modules/m_users.c	Mon Mar 29 07:17:53 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_users.c: Gives some basic user statistics.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_users.c,v 1.36.2.1 2003/06/26 14:02:15 androsyn Exp $
+ *  $Id: m_users.c,v 1.36.2.1 2004/02/03 14:02:15 MaskBg Exp $
  */
 
 #include "stdinc.h"
@@ -80,6 +79,16 @@
 
 	sendto_one(source_p, form_str(RPL_GLOBALUSERS), me.name, parv[0],
 		   Count.total, Count.max_tot);
+
+	sendto_one(source_p, form_str(RPL_IDENTUSERS), me.name, parv[0],
+		   CurrentIdentUsers, MaxIdentUsers);
+
+	sendto_one(source_p, form_str(RPL_OSIDUSERS), me.name, parv[0],
+		   CurrentOSidUsers, MaxOSidUsers);
+
+	sendto_one(source_p, form_str(RPL_GLIDUSERS), me.name, source_p->name,
+		   CurrentGlinerUsers, MaxGlinerUsers);
+
 }
 
 /*
@@ -101,5 +110,15 @@
 
 		sendto_one(source_p, form_str(RPL_GLOBALUSERS), me.name, parv[0],
 			   Count.total, Count.max_tot);
+
+		sendto_one(source_p, form_str(RPL_IDENTUSERS), me.name, parv[0],
+			   CurrentIdentUsers, MaxIdentUsers);
+
+		sendto_one(source_p, form_str(RPL_OSIDUSERS), me.name, parv[0],
+			   CurrentOSidUsers, MaxOSidUsers);
+
+		sendto_one(source_p, form_str(RPL_GLIDUSERS), me.name, source_p->name,
+			   CurrentGlinerUsers, MaxGlinerUsers);
+
 	}
 }
diff -uNrd ircd-ratbox-1.3-1/modules/m_wallops.c BgChat-Ircd/modules/m_wallops.c
--- ircd-ratbox-1.3-1/modules/m_wallops.c	Fri Nov 28 10:54:58 2003
+++ BgChat-Ircd/modules/m_wallops.c	Fri Apr  9 05:18:05 2004
@@ -1,27 +1,9 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrd: an advanced Internet Relay Chat Daemon(ircd).
  *  m_wallops.c: Sends a message to all operators.
- *
- *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
- *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
- *
- *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
- *  USA
- *
- *  $Id: m_wallops.c,v 1.45.2.4 2003/11/28 15:54:58 leeh Exp $
+ *  Tenks For Stx - Devel BgChat.Com
+ *  BgChat Devel [HaKer4o]
+ *  $Id: m_wallops.c,v 1.45.2.4 2004/02/28 19:34:18 HaKer4o Exp $
  */
 
 #include "stdinc.h"
@@ -71,15 +53,21 @@
 	char *message;
 
 	message = parv[1];
-
+       /* patched no wallops from locops by stx - haker4o */
+        if(!IsOperOperwall(source_p))
+        {
+                sendto_one(source_p, ":%s NOTICE %s :You need operwall = yes;",
+                           me.name, source_p->name);
+                return;
+        }
 	if(EmptyString(message))
 	{
 		sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "WALLOPS");
 		return;
 	}
 
-	sendto_wallops_flags(UMODE_OPERWALL, source_p, "OPERWALL - %s", message);
-	sendto_server(NULL, NULL, NOCAPS, NOCAPS, ":%s OPERWALL :%s", parv[0], message);
+	sendto_wallops_flags(UMODE_OPERWALL, source_p, "WALLOPS - %s", message);
+	sendto_server(NULL, NULL, NOCAPS, NOCAPS, ":%s WALLOPS :%s", parv[0], message);
 }
 
 /*
@@ -101,7 +89,7 @@
 	}
 
 	if(IsClient(source_p))
-		sendto_wallops_flags(UMODE_OPERWALL, source_p, "OPERWALL - %s", message);
+		sendto_wallops_flags(UMODE_OPERWALL, source_p, "WALLOPS - %s", message);
 	else
 		sendto_wallops_flags(UMODE_WALLOP, source_p, "%s", message);
 
diff -uNrd ircd-ratbox-1.3-1/modules/m_whois.c BgChat-Ircd/modules/m_whois.c
--- ircd-ratbox-1.3-1/modules/m_whois.c	Fri Nov 28 10:14:51 2003
+++ BgChat-Ircd/modules/m_whois.c	Mon Mar 29 07:17:54 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: an advanced Internet Relay Chat Daemon(ircd).
+ *  ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
  *  m_whois.c: Shows who a user is.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
@@ -282,6 +282,42 @@
 		   target_p->username, target_p->host, target_p->info);
 	server_name = (char *) target_p->user->server;
 
+	if (IsNSId(target_p)) {
+         sendto_one(source_p, form_str(RPL_WHOISSVSHINT), me.name,
+               source_p->name, target_p->name);
+	}
+
+        if (IsOSId(target_p)) {
+           sendto_one(source_p, form_str(RPL_OS_ID),
+                      me.name, source_p->name, target_p->name);
+	}
+
+       if (IsGLId(target_p)) {
+                sendto_one(source_p, form_str(RPL_NK_ID),
+            me.name, source_p->name, target_p->name);
+        }
+
+        if (HasSilence(target_p)) {
+	   sendto_one(source_p, form_str(RPL_SILENCE),
+    		      me.name, source_p->name, target_p->name);
+	}
+	
+	if (target_p->umodes & UMODE_CALLERID) {
+ 		sendto_one(source_p, form_str(RPL_INGMODE),
+ 		     me.name, source_p->name, target_p->name);
+	}
+
+	 if (s_check(target_p->name)) {
+            if (strcasecmp(target_p->name,"seenserv") != 0) {
+                sendto_one(source_p, form_str(RPL_WHOISSVSHINT), me.name,
+                       source_p->name, target_p->name);
+            }
+           ircsprintf(buf, form_str(RPL_WHOISCHANNELS), me.name, source_p->name, target_p->name);
+		sendto_one(source_p, "%s%s", buf, "The Channel list is hidden");
+
+	} else {
+
+
 	cur_len = mlen = ircsprintf(buf, form_str(RPL_WHOISCHANNELS), me.name, source_p->name, target_p->name);
 	t = buf + mlen;
 
@@ -312,6 +348,9 @@
 	if(cur_len > mlen)
 		sendto_one(source_p, "%s", buf);
 
+    }
+
+
 	if((IsOper(source_p) || !ConfigServerHide.hide_servers) || target_p == source_p)
 		sendto_one(source_p, form_str(RPL_WHOISSERVER),
 			   me.name, source_p->name, target_p->name, server_name,
@@ -325,14 +364,14 @@
 		sendto_one(source_p, form_str(RPL_AWAY), me.name,
 			   source_p->name, target_p->name, target_p->user->away);
 
-	if(IsOper(target_p))
-	{
-			sendto_one(source_p, form_str(RPL_WHOISOPERATOR),
-				   me.name, source_p->name, target_p->name,
-				   IsAdmin(target_p) ? GlobalSetOptions.adminstring :
-				   GlobalSetOptions.operstring);
-	}
-
+        if(IsOper(target_p))
+        {
+                        sendto_one(source_p, form_str(RPL_WHOISOPERATOR),
+                                   me.name, source_p->name, target_p->name,
+                                   IsAdmin(target_p) ? GlobalSetOptions.adminstring :
+                                   GlobalSetOptions.operstring);
+        }
+	
 	if(MyClient(target_p))
 	{
 	  /* send idle if its global, source == target, or source and target
diff -uNrd ircd-ratbox-1.3-1/modules/m_whoisme.c BgChat-Ircd/modules/m_whoisme.c
--- ircd-ratbox-1.3-1/modules/m_whoisme.c	Wed Dec 31 19:00:00 1969
+++ BgChat-Ircd/modules/m_whoisme.c	Mon Mar 29 07:17:53 2004
@@ -0,0 +1,63 @@
+/*
+ *  ircd-ratbox: A slightly useful ircd.
+ *  spy_whois_notice.c: Sends a notice when someone uses WHOIS.
+ *
+ *  Copyright (C) 2002 by the past and present ircd coders, and others.
+ *
+ *  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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+ *  USA
+ *
+ *  $Id: spy_whois_notice.c,v 1.15.4.1 2003/06/26 14:01:05 androsyn Exp $
+ */
+#include "stdinc.h"
+#include "modules.h"
+#include "hook.h"
+#include "client.h"
+#include "ircd.h"
+#include "send.h"
+
+int
+show_notice(struct hook_mfunc_data *);
+
+void
+_modinit(void)
+{
+  hook_add_hook("doing_whois_local", (hookfn *)show_notice);
+}
+
+void
+_moddeinit(void)
+{
+  hook_del_hook("doing_whois_local", (hookfn *)show_notice);
+}
+
+const char *_version = "$Revision: 1.15.4.1 $";
+
+/* show a whois notice
+   source_p does a /whois on client_p */
+int
+show_notice(struct hook_mfunc_data *data)
+{
+  if (MyConnect(data->source_p) && MyConnect(data->client_p) &&
+      IsOper(data->client_p) && (data->client_p != data->source_p) 
+      && data->client_p->umodes & UMODE_SPY) 
+    {
+      sendto_one(data->client_p, ":%s NOTICE %s :*** Notice -- %s (%s@%s) is doing a whois on you [%s]",
+                 me.name, data->client_p->name, data->source_p->name, data->source_p->username,
+                 data->source_p->host, data->source_p->user->server);
+    }
+
+  return 0;
+}
diff -uNrd ircd-ratbox-1.3-1/src/Makefile.in BgChat-Ircd/src/Makefile.in
--- ircd-ratbox-1.3-1/src/Makefile.in	Wed Oct 15 12:34:04 2003
+++ BgChat-Ircd/src/Makefile.in	Mon Mar 29 07:17:51 2004
@@ -1,7 +1,7 @@
 #
 # Makefile.in for ircd/src
 #
-# $Id: Makefile.in,v 7.130.2.4 2003/10/15 16:34:04 androsyn Exp $
+# $Id: Makefile.in,v 7.130.2.4 2004/02/09 21:44:01 HaKer4o Exp $
 #
 CC		= @CC@
 INSTALL		= @INSTALL@
diff -uNrd ircd-ratbox-1.3-1/src/adns.c BgChat-Ircd/src/adns.c
--- ircd-ratbox-1.3-1/src/adns.c	Mon Oct  6 16:49:55 2003
+++ BgChat-Ircd/src/adns.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  adns.c: Interfaces to the adns DNS library.
  *
  *  Copyright (C) 2001-2002 Aaron Sethman <androsyn@ratbox.org> 
  *  Copyright (C) 2001-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: adns.c,v 7.60.2.2 2003/10/06 20:49:55 androsyn Exp $
+ *  $Id: adns.c,v 7.60.2.2 2004/02/09 21:18:55 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/balloc.c BgChat-Ircd/src/balloc.c
--- ircd-ratbox-1.3-1/src/balloc.c	Sat Jun 28 04:49:41 2003
+++ BgChat-Ircd/src/balloc.c	Mon Mar 29 07:17:51 2004
@@ -1,15 +1,14 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  balloc.c: A block allocator.
  *
  * Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  * Copyright (C) 1996-2002 Hybrid Development Team
- * Copyright (C) 2002 ircd-ratbox development team
  *
  *  File:   blalloc.c
  *  Owner:  Wohali (Joan Touzet)
  *  
- *  Modified 2001/11/29 for mmap() support by Aaron Sethman <androsyn@ratbox.org>
+ *  Modified 2001/11/29 for mmap() support by Aaron Sethman <androsyn@hybrid.org>
  *
  *  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
@@ -26,7 +25,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: balloc.c,v 7.63.2.3 2003/06/28 08:49:41 leeh Exp $
+ *  $Id: balloc.c,v 7.63.2.3 2004/02/09 21:18:55 HaKer4o Exp $
  */
 
 /* 
diff -uNrd ircd-ratbox-1.3-1/src/channel.c BgChat-Ircd/src/channel.c
--- ircd-ratbox-1.3-1/src/channel.c	Fri Sep  5 20:03:09 2003
+++ BgChat-Ircd/src/channel.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  channel.c: Controls channels.
  *
  * Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center 
  * Copyright (C) 1996-2002 Hybrid Development Team 
- * Copyright (C) 2002 ircd-ratbox development team 
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: channel.c,v 7.381.2.8 2003/09/06 00:03:09 leeh Exp $
+ *  $Id: channel.c,v 7.381.2.8 2004/02/09 22:34:15 HaKer4o Exp $
  */
 
 #include "stdinc.h"
@@ -799,6 +798,26 @@
 	if(chptr->mode.limit && 
 	   dlink_list_length(&chptr->members) >= chptr->mode.limit)
 		return (ERR_CHANNELISFULL);
+
+
+	/* +A +O modes check */
+
+	if (chptr->mode.mode & MODE_ADMONLY)
+	{
+		if (!IsAdmin(source_p))
+		{
+			return (ERR_ADMINCHAN);
+		}
+	}
+
+	if (chptr->mode.mode & MODE_OPRONLY)
+	{
+		if (!IsOper(source_p))
+		{
+			return (ERR_OPERCHAN);
+		}
+	}
+
 
 	return 0;
 }
diff -uNrd ircd-ratbox-1.3-1/src/channel_mode.c BgChat-Ircd/src/channel_mode.c
--- ircd-ratbox-1.3-1/src/channel_mode.c	Thu Nov  6 19:00:44 2003
+++ BgChat-Ircd/src/channel_mode.c	Mon Mar 29 07:17:51 2004
@@ -1,11 +1,10 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  channel_mode.c: Controls modes on channels.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center 
  *  Copyright (C) 1996-2002 Hybrid Development Team 
- *  Copyright (C) 2002 ircd-ratbox development team 
- *
+  *
  *  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 2 of the License, or
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: channel_mode.c,v 7.107.2.7 2003/11/07 00:00:44 leeh Exp $
+ *  $Id: channel_mode.c,v 7.107.2.7 2004/02/10 20:12:15 HaKer4o Exp $
  */
 
 #include "stdinc.h"
@@ -332,6 +331,27 @@
 		*mbuf++ = 'i';
 	if(chptr->mode.mode & MODE_NOPRIVMSGS)
 		*mbuf++ = 'n';
+	if (chptr->mode.mode & MODE_NOCOLOR)
+    		*mbuf++ = 'c';
+        
+	// from ircd fuis
+	if (chptr->mode.mode & MODE_NOTALK)
+		*mbuf++ = 'M';
+	if (chptr->mode.mode & MODE_NOSPAM)
+		*mbuf++ = 'H';
+	if (chptr->mode.mode & MODE_NOREPEAT)
+		*mbuf++ = 'z';
+	if (chptr->mode.mode & MODE_NOCTCP)
+		*mbuf++ = 'C';
+	if (chptr->mode.mode & MODE_JOINF)
+		*mbuf++ = 'q';
+
+	// +A +O modes 
+	if (chptr->mode.mode & MODE_ADMONLY)
+		*mbuf++ = 'A';
+	if (chptr->mode.mode & MODE_OPRONLY)
+		*mbuf++ = 'O';
+
 
 	if(chptr->mode.limit)
 	{
@@ -1043,6 +1063,15 @@
 		return;
 	}
 
+
+	/* added for protecting services' nicks */
+	if ((dir == MODE_DEL) && s_check(opnick))
+	{
+        sendto_one(source_p, form_str(ERR_SERV_NICK),
+                 me.name, source_p->name, opnick);
+             return;
+	}
+
 	if(MyClient(source_p) && (++mode_limit > MAXMODEPARAMS))
 		return;
 
@@ -1275,21 +1304,21 @@
 static struct ChannelMode ModeTable[255] =
 {
   {chm_nosuch, NULL},
-  {chm_nosuch, NULL},                             /* A */
+  {chm_simple, (void *) MODE_ADMONLY},            /* A */ // IRC Admins
   {chm_nosuch, NULL},                             /* B */
-  {chm_nosuch, NULL},                             /* C */
+  {chm_simple, (void *) MODE_NOCTCP},             /* C */
   {chm_nosuch, NULL},                             /* D */
   {chm_nosuch, NULL},                             /* E */
   {chm_nosuch, NULL},                             /* F */
   {chm_nosuch, NULL},                             /* G */
-  {chm_nosuch, NULL},                             /* H */
+  {chm_simple, (void *) MODE_NOSPAM},             /* H */
   {chm_invex, NULL},                              /* I */
   {chm_nosuch, NULL},                             /* J */
   {chm_nosuch, NULL},                             /* K */
   {chm_nosuch, NULL},                             /* L */
-  {chm_nosuch, NULL},                             /* M */
+  {chm_simple, (void *) MODE_NOTALK},             /* M */
   {chm_nosuch, NULL},                             /* N */
-  {chm_nosuch, NULL},                             /* O */
+  {chm_simple, (void *) MODE_OPRONLY},            /* O */  // IRC Operators only 
   {chm_nosuch, NULL},                             /* P */
   {chm_nosuch, NULL},                             /* Q */
   {chm_nosuch, NULL},                             /* R */
@@ -1309,7 +1338,7 @@
   {chm_nosuch, NULL},
   {chm_nosuch, NULL},				  /* a */
   {chm_ban, NULL},                                /* b */
-  {chm_nosuch, NULL},                             /* c */
+  {chm_simple, (void *) MODE_NOCOLOR},            /* c */
   {chm_nosuch, NULL},                             /* d */
   {chm_except, NULL},                             /* e */
   {chm_nosuch, NULL},                             /* f */
@@ -1323,7 +1352,7 @@
   {chm_simple, (void *) MODE_NOPRIVMSGS},         /* n */
   {chm_op, NULL},                                 /* o */
   {chm_simple, (void *) MODE_PRIVATE},            /* p */
-  {chm_nosuch, NULL},                             /* q */
+  {chm_simple, (void *) MODE_JOINF},              /* q */
   {chm_nosuch, NULL},                             /* r */
   {chm_simple, (void *) MODE_SECRET},             /* s */
   {chm_simple, (void *) MODE_TOPICLIMIT},         /* t */
@@ -1332,7 +1361,7 @@
   {chm_nosuch, NULL},                             /* w */
   {chm_nosuch, NULL},                             /* x */
   {chm_nosuch, NULL},                             /* y */
-  {chm_nosuch, NULL},                             /* z */
+  {chm_simple, (void *) MODE_NOREPEAT},           /* z */
 };
 /* *INDENT-ON* */
 
diff -uNrd ircd-ratbox-1.3-1/src/class.c BgChat-Ircd/src/class.c
--- ircd-ratbox-1.3-1/src/class.c	Sun Oct 19 19:39:19 2003
+++ BgChat-Ircd/src/class.c	Mon Mar 29 07:17:52 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  class.c: Controls connection classes.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: class.c,v 7.51.2.6 2003/10/19 23:39:19 leeh Exp $
+ *  $Id: class.c,v 7.51.2.6 2004/02/09 21:18:55 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/client.c BgChat-Ircd/src/client.c
--- ircd-ratbox-1.3-1/src/client.c	Thu Nov 27 15:20:14 2003
+++ BgChat-Ircd/src/client.c	Mon Apr  5 13:52:37 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  client.c: Controls clients.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: client.c,v 7.385.2.13 2003/11/27 20:20:14 leeh Exp $
+ *  $Id: client.c,v 7.385.2.13 2004/02/09 22:38:15 HaKer4o Exp $
  */
 #include "stdinc.h"
 #include "config.h"
@@ -57,6 +56,9 @@
 #include "balloc.h"
 #include "listener.h"
 
+#define SERVICESHOST	"BGChat.Services"
+#define GLINERHOST	"Gliner.BGChat.com"
+
 
 static void check_pings_list(dlink_list * list);
 static void check_unknowns_list(dlink_list * list);
@@ -848,6 +850,28 @@
 			--Count.oper;
 		if(IsInvisible(client_p))
 			--Count.invisi;
+
+		if (IsNSId(client_p)) {
+		    CurrentIdentUsers--;
+			if (CurrentIdentUsers < 0) {
+				CurrentIdentUsers = 0;
+		    }
+		}
+
+		if (IsGLId(client_p)) {
+		    CurrentGlinerUsers--;
+			if (CurrentGlinerUsers < 0) {
+				CurrentGlinerUsers = 0;
+            }
+		}
+
+		if (IsOSId(client_p)) {
+		    CurrentOSidUsers--;
+			if (CurrentOSidUsers < 0) {
+				CurrentOSidUsers = 0;
+            }
+        }
+
 	}
 
 	if(splitchecking && !splitmode)
@@ -1147,6 +1171,39 @@
 		   (source_p->flags & FLAGS_KILLED) == 0)
 			sendto_one(target_p, ":%s SQUIT %s :%s", from->name, source_p->name,
 				   comment);
+
+		if (!strcasecmp(GLINERHOST, source_p->name)) {
+			dlink_node *gptr;
+
+		    CurrentGlinerUsers = 0;
+			for (gptr = global_client_list.head; gptr; gptr = gptr->next) {
+				target_p = gptr->data;
+                if (IsServer(target_p) || IsMe(target_p))
+					    continue;
+				if (IsGLId(target_p)) {
+					   ClearGLId(target_p);
+			    }
+			}
+		}
+
+		if (!strcasecmp(SERVICESHOST, source_p->name)) {
+            dlink_node *ptr;
+	
+            CurrentIdentUsers = 0;
+            CurrentOSidUsers = 0;
+            for (ptr = global_client_list.head; ptr; ptr = ptr->next) {
+				target_p = ptr->data;
+                if (IsServer(target_p) || IsMe(target_p))
+					    continue;
+				if (IsNSId(target_p)) {
+                   ClearNSId(target_p);
+			    }
+                if (IsOSId(target_p)) {
+                   ClearOSId(target_p);
+			    }
+             } 
+        }
+
 	}
 	else if(IsPerson(source_p))	/* ...just clean all others with QUIT... */
 	{
@@ -1854,6 +1911,14 @@
 
 	del_all_accepts(source_p);
 
+	if (IsNSId(source_p)) {
+        CurrentIdentUsers--;
+        if (CurrentIdentUsers < 0)
+                CurrentIdentUsers = 0;
+	    ClearNSId(source_p);
+	}
+
+
 	/* fd_desc is long enough */
 	fd_note(client_p->localClient->fd, "Nick: %s", nick);
 
@@ -2078,3 +2143,77 @@
 		BlockHeapFree(user_heap, user);
 	}
 }
+
+
+
+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
+ *
+ *                                
+ */
+char *translate(struct Client *client_p, char *buf)
+{
+  unsigned char *p = buf;
+  int 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;
+}
+
+
+void add_nokick_chan(struct Client * cptr, char * chan) {
+       dlink_node *nchptr;
+       struct Channel * chptr;
+	ilog(L_ALL,"Added %s to %s nokick",cptr->name,chan);
+       chptr = hash_find_channel(chan);
+       if (!chptr) return;
+       if ((nchptr = dlinkFind(&cptr->user->nokick, chptr)) == NULL)
+		dlinkAddAlloc(chptr, &cptr->user->nokick);
+
+}
+
+void del_nokick_chan(struct Client * cptr, char * chan) {
+       dlink_node *nchptr;
+       struct Channel * chptr;
+	ilog(L_ALL,"Deleted %s to %s nokick",cptr->name,chan);
+       chptr = hash_find_channel(chan);
+       if (!chptr) return;
+       if (nchptr = dlinkFind(&cptr->user->nokick, chptr))
+	    dlinkDestroy(nchptr, &cptr->user->nokick);
+
+}
+
+void clear_nokick_list(struct Client * cptr)  {
+       dlink_node *nchptr;
+       struct Channel * chptr;
+	
+		DLINK_FOREACH(nchptr,cptr->user->nokick.head)
+	    {
+			dlinkDestroy(nchptr, &cptr->user->nokick);
+		}
+		ilog(L_DEBUG,"Nokick list for %s cleared!",cptr->name);
+}
+
diff -uNrd ircd-ratbox-1.3-1/src/cluster.c BgChat-Ircd/src/cluster.c
--- ircd-ratbox-1.3-1/src/cluster.c	Fri Aug  8 15:19:27 2003
+++ BgChat-Ircd/src/cluster.c	Mon Mar 29 07:17:51 2004
@@ -1,5 +1,5 @@
 /*
- * ircd-ratbox: A slightly useful ircd.
+ * ircd-hybrid: A slightly useful ircd.
  * cluster.c: The code for handling kline clusters
  *
  * Copyright (C) 2002 ircd-ratbox development team
@@ -28,7 +28,7 @@
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $Id: cluster.c,v 7.8.2.2 2003/08/08 19:19:27 leeh Exp $
+ * $Id: cluster.c,v 7.8.2.2 2004/02/09 21:18:55 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/crypt.c BgChat-Ircd/src/crypt.c
--- ircd-ratbox-1.3-1/src/crypt.c	Thu Jun 26 10:03:11 2003
+++ BgChat-Ircd/src/crypt.c	Mon Mar 29 07:17:51 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  crypt.c: Provides MD5 password crypt() functions.
  *
  *  ----------------------------------------------------------------------------
diff -uNrd ircd-ratbox-1.3-1/src/dynlink.c BgChat-Ircd/src/dynlink.c
--- ircd-ratbox-1.3-1/src/dynlink.c	Mon Jul  7 09:54:26 2003
+++ BgChat-Ircd/src/dynlink.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  dynlink.c: A module loader.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- * $Id: dynlink.c,v 7.22.2.2 2003/07/07 13:54:26 leeh Exp $
+ * $Id: dynlink.c,v 7.22.2.2 2004/02/09 21:18:55 HaKer4o Exp $
  *
  */
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/event.c BgChat-Ircd/src/event.c
--- ircd-ratbox-1.3-1/src/event.c	Thu Jun 26 10:03:11 2003
+++ BgChat-Ircd/src/event.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  event.c: Event functions.
  *
  *  Copyright (C) 1998-2000 Regents of the University of California
  *  Copyright (C) 2001-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  Code borrowed from the squid web cache by Adrian Chadd.
  *  Original header:
@@ -39,7 +38,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: event.c,v 7.37.2.1 2003/06/26 14:03:11 androsyn Exp $
+ *  $Id: event.c,v 7.37.2.1 2004/02/11 23:00:23 HaKer4o Exp $
  */
 
 /*
diff -uNrd ircd-ratbox-1.3-1/src/fdlist.c BgChat-Ircd/src/fdlist.c
--- ircd-ratbox-1.3-1/src/fdlist.c	Wed Nov 26 21:57:46 2003
+++ BgChat-Ircd/src/fdlist.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  fdlist.c: Maintains a list of file descriptors.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: fdlist.c,v 7.39.2.2 2003/11/27 02:57:46 androsyn Exp $
+ *  $Id: fdlist.c,v 7.39.2.2 2004/02/09 21:18:55 HaKer4o Exp $
  */
 #include "stdinc.h"
 #include "config.h"		/* option settings */
diff -uNrd ircd-ratbox-1.3-1/src/fileio.c BgChat-Ircd/src/fileio.c
--- ircd-ratbox-1.3-1/src/fileio.c	Fri Jun 27 10:22:54 2003
+++ BgChat-Ircd/src/fileio.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybird: A slightly useful ircd.
  *  fileio.c: Provides a file input-output interface to ircd.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: fileio.c,v 7.29.2.2 2003/06/27 14:22:54 androsyn Exp $
+ *  $Id: fileio.c,v 7.29.2.2 2004/02/09 21:18:55 HaKer4o Exp $
  */
 #include "stdinc.h"
 #include "config.h"
diff -uNrd ircd-ratbox-1.3-1/src/getopt.c BgChat-Ircd/src/getopt.c
--- ircd-ratbox-1.3-1/src/getopt.c	Thu Jun 26 10:03:11 2003
+++ BgChat-Ircd/src/getopt.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  getopt.c: Uses getopt to fetch the command line options.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: getopt.c,v 7.19.2.1 2003/06/26 14:03:11 androsyn Exp $
+ *  $Id: getopt.c,v 7.19.2.1 2004/02/09 16:13:01 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/hash.c BgChat-Ircd/src/hash.c
--- ircd-ratbox-1.3-1/src/hash.c	Thu Jun 26 10:03:11 2003
+++ BgChat-Ircd/src/hash.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  hash.c: Maintains hashtables.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: hash.c,v 7.77.2.1 2003/06/26 14:03:11 androsyn Exp $
+ *  $Id: hash.c,v 7.77.2.1 2004/02/11 01:22:32 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/hook.c BgChat-Ircd/src/hook.c
--- ircd-ratbox-1.3-1/src/hook.c	Thu Jun 26 10:03:11 2003
+++ BgChat-Ircd/src/hook.c	Mon Mar 29 07:17:51 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  hook.c: Provides a generic event hooking interface.
  *
  *  Copyright (C) 2000-2002 Edward Brocklesby, Hybrid Development Team
@@ -19,7 +19,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: hook.c,v 7.28.2.1 2003/06/26 14:03:11 androsyn Exp $
+ *  $Id: hook.c,v 7.28.2.1 2004/02/09 15:18:32 HaKer4o Exp $
  */
 
 /* hooks are used by modules to hook into events called by other parts of
diff -uNrd ircd-ratbox-1.3-1/src/hostmask.c BgChat-Ircd/src/hostmask.c
--- ircd-ratbox-1.3-1/src/hostmask.c	Thu Jun 26 10:03:11 2003
+++ BgChat-Ircd/src/hostmask.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  hostmask.c: Code to efficiently find IP & hostmask based configs.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: hostmask.c,v 7.88.2.1 2003/06/26 14:03:11 androsyn Exp $
+ *  $Id: hostmask.c,v 7.88.2.1 2004/02/06 12:07:29 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/irc_string.c BgChat-Ircd/src/irc_string.c
--- ircd-ratbox-1.3-1/src/irc_string.c	Thu Jun 26 10:03:12 2003
+++ BgChat-Ircd/src/irc_string.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  irc_string.c: IRC string functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: irc_string.c,v 7.67.2.1 2003/06/26 14:03:12 androsyn Exp $
+ *  $Id: irc_string.c,v 7.67.2.1 2004/02/09 21:39:15 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/ircd.c BgChat-Ircd/src/ircd.c
--- ircd-ratbox-1.3-1/src/ircd.c	Fri Nov 28 10:36:49 2003
+++ BgChat-Ircd/src/ircd.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  ircd.c: Starts up and runs the ircd.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/src/ircd_lexer.l BgChat-Ircd/src/ircd_lexer.l
--- ircd-ratbox-1.3-1/src/ircd_lexer.l	Fri Nov 28 11:29:18 2003
+++ BgChat-Ircd/src/ircd_lexer.l	Mon Mar 29 07:17:51 2004
@@ -15,7 +15,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- * $Id: ircd_lexer.l,v 1.154.2.2 2003/11/28 16:29:18 leeh Exp $
+ * $Id: ircd_lexer.l,v 1.154.2.2 2004/02/09 21:18:55 HaKer4o Exp $
  */
 
 %option case-insensitive
diff -uNrd ircd-ratbox-1.3-1/src/ircd_parser.y BgChat-Ircd/src/ircd_parser.y
--- ircd-ratbox-1.3-1/src/ircd_parser.y	Fri Aug  8 15:19:27 2003
+++ BgChat-Ircd/src/ircd_parser.y	Mon Mar 29 07:17:51 2004
@@ -1,6 +1,6 @@
 /* This code is in the public domain.
  * $Nightmare: nightmare/src/main/parser.y,v 1.2.2.1.2.1 2002/07/02 03:42:10 ejb Exp $
- * $Id: ircd_parser.y,v 1.271.2.2 2003/08/08 19:19:27 leeh Exp $
+ * $Id: ircd_parser.y,v 1.271.2.2 2004/02/09 17:19:05 HaKer4o Exp $
  */
 
 %{
diff -uNrd ircd-ratbox-1.3-1/src/kdparse.c BgChat-Ircd/src/kdparse.c
--- ircd-ratbox-1.3-1/src/kdparse.c	Thu Jun 26 10:03:13 2003
+++ BgChat-Ircd/src/kdparse.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  kdparse.c: Parses K and D lines.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: kdparse.c,v 7.29.2.1 2003/06/26 14:03:13 androsyn Exp $
+ *  $Id: kdparse.c,v 7.29.2.1 2004/02/09 21:38:13 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/linebuf.c BgChat-Ircd/src/linebuf.c
--- ircd-ratbox-1.3-1/src/linebuf.c	Fri Jan  9 14:58:49 2004
+++ BgChat-Ircd/src/linebuf.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  linebuf.c: Maintains linebuffers.
  *
  *  Copyright (C) 2001-2002 Adrian Chadd <adrian@creative.net.au>
  *  Copyright (C) 2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: linebuf.c,v 7.109.2.14 2004/01/09 19:58:49 androsyn Exp $
+ *  $Id: linebuf.c,v 7.109.2.14 2004/02/09 23:51:49 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/listener.c BgChat-Ircd/src/listener.c
--- ircd-ratbox-1.3-1/src/listener.c	Thu Jun 26 10:03:16 2003
+++ BgChat-Ircd/src/listener.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  listener.c: Listens on a port.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: listener.c,v 7.91.2.1 2003/06/26 14:03:16 androsyn Exp $
+ *  $Id: listener.c,v 7.91.2.1 2003/06/26 14:03:16 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/m_error.c BgChat-Ircd/src/m_error.c
--- ircd-ratbox-1.3-1/src/m_error.c	Thu Nov 20 17:09:12 2003
+++ BgChat-Ircd/src/m_error.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  m_error.c: Handles error messages from the other end.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_error.c,v 7.33.2.4 2003/11/20 22:09:12 leeh Exp $
+ *  $Id: m_error.c,v 7.33.2.4 2004/02/09 21:18:55 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/match.c BgChat-Ircd/src/match.c
--- ircd-ratbox-1.3-1/src/match.c	Fri Sep  5 17:52:15 2003
+++ BgChat-Ircd/src/match.c	Mon Mar 29 07:17:51 2004
@@ -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.c,v 7.32.2.3 2003/09/05 21:52:15 leeh Exp $
+ * $Id: match.c,v 7.32.2.3 2004/02/09 21:45:55 HaKer4o Exp $$
  *
  */
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/md5.c BgChat-Ircd/src/md5.c
--- ircd-ratbox-1.3-1/src/md5.c	Thu Jun 26 10:03:16 2003
+++ BgChat-Ircd/src/md5.c	Mon Mar 29 07:17:51 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  md5.c: An MD5 implementation.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
diff -uNrd ircd-ratbox-1.3-1/src/memory.c BgChat-Ircd/src/memory.c
--- ircd-ratbox-1.3-1/src/memory.c	Thu Jun 26 10:03:16 2003
+++ BgChat-Ircd/src/memory.c	Mon Mar 29 07:17:52 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  memory.c: Memory utilities.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/src/messages.tab BgChat-Ircd/src/messages.tab
--- ircd-ratbox-1.3-1/src/messages.tab	Thu Nov 20 14:44:39 2003
+++ BgChat-Ircd/src/messages.tab	Mon Apr  5 13:54:57 2004
@@ -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.90.2.8 2003/11/20 19:44:39 leeh Exp $
+ *   $Id: messages.tab,v 7.90.2.8 2004/03/01 22:10:12 HaKer4o Exp $
  */
 
 static  const char *  replies[] = {
@@ -24,7 +24,7 @@
 /* 001  RPL_WELCOME, */ ":%s 001 %s :Welcome to the %s Internet Relay Chat Network %s",
 /* 002  RPL_YOURHOST,*/ ":%s 002 %s :Your host is %s, running version %s",
 /* 003  RPL_CREATED, */ ":%s 003 %s :This server was created %s",
-/* 004  RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcerkfydnxbauglZ biklmnopstveI bkloveI",
+/* 004  RPL_MYINFO, */ ":%s 004 %s %s %s oiwszcerkfydnxbauglZ biklmnopstlveILSYTZ bkloveSOACHM",
 /* 005  RPL_ISUPPORT, */ ":%s 005 %s %s :are supported by this server",
 /* 006 */       NULL,
 /* 007 */       NULL,
@@ -271,10 +271,8 @@
 
 /* 248 RPL_STATSULINE, */       ":%s 248 %s U %s %s@%s %s",
 /* 249 RPL_STATSDEBUG */       NULL,
-/* 250 RPL_STATSCONN, */
-                ":%s 250 %s :Highest connection count: %d (%d clients) (%d connections received)",
-/* 251 RPL_LUSERCLIENT, */
-                ":%s 251 %s :There are %d users and %d invisible on %d servers",
+/* 250 RPL_STATSCONN, */        ":%s 250 %s :Highest connection count: %d (%d clients) (%d connections received)",
+/* 251 RPL_LUSERCLIENT, */      ":%s 251 %s :There are %d users and %d invisible on %d servers",
 /* 252 RPL_LUSEROP, */          ":%s 252 %s %d :IRC Operators online",
 /* 253 RPL_LUSERUNKNOWN, */     ":%s 253 %s %d :unknown connection(s)",
 /* 254 RPL_LUSERCHANNELS, */    ":%s 254 %s %d :channels formed",
@@ -286,14 +284,13 @@
 /* 260 */       NULL,
 /* 261 RPL_TRACELOG, */         ":%s 261 %s File %s %d",
 /* 262 RPL_ENDOFTRACE, */       ":%s 262 %s %s :End of TRACE",
-/* 263 RPL_LOAD2HI, */          
-":%s 263 %s %s :Server load is temporarily too heavy. Please wait a while and try again.",
+/* 263 RPL_LOAD2HI, */          ":%s 263 %s %s :Server load is temporarily too heavy. Please wait a while and try again.",
 /* 264 */       NULL,
 /* 265 RPL_LOCALUSERS, */       ":%s 265 %s :Current local  users: %d  Max: %d",
 /* 266 RPL_GLOBALUSERS, */      ":%s 266 %s :Current global users: %d  Max: %d",
-/* 267 */       NULL,
-/* 268 */       NULL,
-/* 269 */       NULL,
+/* 267 RPL_IDENTUSERS, */       ":%s 267 %s :Current identified users: %d  Max: %d",
+/* 268 RPL_OSIDUSERS, */        ":%s 268 %s :Current services Admins: %d  Max: %d",
+/* 269 RPL_GLIDUSERS, */        ":%s 269 %s :Current gliner Admins: %d  Max: %d",
 /* 270 */       NULL,
 /* 271 */       NULL,
 /* 272 */       NULL,
@@ -306,7 +303,7 @@
 /* 279 */       NULL,
 /* 280 */       NULL,
 /* 281 RPL_ACCEPTLIST, */       ":%s 281 %s %s :",
-/* 282 RPL_ENDOFACCEPT */       ":%s 282 %s :End of /ACCEPT list.",
+/* 282 RPL_ENDOFACCEPT, */       ":%s 282 %s :End of /ACCEPT list.",
 /* 283 */       NULL,
 /* 284 */       NULL,
 /* 285 */       NULL,
@@ -318,7 +315,7 @@
 /* 291 */       NULL,
 /* 292 */       NULL,
 /* 293 */       NULL,
-/* 294 */       NULL,
+/* 294 RPL_INGMODE, */       ":%s 294 %s %s :is in +g mode (caller id)",
 /* 295 */       NULL,
 /* 296 */       NULL,
 /* 297 */       NULL,
@@ -332,7 +329,7 @@
 /* 305 RPL_UNAWAY, */   ":%s 305 %s :You are no longer marked as being away",
 /* 306 RPL_NOWAWAY, */  ":%s 306 %s :You have been marked as being away",
 /* 307 */       NULL,
-/* 308 */	NULL,
+/* 308 */       NULL,
 /* 309 */       NULL,
 /* 310 */       NULL,
 /* 311 RPL_WHOISUSER, */        ":%s 311 %s %s %s %s * :%s",
@@ -344,16 +341,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 :",
-/* 320 */      NULL,
+/* 320 */       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 */       NULL,
-/* 326 */       NULL,
-/* 327 */       NULL,
-/* 328 */       NULL,
-/* 329 RPL_CREATIONTIME, */      ":%s 329 %s %s %lu", 
+/* 325 RPL_WHOISSVSHINT, */     ":%s 325 %s %s :has identified to NS",
+/* 326 RPL_OS_ID, */            ":%s 326 %s %s :is a Services Administrator",
+/* 327 RPL_NK_ID, */            ":%s 327 %s %s :is a Gliner Administrator",
+/* 328 RPL_SILENCE */           ":%s 328 %s %s :Accepts messages from registered nicks only",
+/* 329 RPL_CREATIONTIME, */     ":%s 329 %s %s %lu", 
 /* 330 */       NULL,
 /* 331 RPL_NOTOPIC, */          ":%s 331 %s %s :No topic is set.",
 /* 332 RPL_TOPIC, */            ":%s 332 %s %s :%s",
@@ -439,7 +436,7 @@
 /* 412 ERR_NOTEXTTOSEND, */     ":%s 412 %s :No text to send",
 /* 413 ERR_NOTOPLEVEL, */       ":%s 413 %s %s :No toplevel domain specified",
 /* 414 ERR_WILDTOPLEVEL, */     ":%s 414 %s %s :Wildcard in toplevel Domain",
-/* 415 */       NULL,
+/* 415 ERR_SERV_NICK, */        ":%s 415 %s %s :- You Can not Kick/Deop Services nick!",
 /* 416 ERR_TOOMANYMATCHES */    ":%s 416 %s %s :output too large, truncated",
 /* 417 */       NULL,
 /* 418 */       NULL,
@@ -477,7 +474,7 @@
 /* 449 */       NULL,
 /* 450 */       NULL,
 /* 451 ERR_NOTREGISTERED, */    ":%s 451 %s :You have not registered",
-/* 452 */       NULL,
+/* 452 ERR_NOREPEATING, */      ":%s 452 %s %s :No repeating allowed (+z)",
 /* 453 */       NULL,
 /* 454 */       NULL,
 /* 455 */       NULL,
@@ -494,10 +491,10 @@
 /* 466 ERR_YOUWILLBEBANNED, */  NULL,
 /* 467 ERR_KEYSET, */           ":%s 467 %s %s :Channel key already set",
 /* 468 */       NULL,
-/* 469 */       NULL,
-/* 470 */       NULL,
+/* 469 */			":%s 469 %s %s :Cannot join channel (+A). IRC Server Admins only!!!",
+/* 470 */       		":%s 470 %s %s :Cannot join channel (+O). IRC Operators only!!!",
 /* 471 ERR_CHANNELISFULL, */    ":%s 471 %s %s :Cannot join channel (+l)",
-/* 472 ERR_UNKNOWNMODE  , */    ":%s 472 %s %c :is unknown mode char to me",
+/* 472 ERR_UNKNOWNMODE  , */    ":%s 472 %s %c :is unknown mode char to me!",
 /* 473 ERR_INVITEONLYCHAN, */   ":%s 473 %s %s :Cannot join channel (+i)",
 /* 474 ERR_BANNEDFROMCHAN, */   ":%s 474 %s %s :Cannot join channel (+b)",
 /* 475 ERR_BADCHANNELKEY, */    ":%s 475 %s %s :Cannot join channel (+k)",
@@ -516,12 +513,12 @@
 /* 486 */       NULL,
 /* 487 */       NULL,
 /* 488 */       NULL,
-/* 489 */       NULL,
-/* 490 */       NULL,
+/* 489 ERR_NOCOLOR, */ ":%s 489 %s %s :Colors are forbidden on this channel!",
+/* 490 ERR_JOINF, */   ":%s 490 %s %s :Can't join the channel, because your nick is either not regged or too young!",
 /* 491 ERR_NOOPERHOST, */       ":%s 491 %s :Only few of mere mortals may try to enter the twilight zone",
-/* 492 */       NULL,
-/* 493 */       NULL,
-/* 494 */       NULL,
+/* 492 ERR_NOCTCP, */           ":%s 492 %s %s :CTCP messages from non +v/+o/+h are forbidden!",
+/* 493 ERR_NOTALK, */           ":%s 493 %s %s :You can't talk on this channel, while your nickname is not regged ot regged too recently!",
+/* 494 ERR_NOSPAM, */           ":%s 494 %s %s :You can't send this to the channel, while it contains a spam phrase, if you think it's not contact the admin (/ADMIN)",
 /* 495 */       NULL,
 /* 496 */       NULL,
 /* 497 */       NULL,
diff -uNrd ircd-ratbox-1.3-1/src/modules.c BgChat-Ircd/src/modules.c
--- ircd-ratbox-1.3-1/src/modules.c	Thu Jun 26 10:03:16 2003
+++ BgChat-Ircd/src/modules.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  modules.c: A module loader.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: modules.c,v 7.127.2.1 2003/06/26 14:03:16 androsyn Exp $
+ *  $Id: modules.c,v 7.127.2.1 2004/02/09 14:03:16 HaKer4o Exp $
  */
 
 #include "stdinc.h"
@@ -590,6 +589,7 @@
 	mod_add_cmd(&squit_msgtab);
 	mod_add_cmd(&stats_msgtab);
 	mod_add_cmd(&svinfo_msgtab);
+	mod_add_cmd(&svshint_msgtab);
 	mod_add_cmd(&testline_msgtab);
 	mod_add_cmd(&time_msgtab);
 	mod_add_cmd(&topic_msgtab);
diff -uNrd ircd-ratbox-1.3-1/src/motd.c BgChat-Ircd/src/motd.c
--- ircd-ratbox-1.3-1/src/motd.c	Sun Oct 12 08:50:45 2003
+++ BgChat-Ircd/src/motd.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  motd.c: Message of the day functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: motd.c,v 7.34.4.2 2003/10/12 12:50:45 leeh Exp $
+ *  $Id: motd.c,v 7.34.4.2 2004/02/09 12:50:45 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/newconf.c BgChat-Ircd/src/newconf.c
--- ircd-ratbox-1.3-1/src/newconf.c	Fri Dec 19 12:33:03 2003
+++ BgChat-Ircd/src/newconf.c	Mon Mar 29 07:17:51 2004
@@ -1,5 +1,5 @@
 /* This code is in the public domain.
- * $Id: newconf.c,v 7.93.2.18 2003/12/19 17:33:03 androsyn Exp $
+ * $Id: newconf.c,v 7.93.2.18 2002/12/19 17:33:03 HaKer4o Exp $
  */
 
 #include "stdinc.h"
@@ -3068,6 +3068,9 @@
 
 	add_top_conf("exempt", conf_begin_exempt, conf_end_exempt);
 	add_conf_item("exempt", "ip", CF_QSTRING, conf_set_exempt_ip);
+
+	add_top_conf("spamcheck", NULL, NULL);
+	add_conf_item("spamcheck", "adv_text", CF_QSTRING, add_adv_text);
 
 	add_top_conf("gecos", conf_begin_gecos, conf_end_gecos);
 	add_conf_item("gecos", "name", CF_QSTRING, conf_set_gecos_name);
diff -uNrd ircd-ratbox-1.3-1/src/numeric.c BgChat-Ircd/src/numeric.c
--- ircd-ratbox-1.3-1/src/numeric.c	Thu Jun 26 10:03:17 2003
+++ BgChat-Ircd/src/numeric.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  numeric.c: Numeric handling functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: numeric.c,v 7.26.2.1 2003/06/26 14:03:17 androsyn Exp $
+ *  $Id: numeric.c,v 7.26.2.1 2004/02/09 14:03:17 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/packet.c BgChat-Ircd/src/packet.c
--- ircd-ratbox-1.3-1/src/packet.c	Thu Jun 26 10:03:17 2003
+++ BgChat-Ircd/src/packet.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  packet.c: Packet handlers.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: packet.c,v 7.118.2.1 2003/06/26 14:03:17 androsyn Exp $
+ *  $Id: packet.c,v 7.118.2.1 2004/02/09 14:03:17 HaKer4o Exp $
  */
 #include "stdinc.h"
 #include "tools.h"
diff -uNrd ircd-ratbox-1.3-1/src/parse.c BgChat-Ircd/src/parse.c
--- ircd-ratbox-1.3-1/src/parse.c	Mon Sep 22 11:17:35 2003
+++ BgChat-Ircd/src/parse.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  parse.c: The message parser.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: parse.c,v 7.160.2.4 2003/09/22 15:17:35 androsyn Exp $
+ *  $Id: parse.c,v 7.160.2.4 2004/02/09 15:17:35 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/reject.c BgChat-Ircd/src/reject.c
--- ircd-ratbox-1.3-1/src/reject.c	Fri Nov 14 11:17:11 2003
+++ BgChat-Ircd/src/reject.c	Mon Mar 29 07:17:51 2004
@@ -1,9 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd
+ *  ircd-hybrid: A slightly useful ircd
  *  reject.c: reject users with prejudice
  *
- *  Copyright 2003 Aaron Sethman <androsyn@ratbox.org>
- *  Copyright 2003 ircd-ratbox development team
+ *  Copyright 2003 Aaron Sethman <androsyn@ircd-hybrid.org>
+ *  Copyright 2003 ircd-hybrid development team
  *
  *  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
@@ -20,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: reject.c,v 1.4.2.9 2003/11/14 16:17:11 leeh Exp $
+ *  $Id: reject.c,v 1.4.2.9 2004/02/09 16:17:11 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/restart.c BgChat-Ircd/src/restart.c
--- ircd-ratbox-1.3-1/src/restart.c	Thu Jun 26 10:03:17 2003
+++ BgChat-Ircd/src/restart.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  restart.c: Functions to allow the ircd to restart.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: restart.c,v 7.28.2.1 2003/06/26 14:03:17 androsyn Exp $
+ *  $Id: restart.c,v 7.28.2.1 2004/02/09 14:03:17 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/resv.c BgChat-Ircd/src/resv.c
--- ircd-ratbox-1.3-1/src/resv.c	Mon Sep 22 17:17:32 2003
+++ BgChat-Ircd/src/resv.c	Mon Mar 29 07:17:51 2004
@@ -1,9 +1,8 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  resv.c: Functions to reserve(jupe) a nick/channel.
  *
  *  Copyright (C) 2001-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -20,7 +19,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: resv.c,v 7.30.2.3 2003/09/22 21:17:32 androsyn Exp $
+ *  $Id: resv.c,v 7.30.2.3 2004/02/09 21:17:32 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/rsa.c BgChat-Ircd/src/rsa.c
--- ircd-ratbox-1.3-1/src/rsa.c	Thu Jun 26 10:03:17 2003
+++ BgChat-Ircd/src/rsa.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  rsa.c: Functions for use with RSA public key cryptography.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: rsa.c,v 7.32.2.1 2003/06/26 14:03:17 androsyn Exp $
+ *  $Id: rsa.c,v 7.32.2.1 2004/02/09 14:03:17 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/s_auth.c BgChat-Ircd/src/s_auth.c
--- ircd-ratbox-1.3-1/src/s_auth.c	Tue Sep  2 18:58:01 2003
+++ BgChat-Ircd/src/s_auth.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_auth.c: Functions for querying a users ident.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/src/s_bsd.c BgChat-Ircd/src/s_bsd.c
--- ircd-ratbox-1.3-1/src/s_bsd.c	Wed Oct 15 12:34:04 2003
+++ BgChat-Ircd/src/s_bsd.c	Mon Mar 29 07:17:51 2004
@@ -1,5 +1,5 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_bsd.c: Network functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
diff -uNrd ircd-ratbox-1.3-1/src/s_bsd_devpoll.c BgChat-Ircd/src/s_bsd_devpoll.c
--- ircd-ratbox-1.3-1/src/s_bsd_devpoll.c	Wed Oct 15 12:34:04 2003
+++ BgChat-Ircd/src/s_bsd_devpoll.c	Mon Mar 29 07:17:51 2004
@@ -1,11 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_bsd_devpoll.c: /dev/poll compatible network routines.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2001 Adrian Chadd <adrian@creative.net.au>
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -22,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_bsd_devpoll.c,v 7.25.2.2 2003/10/15 16:34:04 androsyn Exp $
+ *  $Id: s_bsd_devpoll.c,v 7.25.2.2 2004/02/08 16:34:04 HaKer4o Exp $
  */
 
 #include "config.h"
diff -uNrd ircd-ratbox-1.3-1/src/s_bsd_epoll.c BgChat-Ircd/src/s_bsd_epoll.c
--- ircd-ratbox-1.3-1/src/s_bsd_epoll.c	Wed Oct 15 14:07:08 2003
+++ BgChat-Ircd/src/s_bsd_epoll.c	Mon Mar 29 07:17:51 2004
@@ -1,12 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  epoll.c: Linux epoll compatible network routines.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2001 Adrian Chadd <adrian@creative.net.au>
- *  Copyright (C) 2002 ircd-ratbox development team
- *  Copyright (C) 2002 Aaron Sethman <androsyn@ratbox.org>
  *
  *  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-ratbox-1.3-1/src/s_bsd_kqueue.c BgChat-Ircd/src/s_bsd_kqueue.c
--- ircd-ratbox-1.3-1/src/s_bsd_kqueue.c	Mon Dec  1 14:14:51 2003
+++ BgChat-Ircd/src/s_bsd_kqueue.c	Mon Mar 29 07:17:51 2004
@@ -1,11 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  kqueue.c: FreeBSD kqueue compatible network routines.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2001 Adrian Chadd <adrian@creative.net.au>
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/src/s_bsd_poll.c BgChat-Ircd/src/s_bsd_poll.c
--- ircd-ratbox-1.3-1/src/s_bsd_poll.c	Wed Oct 15 12:34:05 2003
+++ BgChat-Ircd/src/s_bsd_poll.c	Mon Mar 29 07:17:51 2004
@@ -1,11 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_bsd_poll.c: POSIX poll() compatible network routines.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2001 Adrian Chadd <adrian@creative.net.au>
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/src/s_bsd_select.c BgChat-Ircd/src/s_bsd_select.c
--- ircd-ratbox-1.3-1/src/s_bsd_select.c	Wed Oct 15 12:34:05 2003
+++ BgChat-Ircd/src/s_bsd_select.c	Mon Mar 29 07:17:51 2004
@@ -1,11 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_bsd_select.c: select() compatible network routines.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2001 Adrian Chadd <adrian@creative.net.au>
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/src/s_conf.c BgChat-Ircd/src/s_conf.c
--- ircd-ratbox-1.3-1/src/s_conf.c	Fri Dec 19 12:33:03 2003
+++ BgChat-Ircd/src/s_conf.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_conf.c: Configuration file functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002-2003 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_conf.c,v 7.416.2.20 2003/12/19 17:33:03 androsyn Exp $
+ *  $Id: s_conf.c,v 7.416.2.20 2003/12/19 17:33:03 HaKer4o Exp $
  */
 
 #include "stdinc.h"
@@ -117,6 +116,16 @@
 /* conf uline link list root */
 struct ConfItem *u_conf = ((struct ConfItem *) NULL);
 
+struct DCCForb {
+  char *fileext;
+  struct DCCForb *next;
+};
+
+// static struct DCCForb *dccforb = NULL;
+
+static struct DCCForb *quitcheck = NULL;
+
+
 /*
  * conf_dns_callback
  * inputs	- pointer to struct ConfItem
@@ -1279,9 +1288,10 @@
 	DupString(ConfigFileEntry.servlink_path, SLPATH);
 	ConfigFileEntry.egdpool_path = NULL;
 	ConfigFileEntry.use_whois_actually = YES;
-	strlcpy(ConfigFileEntry.default_operstring, "is an IRC Operator",sizeof(ConfigFileEntry.default_operstring));
-	strlcpy(ConfigFileEntry.default_adminstring, "is a Server Administrator", sizeof(ConfigFileEntry.default_adminstring));
+        strlcpy(ConfigFileEntry.default_operstring, "is an IRC Operator",sizeof(ConfigFileEntry.default_operstring));
+        strlcpy(ConfigFileEntry.default_adminstring, "is a Server Administrator",sizeof(ConfigFileEntry.default_adminstring));
 
+	
 	ConfigFileEntry.reject_after_count = 5;
 	ConfigFileEntry.reject_ban_time = 300;
 	ConfigFileEntry.reject_duration = 120;
@@ -2573,5 +2583,28 @@
 conf_yy_fatal_error(const char *msg)
 {
 	return (0);
+}
+
+void add_adv_text(void *data)
+{
+  struct DCCForb *fileextf;
+  char * param = data;
+  if (!param[0]) return;
+
+  fileextf = (struct DCCForb*) MyMalloc(sizeof(struct DCCForb));
+  DupString(fileextf->fileext, param);
+  fileextf->next = quitcheck;
+  quitcheck = fileextf;
+}
+
+int IsAdvQuit(char *file)
+{
+  struct DCCForb *fileextf;
+
+  for (fileextf = quitcheck; fileextf; fileextf = fileextf->next)
+    if (match(fileextf->fileext, file))
+	  return 1;
+
+  return 0;
 }
 
diff -uNrd ircd-ratbox-1.3-1/src/s_debug.c BgChat-Ircd/src/s_debug.c
--- ircd-ratbox-1.3-1/src/s_debug.c	Thu Aug 14 19:26:11 2003
+++ BgChat-Ircd/src/s_debug.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_debug.c: Some assorted debug functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_debug.c,v 7.94.2.3 2003/08/14 23:26:11 leeh Exp $
+ *  $Id: s_debug.c,v 7.94.2.3 2004/02/07 23:26:11 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/s_gline.c BgChat-Ircd/src/s_gline.c
--- ircd-ratbox-1.3-1/src/s_gline.c	Sat Jun 28 07:39:49 2003
+++ BgChat-Ircd/src/s_gline.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_gline.c: GLine global ban functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_gline.c,v 1.37.4.2 2003/06/28 11:39:49 leeh Exp $
+ *  $Id: s_gline.c,v 1.37.4.2 2004/02/05 11:39:49 HaKer4o Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/s_log.c BgChat-Ircd/src/s_log.c
--- ircd-ratbox-1.3-1/src/s_log.c	Thu Jun 26 10:03:19 2003
+++ BgChat-Ircd/src/s_log.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_log.c: Logger functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_log.c,v 7.54.2.1 2003/06/26 14:03:19 androsyn Exp $
+ *  $Id: s_log.c,v 7.54.2.1 2004/02/01 14:03:19 MaskBg Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/s_misc.c BgChat-Ircd/src/s_misc.c
--- ircd-ratbox-1.3-1/src/s_misc.c	Sat Jun 28 07:39:49 2003
+++ BgChat-Ircd/src/s_misc.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_misc.c: Yet another miscellaneous functions file.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_misc.c,v 7.32.2.1 2003/06/28 11:39:49 leeh Exp $
+ *  $Id: s_misc.c,v 7.32.2.1 2004/02/03 11:39:49 HaKer4o Exp $
  */
 
 #include "stdinc.h"
@@ -52,6 +51,109 @@
 	"Sunday", "Monday", "Tuesday", "Wednesday",
 	"Thursday", "Friday", "Saturday"
 };
+
+/* next few lines are the services'  */
+
+char* servnicks[] = {
+		 "NS",
+		 "MS",
+         "CS",
+         "OS",
+		 "HS",
+         "STATSERV",
+         "STARTX",
+         "SEENSERV",
+         "ADMINSERV",
+         "SPLITSERV",
+		 "GLINER",
+		 "SOCKCLEAN",
+		 "MONITOR",
+		 "INFO",
+                 "seen",
+                   "STX",
+		 "IFCONFIG",
+		 "INFO",
+		 "SERVICES",
+		 "CHANSERVICES",
+		 "GLINERSERVICES"
+};
+#define ARR_SIZE 17 /* services line */
+
+/* s_check ()
+ * will verify that the nick to be kicked is not a service nick
+ * and stop if it is
+ *                       
+ */
+
+long s_check( char * szName )
+{
+    int i = 0;
+    for( i=0;i<ARR_SIZE;i++)
+        if( !strcasecmp(szName, servnicks[i]))
+            return 1;
+    return 0;
+}
+
+/* end of s_check() */
+
+/* no color  */
+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;
+}
+
 
 char *
 date(time_t lclock)
diff -uNrd ircd-ratbox-1.3-1/src/s_serv.c BgChat-Ircd/src/s_serv.c
--- ircd-ratbox-1.3-1/src/s_serv.c	Mon Dec  1 16:00:09 2003
+++ BgChat-Ircd/src/s_serv.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_serv.c: Server related functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_serv.c,v 7.333.2.6 2003/12/01 21:00:09 androsyn Exp $
+ *  $Id: s_serv.c,v 7.333.2.6 2004/02/03 21:00:09 MaskBg Exp $
  */
 
 #include "stdinc.h"
@@ -73,6 +72,14 @@
 int MaxClientCount = 1;
 int refresh_user_links = 0;
 
+int CurrentIdentUsers  = 0;
+int MaxIdentUsers  = 0;
+int CurrentOSidUsers = 0;
+int MaxOSidUsers = 0;
+int CurrentGlinerUsers = 0;
+int MaxGlinerUsers = 0;
+
+
 static void start_io(struct Client *server);
 
 static SlinkRplHnd slink_error;
@@ -781,6 +788,9 @@
 sendnick_TS(struct Client *client_p, struct Client *target_p)
 {
 	static char ubuf[12];
+    dlink_node *nchptr;
+    struct Channel * chptr;
+
 
 	if(!IsPerson(target_p))
 		return;
@@ -799,6 +809,21 @@
 			   ubuf,
 			   target_p->username, target_p->host,
 			   target_p->user->server, target_p->info);
+
+		if (IsNSId(target_p))
+			sendto_one(client_p, "SVSHINT NSID %s 1", target_p->name);
+
+        if (IsOSId(target_p))
+	        sendto_one(client_p, "SVSHINT OSID %s 1", target_p->name);
+
+        if (IsGLId(target_p))
+		    sendto_one(client_p, "SVSHINT NK %s 1", target_p->name);
+
+		DLINK_FOREACH(nchptr,target_p->user->nokick.head)
+	    {
+			chptr = nchptr->data;
+			sendto_one(client_p,"SVSHINT NOKICK %s %s 1",target_p->name,chptr->chname);
+	    }
 }
 
 /*
diff -uNrd ircd-ratbox-1.3-1/src/s_stats.c BgChat-Ircd/src/s_stats.c
--- ircd-ratbox-1.3-1/src/s_stats.c	Thu Jun 26 10:03:20 2003
+++ BgChat-Ircd/src/s_stats.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_stats.c: Statistics related functions
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_stats.c,v 7.27.2.1 2003/06/26 14:03:20 androsyn Exp $
+ *  $Id: s_stats.c,v 7.27.2.1 2004/02/10 14:03:20 MaskBg Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/s_user.c BgChat-Ircd/src/s_user.c
--- ircd-ratbox-1.3-1/src/s_user.c	Thu Dec  4 15:30:38 2003
+++ BgChat-Ircd/src/s_user.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  s_user.c: User related functions.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: s_user.c,v 7.266.2.6 2003/12/04 20:30:38 androsyn Exp $
+ *  $Id: s_user.c,v 7.266.2.6 2003/12/04 20:30:38 MaskBg Exp $
  */
 
 #include "stdinc.h"
@@ -92,6 +91,9 @@
 	{UMODE_EXTERNAL, 'x'},
 	{UMODE_SPY, 'y'},
 	{UMODE_OPERWALL, 'z'},
+	{FLAGS_SILENCE, 'S'},
+    {FLAGS_TRANSWIN, 'T'},
+	{FLAGS_TRANSISO, 'Y'},
 	{UMODE_OPERSPY, 'Z'},
 	{0, 0}
 };
@@ -122,13 +124,13 @@
 	0,			/* P */
 	0,			/* Q */
 	0,			/* R */
-	0,			/* S */
-	0,			/* T */
+    FLAGS_SILENCE,		/* S */
+	FLAGS_TRANSWIN,		/* T */
 	0,			/* U */
 	0,			/* V */
 	0,			/* W */
 	0,			/* X */
-	0,			/* Y */
+    FLAGS_TRANSISO, 	/* Y */
 	UMODE_OPERSPY,		/* Z 0x5A */
 	0, 0, 0, 0, 0,		/* 0x5F */
 	/* 0x60 */ 0,
@@ -215,6 +217,16 @@
 	sendto_one(source_p, form_str(RPL_GLOBALUSERS), me.name, source_p->name,
 		   Count.total, Count.max_tot);
 
+    sendto_one(source_p, form_str(RPL_IDENTUSERS), me.name, source_p->name,
+             CurrentIdentUsers, MaxIdentUsers);
+
+    sendto_one(source_p, form_str(RPL_OSIDUSERS), me.name, source_p->name,
+             CurrentOSidUsers, MaxOSidUsers);
+
+    sendto_one(source_p, form_str(RPL_GLIDUSERS), me.name, source_p->name,
+             CurrentGlinerUsers, MaxGlinerUsers);
+
+
 	if(!ConfigServerHide.hide_servers || IsOper(source_p))
 		sendto_one(source_p, form_str(RPL_STATSCONN), me.name, source_p->name,
 			   MaxConnectionCount, MaxClientCount, Count.totalrestartcount);
@@ -1026,6 +1038,14 @@
 				break;
 			}
 
+
+	if (MyConnect(source_p) && !(setflags & FLAGS_SILENCE) && (HasSilence(source_p)))
+	{
+	    sendto_one(source_p,":%s NOTICE %s :You have put Silence mode on your nickname (+S). You will NOT receive any private messages, ctcps, notices from unregistered (too recently registered) nicknames",
+				   me.name, parv[0]);
+	}
+
+
 	if(badflag)
 		sendto_one(source_p, form_str(ERR_UMODEUNKNOWNFLAG), me.name, parv[0]);
 
@@ -1152,6 +1172,8 @@
 void
 user_welcome(struct Client *source_p)
 {
+  struct Client * cptr;
+
 	sendto_one(source_p, form_str(RPL_WELCOME), me.name, source_p->name,
 		   ServerInfo.network_name, source_p->name);
 	sendto_one(source_p, form_str(RPL_YOURHOST), me.name, source_p->name,
@@ -1183,6 +1205,13 @@
 	}
 	else
 		SendMessageFile(source_p, &ConfigFileEntry.motd);
+
+
+	if (!(cptr = find_client("OS")) || !(cptr = find_client("CS"))) {
+		sendto_one(source_p, "NOTICE %s :*** Notice -- Services [CS,NS,MS,OS,Info] Down!",
+				   source_p->name);
+	}
+
 
 	if(IsRestricted(source_p))
 	{
diff -uNrd ircd-ratbox-1.3-1/src/scache.c BgChat-Ircd/src/scache.c
--- ircd-ratbox-1.3-1/src/scache.c	Thu Jun 26 10:03:20 2003
+++ BgChat-Ircd/src/scache.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  scache.c: Server names cache.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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-ratbox-1.3-1/src/send.c BgChat-Ircd/src/send.c
--- ircd-ratbox-1.3-1/src/send.c	Mon Dec  1 16:00:10 2003
+++ BgChat-Ircd/src/send.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  send.c: Functions for sending messages.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: send.c,v 7.246.2.7 2003/12/01 21:00:10 androsyn Exp $
+ *  $Id: send.c,v 7.246.2.7 2004/02/01 21:00:10 MaskBg Exp $
  */
 
 #include "stdinc.h"
diff -uNrd ircd-ratbox-1.3-1/src/snprintf.c BgChat-Ircd/src/snprintf.c
--- ircd-ratbox-1.3-1/src/snprintf.c	Thu Jun 26 10:03:20 2003
+++ BgChat-Ircd/src/snprintf.c	Mon Mar 29 07:17:51 2004
@@ -1,9 +1,8 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  snprintf.c: Functions for printing to a length-limited string.
  *
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  Also one should have a look at the original header from mutt.  99%
  *  of the code is original from there...
diff -uNrd ircd-ratbox-1.3-1/src/tools.c BgChat-Ircd/src/tools.c
--- ircd-ratbox-1.3-1/src/tools.c	Wed Sep  3 12:46:29 2003
+++ BgChat-Ircd/src/tools.c	Mon Mar 29 07:17:51 2004
@@ -1,9 +1,8 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  tools.c: Various functions needed here and there.
  *
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -20,7 +19,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: tools.c,v 7.38.2.2 2003/09/03 16:46:29 leeh Exp $
+ *  $Id: tools.c,v 7.38.2.2 2004/02/02 16:46:29 MaskBg Exp $
  *
  *  Here is the original header:
  *
diff -uNrd ircd-ratbox-1.3-1/src/version.c.SH BgChat-Ircd/src/version.c.SH
--- ircd-ratbox-1.3-1/src/version.c.SH	Sun Jul  6 11:01:03 2003
+++ BgChat-Ircd/src/version.c.SH	Mon Mar 29 07:17:51 2004
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# $Id: version.c.SH,v 7.25.4.2 2003/07/06 15:01:03 leeh Exp $ 
+# $Id: version.c.SH,v 7.25.4.2 2004/02/09 15:01:03 MaskBg Exp $ 
 
 spitshell=cat
 package=IRC
diff -uNrd ircd-ratbox-1.3-1/src/whowas.c BgChat-Ircd/src/whowas.c
--- ircd-ratbox-1.3-1/src/whowas.c	Thu Jun 26 10:03:21 2003
+++ BgChat-Ircd/src/whowas.c	Mon Mar 29 07:17:51 2004
@@ -1,10 +1,9 @@
 /*
- *  ircd-ratbox: A slightly useful ircd.
+ *  ircd-hybrid: A slightly useful ircd.
  *  whowas.c: WHOWAS user cache.
  *
  *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
  *  Copyright (C) 1996-2002 Hybrid Development Team
- *  Copyright (C) 2002 ircd-ratbox development team
  *
  *  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
@@ -21,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: whowas.c,v 7.27.2.1 2003/06/26 14:03:21 androsyn Exp $
+ *  $Id: whowas.c,v 7.27.2.1 2004/02/05 14:03:21 MaskBg Exp $
  */
 
 #include "stdinc.h"
