==================
=Revision History=
==================
!!! = Changed
+++ = Added
--- = Removed

FEFr7.0
!!! Upgraded to ircd-ratbox 2.2.0.
!!! Fixed adding G: lines from opers (not services).
!!! Fixed capture
!!! Replaced all BSD-style u_int*_t types w/ POSIX-style uint*_t types.
!!! exceed_limits flag now exempts from clone checking code.
+++ Added opers_see_hidden support to /NAMES.

FEFr6.8
!!! Upgraded to ircd-ratbox 2.1.7.
!!! Changed FREEZE to CAPTURE to retain compatibility w/ ircd-hybrid.
+++ Hard-coded show_first_chan usercount to INT_MAX.

FEFr6.7
!!! Upgraded to ircd-ratbox 2.0.11.
!!! Increased default of max_bans from 50 to 300.
!!! For admins that don't like the idea of having a max_bans setting, setting
    it to 0 will now completely disable the function.
!!! Added 127.0.0.1 (loopback) vhost to default .conf file, so we're all huggy
    feely with ourselves.
!!! Changed default of maxclients from 176 to 944.  If you're still running an
    ancient OS that has a FD limit of 256, you MUST add --with-maxclients=176 to
    your configure line.
+++ Added S:'d FREEZE command to 'freeeze' a user's connection.  Requested by
    Kitsune.
+++ Added show_first_chan option to channel{} block to force a certain channel
    to always appear first in the /LIST output.  This can be used to help bait
    honeypots.  Requested by Kitsune.

FEFr6.6e
!!! Upgraded to ircd-ratbox 2.0.9.  This should fix any AMD64 core dumps.

FEFr6.6d
!!! Applied minor patch from ratbox CVS involving xlines/resvs & clustering.
!!! Fixed +c showing up in /mode.
!!! Fixed /list 0 & opers_see_* for mIRC opers.
!!! Treat JOINs from S: users w/o a TS as a SJOIN with the current channel TS.

FEFr6.6c
!!! Upgraded to ircd-ratbox 2.0.8.

FEFr6.6b
!!! Upgraded to ircd-ratbox 2.0.7.
!!! Imported crasher fix from ratbox CVS.

FEFr6.6
!!! Minor fixes from ratbox CVS.
!!! HACK messages are now not sent for server ops, server kicks, or forced joins
    involving +H channels.

FEFr6.5a
!!! Brought in crasher fix from ratbox CVS related to opers adding klines.
!!! Fixed +z messages to show non-admin error instead of non-chanop.
--- Removed ratbox-unstable code that somehow got into ratbox-stable.

FEFr6.5
!!! Ported over to ircd-ratbox 2.0.
!!! Added bunch of casts due to adns char/unsigned char lameness.
+++ Added +z to ISSUPPORTED numeric.
+++ Added +H channel mode that only admins can set. This exempts channels from
    opers_see_* code.
--- Really dropped STOPIC this time. STOPIC is dead. Long live TB.
--- Removed ratbox-services code since it's not as flexible as ours.

FEFr6.4c
+++ TOPIC from servers now propogate to other servers.
--- Removed worthless HIDEOPS code.

FEFr6.4b
!!! Updated ratbox CVS snapshot.
!!! Fixed FEF_ONLY.
!!! Fixed UNGLINEs from services.

FEFr6.4a
--- Completely removed topicburst from the .conf file. We always sync
    topics.  It's up to the ircd to figure out to use STOPIC or TB.

FEFr6.4
!!! Upgraded base code to ratbox-1.5-3.
!!! Updated m_snick() to ratbox-1.5.x module format to fix SIGSEGV.
+++ Readded STOPIC support for non-CAP_TB servers.

FEFr6.3a
!!! Rolled ms_sjoin() code back.

FEFr6.3
!!! Upgraded base code to ratbox-1.5-2.
!!! Merged opers_see_invis and opers_see_priv into one opers_see_hidden.
!!! Fixed opers_see_hidden not working completely in /who requests.
!!! Revered UNGLINE back to stock ratbox code (aka only remove the first
    matching GLINE).
!!! A few minor channel mode +c fixes.
!!! Backported ms_sjoin() cleanup from ratbox-2.
!!! Fixed a crasher when trying to use the server_can_op hack on a channel that
    doesn't exist.
+++ Added channel mode +z.  This is can only be set via services, or the forced
    join hack (and only -z'd from the user himself).  +z keeps a user from
    getting kicked or deop'd in a channel.
!!! Made servlink/io.c C99 compliant by changing to uint32_t.

FEFr6.2
!!! Upgraded base code to ratbox-1.4-2 final.  Main change is a split_delay
    fix.

FEFr6.1
!!! Upgraded base code to ratbox-1.4-1 (actually, a CVS copy from
    20040421, which includes a mIRC fix).
!!! Fixed S:'d /kill for real this time.

FEFr6a
!!! Fixed problem where S:'d /kills can core the server.

FEFr6
!!! Upgraded base code to ircd-ratbox-1.3-1 (based off of hybrid 7.0-STABLE).
--- Removed STOPIC.  Replaced w/ hybrid's TBURST.
--- Removed WHOIS_SIGNON_TIME.  Deprecated by hybrid-7.0.
+++ UNGLINEs from services are now propogated.
!!! Back-ported some fixes from ircd-ratbox STABLE CVS.
!!! Added stats spy modules from contrib/.
NOTE: convertconf & convertilines DO work, but I recommend that you rebuild
      your ircd.conf from hand using example.conf as a guide.
NOTE: MAKE SURE you edit the modules path in your ircd.conf!

FEFr5.4
!!! Upgraded base code to hybrid-6.4.1.
!!! On SNICK, just truncate the nick if it's > then NICKLEN, don't kill it.
!!! Fixed bug where topic user could be cut-off by one char.
--- Removed REMOTE_WHOIS. This has been superceeded by SHOW_REMOTE_WHOIS.
!!! Instead of KILLing bad or duplicate nicks, SNICK just now ignores them.
    It is up to the sending service to check for dupes before it sends SNICK.

FEFr5.3
!!! Fixed STOPIC bug found by klik.
+++ The log file (if enabled) will not be closed and reopened when the server
    is rehashed. (Requested by Ryan)

FEFr5.2
!!! Fixed ANTI_IP_SPOOF that I broke *sigh*.
!!! Cleaned-up hybrid identd code.
+++ Added UNGLINE propogation for services, so services can globally UNGLINE
    somebody.
!!! Changed default GLINE time from 12 hours to 72.
!!! Hard-coded GLINES, so that services can use it globally.
!!! Removed NO_FAKE_GLINES code so that services can remove glines globally.
!!! Removed IGNORE_BOGUS_TS code so TS won't get desynched on the network.

FEFr5.1
!!! Upgraded base code to hybrid-6.3.1
!!! Hard-coded FEF_ONLY.  We are always FEF-only now.
!!! Hard-coded TS5.  We always do TS5.
!!! Hard-coded TS5_ONLY.  I'm a bastard :)
!!! Hard-coded BAN_INFO.  Services needs this.
!!! Hard-coded USE_UH.  Services needs this.
+++ n!u@h is now used for TOPICs instead of just nicks.
!!! Finally fixed ANTI_IP_SPOOF code to not send negative ping values
!!! Fixed problem with services adding G: lines.
--- Removed 'normal' messages.tab and replaced with CUSTOM_ERR version. It's
    more humorous :)

FEFr5
!!! Upgraded base code to hybrid-6.2
--- Removed NETNAME, replaced by hybrid's NETWORK_NAME
--- Removed HYBRID_ONLY, hybrid-6.2 is effectivly 'HYBRID_ONLY'
!!! Changed name of server back to +FEF
!!! Changed FDF_ONLY to FEF_ONLY. The code still passes 'FDF' however, so that
    it will be backwards compatible.
!!! Cleaned-up #ifdef's so that the code will compile with gcc 3.0.1

FEFr4.7 (FDFr1)
!!! Upgrade base code to hybrid-6.0
!!! VERY IMPORTANT: U: lines are now S: lines!!!
+++ Added FDF_ONLY: Allows connections only from other FDFr5b1 servers.
+++ Added SNICK Support: Services can now force nick changes.
+++ Added DalNet's +c channel mode. Channels that are +c'd will not allow
    mIRC color or ANSI color to be sent to them.
--- Removed K_LINES_OPER_ONLY. hybrid-6 will now show non-ops any K:
    lines that match their hostmask.  This is better.
!!! The server was ignoring MODE changes from servers, which was breaking
    INU_SERV_CAN_OP. Fixed.
+++ Added support for JB_SERV_CAN_KICK.
+++ Added +FDF config.h settings to /info reply.
!!! Fixed autoconf so that it defaults to building a stripped binary.
+++ Readded the UnderNet bquiet patch.
!!! Fixed identd bug from hybrid-6 code change.
!!! Fixed OPERS_SEE_INVISIBLE code when doing a /list. This was due
    to cloning of code in hybrid-6's m_list().
!!! Fixed the anti-DNS spoofing code (aka IP in /whois). Also changed it
    so that only IRCops can see the IP. This works better with I-line
    spoofing.
!!! Fixed the HACK mesage when people use INU_IGNORE_BANS.
!!! Fixed REMOTE_WHOIS
+++ If a user doesn't have identd and a '-' in their I: line, then the server
    will send a NOTICE explaining why they have a '~' in their username.
!!! Moved opers.txt into the DPATH so that /quote help will work.
!!! Bumped MAX_BUFFERS down to 10 from 60.
!!! Changed default config to NO_JOIN_ON_SPLIT_SIMPLE instead of
    NO_OPS_ON_SPLIT. Hopefully not letting people JOIN channels on
    split servers will remove the reason to DoS servers.
--- Removed code to allow people to netsplit hack ops on channels
    that do not have ops. This is to reduce DoS value.
+++ Added irc.best.net patch to show port numbers in unauthorized client
    connection messages.
!!! Hub servers should read the "Important" section below.
+++ Added INFO_OPER_ONLY in order to only allow /info requests from
    IRC Ops.
!!! Changed GLINE code so that only 2 opers are required, not 3.
!!! Changed GLINE code so that GLINEs from S: lined servers are added
    immediately.
!!! Disabled DEBUG mode, which should speed-up the server.
!!! Offical configure command-line for gcc users (using sh,ksh,bash):
    CC="gcc" CFLAGS="-O6 -fomit-frame-pointer -pipe -w -s" LDFLAGS="-s" \
    ./configure
!!! Fixed AlcServ/ErisServ by readding IRCII_KLUDGE code
!!! Fixed bug were remote nicknames trying to introduce servers would core
    the server.
+++ IDLE_RESET - Lets you /quote IDLE to set your idle time. -Runt
--- Removed SHOW_QUIT. This has been superceeded by WINTRHAWK

FEFr4.6
+++ Readded the old inu+JB patch.

FEFr4.5a (JailBird)
!!! Reverted the ANTI_IP_SPOOF PINGs back to signed due to atoi().

FEFr4.5 (JailBird)
!!! Updated base code to hybrid-5.3p7.
+++ Added MacOSX compatibility patch by cybin. (integrated in hybrid-6)
!!! Changed ANTI_IP_SPOOF PING to an unsigned (positive) number.
!!! Fixed problem with the stdargs vsendto_one() function sending 550-byte
    packets. (integrated in hybrid-6)
!!! Renamed existing doc/example.conf to doc/example.conf.bill and wrote
    a new simplistic doc/exmaple.conf.
!!! Fixed configure script to automatically setup CC/CFLAGS/IRCDLIBS.  This
    should fix the "-lcrypt -lresolv" crap. (superseded in hybrid-6)

FEFr4.4 (JailBird)
!!! Fixed proc_answer() code in res.c so that it is now portable.
    (integrated in hybrid-6)
!!! Cleaned-up m_stopic()
!!! Fixed ANTI_IP_SPOOF
+++ Readded AWAY propogation
!!! Added NO_OPER_FLOOD code to the flud code (integrated in hybrid-6.3.1,
    I THINK)
!!! Upgraded base code to hybrid-5.3p6
!!! Fixed bug in configure script that prevented it from detecting
    what kind of non-blocking code to use on Linux glibc2 systems.
    This caused a blocking version to be built, which caused "lockups".
    (integrated in hybrid-6)

FEFr4.3a (JailBird) (oops!)
!!! hybrid-5.3p4 redid m_topic(), which killed our U: code.

FEFr4.3 (JailBird) (watch the bloatware continue!)
+++ Readded SHOW_QUIT - Shows the client's quit reason.
+++ identd-replies of '~' are not longer considered valid.
    (superseded in hybrid-6.3.1)
+++ The code will now compile cleanly on an Alpha.
    (integrated in hybrid-6)
!!! Updated base code to hybrid-5.3p4
--- Removed NO_REMOTE_INFO, obseleted by 5.3p4

FEFr4.2 (JailBird) (bug fixes galore!)
!!! Updated base code to hybrid-5.3p2
+++ Added NULL checking in m_stopic() to prevent malicious server attacks.
+++ Readded the varargs code, yet changed it to the ANSIfied 'stdargs' in the
    process. Stdargs is now required, which shouldn't be a problem.
    (integrated in hybrid-6)
!!! Replaced the EFnet ircsprintf.c with UnderNet's. It's faster and more
    flexible. (integrated in hybrid-6)
!!! Fixed Taner's ugly oper UMODES code. (integrated in hybrid-6.3.1, I THINK)
!!! Fixed problem with ircd overflowing when looking up access for long hosts.
    (integrated in hybrid-6.3.1, I THINK)
!!! Reverted I: lines to our old th-style lines. The server will now ALWAYS
    check identd, but will only complain/reject if you have a '@' in the I:
    lines (aka *@*).  This means you can allow non-identd users by adding a
    I: line for them without the @.  ALL DEFAULT I: LINES SHOULD USE '*@*'!
--- Removed FOLLOW_IDENT_RFC because of above change.  identd is always checked
    now.
--- Removed DO_IDENTD for the same reason. :)
+++ Added NO_REMOTE_INFO to disable INFO requests by remote clients. This helps
    stop remote clients from splitting servers by flooding remote servers with
    INFO requests.
--- Removed the code in channel.c that blasted the TS on a channel when a non-U:
    server sent a +o MODE.  This is unneeded as the only non-TS servers on our
    nets are services, which are U:'d. Only a rogue server should ever do this,
    and if it does, the hacker did a bad job in coding it :).
    (superseded in hybrid-6.3.1)
!!! Fixed anti-DNS spoofing /whois code (aka the IP in /whois).
!!! Changed m_topic so users can see topics on non-secret channels even if
    they're not in the channel (they can already see it in /list!)
+++ Added OPERS_SEE_TOPIC, which lets Opers see the topics in any channel.
--- Removed OPERWALL command. It's unneeded and was requested by Dianora :).
--- Removed KLINE_CLONES option. It simply does NOT work with the UnderNet
    clone code that we use.  This is a job for the tcm anyways.
--- Removed NO_RED_MODES. This "feature" could cause channels to become
    desynched.

FEFr4.1: (JailBird) (Nothing really added, so we just added .1 :) )
!!! Upgraded the base code from +hybrid-5 to +hybrid-5.3
    See README.hybrid for those changes.
--- ANTI_IP_SPOOF was broke in hyb5.3. DON'T USE!
!!! Fixed buffer overrun in m_stopic.
!!! Moved RES_SRC to main Makefile.
!!! Fixed WHOIS_SIGNON_TIME code.
!!! Cleaned up all gcc warnings.
+++ Added fixes from FEFr4-withfixes.
!!! Optimized for FEFnet.

Changes made from +th FEFr4 to +hybrid-5 FEFr4: (JailBird)
!!! Replaced the +CSr25 CLONE_CHECK code with the UnderNet CHECK_CLONE code.
!!! Reinstated the *@* I: code.  PLEASE USE *@* IN YOUR I: LINES!

FEFr4: (JailBird)
+++ IDENTD_ONLY; Reject any users not running identd if the I: line calls
    for it. (Taken from +CSr30) (moved to I: lines in hybrid-6.3.1)
+++ NO_RED_MODES; Reject any duplicate channel modes. (Taken from +CSr30)
+++ IDLE_CHECK; Reject any idle clients. (Taken from +CSr30)
    (integrated in hybrid-6.3.1)
+++ CHECK_CLONE; Reject any clonebots. (Taken from ircu)
+++ REMOTE_WHOIS; Shows if a remote user /wii's you, while OPERd.
+++ KLINE_CLONES; Will automatically K: line any clonebotters.

Changes made from +th FEFr4wb5 to +hybrid-5 FEFr4wb5: (JailBird)
+++ HYBRID_ONLY; allow links from +hybrid servers only.
+++ NETNAME; Set the name of the network in the welcome message.

FEFr4wb5 (wide-beta 5): (Runt/JailBird)
+++ WHOIS_SIGNON_TIME; shows when a user signed on in /whois. (Runt)
    (deprecated by hybrid-7)
+++ OPERS_SEE_INVISIBLE; allows opers to see +i users. (Runt)
+++ OPERS_SEE_PRIV; allows opers to see +s/+p chans. (Runt)
+++ DalNet Q:'s added. (JailBird) (integrated in hybrid-6.3.1)
+++ STOPIC; TS-synched channel TOPICs. (JailBird) (replaced w/ TBURST from
    contrib).
!!! U-lined servers can now send to channels, regardless of modes. (JailBird)

FEFr3: (JailBird)
!!! TOPIC lengths changed from 80 bytes to 255.
+++ Added/Enhanced DalNet U:'s added

FEFr2: (Runt)
!!! Nothing changed in the hybrid-5 release of FEFr2.

FEFr1: (Runt)
!!! The length of nicks allowed changed from 9 to 15.
!!! Each channel is now allowed 50 bans, instead of 25.
!!! The default config.h value for the max. channels per user is now 20.
+++ Banned users cannot talk. (UnderNet bquiet patch)

===========
=Important=
===========

Stated again:
NOTE: convertconf & convertilines DO work, but I recommend that you rebuild
      your ircd.conf from hand using example.conf as a guide.
NOTE: MAKE SURE you edit the modules path in your ircd.conf!

If you are running a *HUB SERVER*

MAKE SURE YOU CHANGE THE SPLIT SETTINGS IN YOUR IRCD.CONF!

SPLIT_SMALLNET_SIZE should be roughly the number of servers on your network,
minus a couple as a buffer.

SPLIT_SMALLNET_USER_SIZE should be the LOWEST number of users seem at any
given time on the network, minus about 10-20 or so as a buffer.

Also make sure that hub is set to 'yes' in your ircd.conf!

==================
=Support Channels=
==================

On FEFnet: Join #continuum
On FDFnet: Join #FDFworld

=========
=Authors=
=========

The authors of the +FEF server are:

    John "Runt" Leslie         - john@stf.org
    Dustin "JailBird" Marquess - jailbird@alcatraz.fdf.net
    Steve "inubus" White       - subuni@users.sourceforge.net

=========
=Credits=
=========

We would like to thank the original ircd team for their work.  We would also
like to thank digital, Taner Halicioglu, the Hybrid team, and the ratbox team 
for their work on the base code. Out of the Hybrid team, special thanks goes to
Dianora, who helped us, even though she didn't have to.

Also thanks to Ryan Kubica on FEFnet for writing services and exploiting our
S: code to make it work :).

==============
=Distribution=
==============

The FEFnet ircd is officially available via FTP from the following locations:

ftp://bobdole.fdf.net/pub/irc/

It is also usually mirrored at:

ftp://ftp.liii.com/pub/unix/irc/
ftp://ftp.bitchx.org/pub/servers/

You can also obtain the newest code in development using CVS. Here at the
steps needed to pull this off:

1) Get cvs if you don't have it.
2) cvs -d :pserver:anonymous@paradise.fdf.net:/repos login
   Enter 'anonymous' when prompted for a password.
3) cvs -d :pserver:anonymous@paradise.fdf.net:/repos co -kkvl ircd-rb-FEF6

This will create a directory called "ircd-rb-FEF6" under the current directory that
will contain the current source code.  To update the code in the future, run:

        cvs update -kkvl -dRP      (from the ircd-rb-FEF6 dir)

NOTE: The CVS tree is used for development of the ircd.  This code may be
      unstable and buggy.  The good part about using this tree, is it's always
      the newest code! :).

You can also accesss the CVS tree via the web at:
http://paradise.fdf.net/cgi-bin/cvsweb.pl/ircd-rb-FEF6/

                                        -Dustin "JailBird" Marquess
