version 1.04b (January 9, 2004)

  * Fixed reattach problems with the first letter of channel names
       being cut off in some cases.

  * Fixed format spring vulnerability in SESSIONS command.


version 1.04a (April 26, 2003)

  * Fixed channels not being removed from list after parting. This
	was causing phantom channels to be joined on reattach. (Only
	on some networks)

   * Fixed Numeric 005 data being stored incompletely. This was causing
	oddities on reattach.
 

version 1.04 (December 2, 2002)

  * Fixed "LOG LIST" crashing (Oops)


version 1.03 (November 28, 2002)

  * Fixed a problem with logfile sending causing a crash
 
  * Fixed a potential security hole with strncat()

  * Fixed a bug in server ping replies. This should fix the problems
	with ping timeouts on IRCDs that use token ping replies.


version 1.02 (June 3, 2002)

  * Fixed pid file permissions being set incorrectly
   
  * Fixed a remotely-exploitable crash

version 1.0 (May 5, 2002)
 
  * Fixed private message logging not working if it was
     the only option requested.

  * Fixed compile problem w/ time.h on some gnu libc 2.2.x systems

  * Rewrote and improved the command parser.

  * The 'ezb' command now works full time (so you can use it before you
     connect to an IRC server), and reports bad command errors.

  * Completely rewrote the config file parser.. The configuration
    format has changed quite a bit.. See below

  * Added a new user account system

    Basically everything is done with users now. You define a user like this:

    user bob {
        allow {
            from *.blahblah
            to irc.*
        }

        deny {
            ....
        }

        set enable-outgoing-dcc-proxying 1
        set password blahblah
        set other-options
    }

    To log in as Bob, a user would connect as usual, and then send
       /quote LOGIN bob blahblah

    This means you can define multiple users, each with different options
    and different allow/deny lists. It also allows us to neat things, like
    doing away w/ detach passwords, and user customizable options that
    get saved to disk (see below)

    So... you must define at least one user to use ezbounce now.

    There is also a special 'default' user. It is much like a guest account;
    it behaves like ezbounce versions of old. For example, users still need
    to set passwords to detach, and can't use a few new features (see below).

    To summarize the other major syntax changes....:

    The following options can only be set globally (i.e. outside of
      user xxx { } ) blocks

    LOGFILE
    PIDFILE
    MOTDFILE
    USERFILE
    LOG-DIR
    NO-REVERSE-LOOKUPS
    DCC-LISTEN-PORT-RANGE
    PREVENT-SELF-CONNECTS
    MAX-DNS-WAIT-TIME
    KILL-ON-FULL-QUEUE
    SILENT-REJECTION
    MAX-REGISTRATION-TIME
    MAX-FAILED-PASSWORDS

    The following options can only be set INSIDE user blocks

    PASSWORD
    IS-ADMIN
    MAX-IDLE-TIME
    DROP-ON-DISCONNECT
    ENABLE-DETACH-COMMAND
    ENABLE-AUTO-DETACH
    ENABLE-VHOST-COMMAND
    ENABLE-FAKE-IDENTS
    AUTO-FAKE-IDENTS
    AUTO-SERVER
    ENABLE-OUTGOING-DCC-PROXYING
    ENABLE-INCOMING-DCC-PROXYING
    ENABLE-PRIVATE-LOGGING
    ENABLE-PUBLIC-LOGGING
    ENABLE-SEPERATE-LOGGING
    DEFAULT-LOG-OPTIONS
    MAX-LOGFILE-SIZE

  * You can no longer have global 'allow' blocks. They must be
    inside user definitions. Global 'deny' blocks are still
    allowed, (to make sh*tl*sts and such)

  * Note: the vhosts { } block is allowed both globally and in
    a user block. Global vhosts are avialable to all, and user ones
    are available only to those specific users.

  * Removed the 'ADMIN' command and the admin { } block

      -- you now define an admin like this:

     user xxx {
        ...
        set is-admin 1
        ...
     }

     User is given admin priviledges upon his login. Nifty!
     On a side note, the 'max-failed-admins' option has also been removed

  * Added 'LOGIN' command for the new user system. You should now use
    this in place of 'PASS' to log into ezb. Syntax is:

        /quote LOGIN <username> <password> [auto-server]

            `-- username:    ditto
             -- password:    ditto
             -- auto-server: server to automatically
                             connect to (optional)

       example: /quote login bob myPass

  * Improved 'PASS' command. We will keep it for compatibility
    reasons. The syntax is now like this:

        /quote PASS <username>:<password> [auto-server]

    This lets you log in, like the 'login' command.
    Example: /quote PASS bob:myPass

    The old syntax will still work. However, it can only
    log you in as the default user.

    i.e.

        /quote pass password

    Will do the same thing as

        /quote login default password

    If you want to login as another user, you MUST use the Login command,
    OR the new Pass command syntax.

  * Improved detach/attach system. Passwords are no longer
    required. In fact, you don't have to remember anything
    anymore, not even the so called 'magic number'

    So now I can do

        /quote ezb detach

    And when I reconnect, ezbounce will conveniently list all my
    detached sessions, with the id needed to reattach.

    NOTE: 'Default' users MUST still provide a password

  * Added 'ATTACH' command, simply an alias for `REATTACH'

  * Added `SESSIONS' command. Lists all of your current detached
    sessions. Sample output:

      -ezbounce(srv)- Current detached sessions for user murat:
      -ezbounce(srv)- ID  IRC NICK             TO                   TIME
      -ezbounce(srv)- 1   druglord_            irc.lagged.org       00:00

    To reattach, I would just have to do /quote ezb reattach 1
    Nifty, eh?

    TIP: if you only have one detached session, you don't even need
         to provide an id. 

  * Added 'TRAFFIC' command. Displays amount of data transferred
    between ezbounce and clients and servers

  * Added 'WHOIS' command (for admins only). Syntax:

        /quote WHOIS <username> (or) <id>

     Displays all connections for a particular user.

  * Added 'ECHO' command, sends given text back to client

  * Added a spiffy new login screen. ALSO -- if you have some
    mad ANSI artwork skills and want to make a 31337 login banner
    for ezbounce, let me know!!

  * mdidentd finally gets the permissions of the /var/run/mdidentd socket
     right.

  * Tested mdidentd -- contrary to popular belief, it still works.
    Updated the documentation.

  * Syntax of LOG FIND has changed a bit...
    - New syntax is: LOG FIND [password]
    - IDs are no longer needed
    - Passwords are optional, (because detach passwords
        are optional)
    - Users can only get log files that belong to them
    - 'Default' users must specify a password.

  * Added per-user preferences. This lets you customize a few
    settings, AND save them to disk, so ezbounce will remember
    them across sessions.

  * Added 'SET' command to facilitate this system.

    Usage: /quote ezb SET <preference> <value>

    The following preferences are available:

        auto-detach         [0/1] - detach automatically?

        proxy-dcc-in        [0/1] - proxy incoming dccs?
        proxy-dcc-out       [0/1] - proxy outgoing dccs?

        fake-ident          [string] - fake ident
        vhost               [string] - vhost to use
        auto-detach-pass    [string] - password to use for
                                       auto-detach
        auto-server         [string] - server to automatically
                                       connect you to

     Examples:
        /quote ezb set auto-detach 1
        /quote ezb set fake-ident mrBilly
        /quote ezb set proxy-dcc-in 0

      Note, the relevent feature must be enabled in the config file.
       For example, if you set auto-detach to 1, you also need to have
       "set enable-auto-detach 1" in the config.. So this is useful
       if you want to disable features you don't want..

      This also works for the default user, but they won't be able to
      save their preferences.

   * Added 'SAVE' command. Saves the dynamic user preferences to disk.

   * New configuration option:

        set user-file <filename>

      This is where dynamic user preferences will be saved on disk

   * Added 'RELOAD' command. Reloads user preferences from disk.

   * Added 'ALLOWED' command. Displays what services are available to
      the user. (For example, if the detach command is enabled and
      things like that)

   * Added 'TRACE' command. Displays a simple network connection
      diagram.

      Usage: /quote TRACE <id>

   * Removed 'AUTOPASS' command. Use /quote set auto-detach-pass.
     Also, you will no longer be assigned an automatic detach
     password when you connect -- set one! (And it will get saved)

   * Improved on-line help system a lot. Every command is now
      documented, with syntax listing and an adequate description.

      Usage: /quote HELP <command>

   * Fixed Numeric 005 not being sent back to client properly on
     reattach -- or being sent even if the IRC server never provided
     one in the first place

   * ezbounce now actively keeps track of the channels you are on,
     which means a few new spiffy features, like a faster and simpler
     reattach.. In the past we would look up that info when a reattach
     was requested, causing a wait of at least several seconds.
     The "reattaching" state as shown in the status command by
     letter 'e' is also gone now.

   * In chat logs, channel is now put before name of speaker. I.e.
      instead of
         <bob:#blah> this sucks

         it is now:

         [#blah] <bob> this sucks.

   * Fixed QUITs and nickname changes not being logged -- oops!!

   * Added 'listen-vhost' configuration option. You can use this
     to configure what interface ezbounce will listen for connections
     on. (It does the same thing as the -b command line option)..
     It's global, so you must use it outside of a user { } block.
     Example:

        set listen-vhost 192.168.1.1

   * Added 'default-vhost' user configuration option. This is like
     the -c command line option; it lets you choose which interface
     users will connect to IRC servers on. It's a user option, so it
     must be inside a user { } block.
     Example:

        user xxx {
            set password blah
            ...
            set default-vhost my.cool.vhost.com
            ...
        }

   * Removed the `-c' command line option. Use the default-vhost
      config options instead.

   * We now respond to *all* IRC server pings, not just when
     detached. (This is to make auto-detach more reliable)

   * Fixed a serious file descriptor leak in mdidentd.

   * Added ABOUT and VERSION commands
   
   * Fixed bugs in the dcc code that might lead to 100% CPU usage and
     crashes.
    
   * Now rejoins channel when kicked (while detached)

   * Improved socket handling a lot. The look-up system is much faster,
     and the data processing to/from client/server is a lot more reliable.
     In particular, ezbounce now buffers all data before sending it, which
     will eliminate the problems with data loss under high traffic.

   * Added "max-sockets" configuration option.

        set max-sockets [number]

     This implies that there is now a finite limit on the number of sockets
     that ezbounce will use. This is true. This may seem restrictive, but
     results in much simpler and faster code in the socket event processing.

     Default is 128, which is enough for most people. Minimum value
     permitted is 10. You decide how many you need; keep in mind that each 
     client will need 2 sockets (one for him, and one for connection to server).

   * Added --enable-debug option to the configure script -- useful if you
     want to do development

   * Removed the configuration options
    	
    	max-client-inputQ
    	min-client-inputQ
	    max-server-inputQ
    	min-server-inputQ

     They have been replaced with
    	
    	min-buffer-size
	    max-buffer-size

     They are optional, as before, defaulting to 128 and 32768 
 	respectively.
 	
   * Added 'LOG VIEW' command. Lets you view detached log files directly in
     your IRC client w/o getting them via DCC SEND. This is accomplished
     by a DCC Chat connection. Syntax is the same as 'LOG SEND' ...

   * SSL Support has been added  (contributed by 'HoE')
      To set up:

            ./configure --with-ssl

      And set the following in the configuration file:

            set certfile <.pem file>
            ssl-listen <ports>                  (optional)

      To activate an SSL connection, use the CONN command with
        -ssl argument. Example:

            /quote ezb conn -ssl irc.magicserver.com

   * Now uses safer vsnprintf() and snprintf()

   * Fixed compile problems with GCC 3.x

   * Many more code cleanups and technical improvements that I won't
      mention. In short, this release, 0wns. :)


v0.99.12 (March 2, 2001)

  * Added anti-idle feature while detached. Sends random 
     message to server every so often. 
  
  * Removed enable-detach-on-error and always-detach variables.
     Instead there is a "enable-auto-detach" variable that, when
     enabled, will always detach the user, unless he explicitly
     uses /quote ezb quit.
    
     Password is again assigned randomly when the user connects.
     It can be changed via the 'autopass' command.
    
  * Added recognition for UnReal-ircd's * and ^ user modes in 
     channels during reattach.
  
  * Admins can no longer reattach w/o password.
  
  * Included a basic man page
    
v0.99.11 (January 13, 2001)
  
  * Ezbounce no longer requires poll(). An alternative select()-based
     implementation has been added to the socket code.
     
  * Added --enable-use-select option to ./configure script to force use 
      of select() instead of poll()
      
  * Fixed (??) a 100% CPU usage problem involving poll()
  
  * Now sends an IRC "ERROR" string for disconnects
  
  * Minor mdidentd fixes
  

v0.99.10 (October 31, 2000)
  
  * Fixed ezbounce.pid file being created with random permissions.
    It will now be made with 0644.
    
  * Fixed a nasty bug that could cause random crashes.
 

v0.99.9	(October 9, 2000)
  
  * Fixed DCC proxying using 100% processor time in some cases.
  
  * Fixed several possible crashes in DCC proxying.
  
  * STATUS command now displays some DCC proxying info.

  * Changed behavior of outgoing DCC proxying.. It will conenct
    to the real IP of the sender, not the IP that is stated in
    the CTCP DCC command (which was wrong in some cases, e.g.
    if client behind firewall obtained local IP through /whois)
    
  * Fixed compile errors under GCC 2.9x

v0.99.8 (July 29, 2000)

  * Fixed certain logfile options causing a crash on detach.
  
  * Fixed sending of zero-byte files causing problems.
  
  * The enable-{private,seperate,channel}-logging options are
    now properly enforced.
    
  * Timestamp should be properly encoded in the logfile names 
    sent back to the user now, in the format YYYYMMDD-...
    
  * Added dcc-listen-port-range option. It allows you to choose
    which port or ports ezbounce will listen on when doing DCC 
    proxying. Usage:
     
	set dcc-listen-port-range <ports>
	
    where ports can any number or series of numbers seperated by
    commas, and where ranges of numbers can be indicated by a dash.
    Examples:
       7000,7005,8225,9000-9100
       2000-2300,4860
       6918
       5700-5710 
       
  * Wrote some simple, cheesy encryption and decryption routines
    for the passwords that are used in making log file filenames.
    
  * Redesigned and rewrote the internal socket polling and handling
    system. Is it faster? I don't know, but I think it's better
    now. However, ezbounce now requires the poll() system call be 
    present on the machine. Unless you're using an ancient system,
    you will have this function (./configure script will confirm it).
    Also as a result, the following issues are fixed:
	
	* DCC sessions (both send and proxy) are unlimited now; you
	  are especially not restricted to two log file sends at a time.
	  
        * DCC sessions will now survive after the user disconnects from the 
	  proxy.
	  
        * DCC sessions will now stay alive through during reattach and 
	  deattach.
	  
	* DCC sessions will now properly timeout after 90 seconds.
  
  * Fixed bogus "Killed user for exceeding idle time limit" messages
    appearing after users reattaching.      
	    
  * Added auto-server option, which automatically connects users to an IRC 
     server as soon as they succesfully connect to the ezbounce proxy.
  
	set auto-server <server>[:port] [pass]
	
	    server: which server to connect to
	    port:   (optional) which port to use
	    pass:   (optional) password to use on IRC server
	    
   
  * LOG FIND will now display all results of a search, not just the first two.
    You can select any of them to send as usual with the LOG SEND command.
    doing "LOG SEND ALL" however will only send two a time to avoid flooding the 
    user.
    
  * Logfile creation is now more robust; will honor locked log files and try to
    create more unique file names if needed.
        
  * Added a simple away option to detach:
  
    /quote ezb detach password [away message]
    
    where away message is what ezbounce will set you /AWAY as
    with the IRC server. It will unset you away when you reattach.
    
  * Added LOG LIST command; it will list the search results again
    for you.
    
  * Extended PASS command to include the name of a server to connect
    to. Syntax is:
    
	/quote PASS <password> [server[:port]] [IRC server password]
	
    This will let you connect to IRC servers with just one command.
    Examples:
	
	/quote PASS secret irc.lagged.org
	/quote PASS secret5 irc.dal.net:7000 secretpass 
  
  * Now makes link to ezbounce binary named 'ezb'

  * And some long overdue documentation updates..
    

v0.99.7 (June 10, 2000)

  * Fixed DCC Sends from ezbounce not providing filesize. 
    Some clients didn't mind that it was omitted; some did.
        
  * DCC sending of logs now properly limited to 2 at a
    time max.
    
  * Fixed LOG FIND reporting multiple finds of a file? 
     (Although it did send the proper log files)
  
  * Fixed odd STATUS command crash.
  
  * Disabled PONG messages in log for good.
      


v0.99.6 (April 30, 2000)
  
  * Fixed logging not working if maxsize wasn't set (sigh)
  
  * Fixed Reattach truncating list of channels to join if it 
    was > 128 chars (some people were affected)
  
  * Added support for catching numeric 005. They contain some
    possibly useful information for clients upon reattach. (like
    detecting if the IRC server supports the DalNet WATCH 
    command.
        
  * Internal nickname tracking should work well now.

  * Implemented LOG HELP.
 
 In addition, Thanks to Ben W. for the following improvements:
 
  * Now handles and saves numerics 002-004 so they can be reproduced
    on reattach
  
  * PASS command can now be used before USER and NICK commands.. this
    allows the server password feature of most IRC clients to be 
    used with ezbounce.
    
  * Admins can now reattach without a password.
  
  * Numerous reattach improvements, including:
	
	* Proper detection of User Mode
	* Fixed MODE #channel command being sent, causing some
	  clients to screw up
	* Fix duplicate LUSERs being sent.
	
    

v0.99.5 (April 9, 2000)

  * Ok, ezb command works now. My mistake.
  
  * Sending of old log files is now possible. The command to use is:
  	
	/quote LOG FIND <id> <password>
	
     Where 'id' is the id that you had for that session which died,
     and 'password' is the password for that session.
	 
     This is very preliminary right now. It does not quite work if 
     your nickname is something different from the one ezbounce thinks
     it is. That's the why the change below was needed...
	
  * Now keeps track of nickname changes internally throughout your 
      irc changes. Also lets you change your nickname while chillin'
      on the proxy before connecting to an IRC server. This was all
      necessary for the DCC Sends to work properly. (note: it doesn't
      really work that well right now)
      
  * Added checks to ensure permissions for the log files directory are
      secure.
      
  * Fixed a possible crash if the incoming text buffer was full.
  
  * Fixed a possible crash in the STATUS command.
  
  * Fixed IRC PASS command being sent to IRC Server at the wrong 
    time during the connection process. Thanks to Rodney J. for catching
    this one.
                                      
	

v0.99.4 (February 22, 2000)
  
 
 * Changed permissions on the included sample config files for security
      purposes. Note that you can't get this fix with the patch, you must 
      get the tarball, or set the permissions manually. Your config files
      ought to have permissions 0600.
      
  * Added 'ezb' command as an alias for the ezbounce command. It occurred
      to me in a vision that much time could be saved by myself and users 
      by typing 3 letters instead of 8 letters!
      
  * Fixed some serious bugs in the log sending. It is much more robust 
       now.
        
  * Fixed -b command line option (listen for connections on specific 
       interface) not working on some systems (?). Note to self and
       fellow coders: remember to zero out sockaddr_in structure
       before doing anything to it!
       
  
v0.99.3 (December 29, 1999)

  * Logging while detached. See ezbounce.conf.quick for details and to
    enable it.
    Basically you turn it on with the 'log' command. The syntax is:
    /quote LOG SET <options>

    where options is any combination of the following:

	a - log all (combines p and c)
	s - log to seperate files  
	p - log private
	c - log channels
	n - log nothing!
	f - log full addresses always
	t - log with timestamps for all events

    Once you detach, logging will begin. It will continue until you
    reattach or the connection to the IRC server dies. 
    
    When you reattach, you can retrieve the log files by typing:
     
    /quote EZBOUNCE LOG SEND all
    
    Ezbounce will then DCC send them to you.

    Everything is explained in the README in full detail.
   
  * New config options to support detached-logging.. 
  
	# allow logging of private messages
        set enable-private-logging 1

	# allow logging of channels
	set enable-public-logging 1

	# let users store logs in seperate files (that is, one for chan, 
	# one for
	# private)
	set enable-seperate-logging 1

	# where to store logs?
	set log-dir logs/

	#
	# Default log options
	#
	# Full list of options:
	# a - log all (combines p and c)
	# s - log to seperate files
	# p - log private
	# c - log channels 
	# n - log nothing!
	# t - timestamp events
	# f - log full addresses always
	#
	set default-log-options ast


 
   * Redid some of the server log messages. Aimed for a standard format,
      something easier to understand at first glance. For example, instead
      of "xxx's connection attempt to yyy:1111 has failed (...)" it is now
      "Connection attempt FAILED: xxxx to yyy:1111 (...)"
     
   * Removed the "&" and "!" channel recongnition 'fixes' in 0.85.3
     that were incorrect. The new detached-logging code does recognize
     these special channel types properly though.
     
   * Redid the reattach system, so the target inherits the clients
     settings, not the other way around as it has been. This mainly
     simplifies some matters in the code. 

     Also this means your reattach id does not change when you reattach
     so you can detach and reattach again with the same id. 
     
   * For mdidentd, added checks to ensure permissions in directory
     of socket are appropriate to allow connections to the socket.
      
   * Now doesn't log PONGs from server while detached or other debug
     messages, unless you choose to build it to do so.
     
   * Fixed compile problem on several systems caused by the fact that
     'MAX' was already #defined on the system but we tried to create
     a function by that name.

   * Added a simple Message of the Day (MOTD) system. The configuration
     file variable is:
	
	set motd-file <filename>
	
     It will display the contents of that file to the user upon 
     connection to ezbounce and whenever he types /MOTD.
     
     A sample motd file is included (the sample.MOTD file), but 
     disabled by default. 
     

   * Added -u command line option, to change userid after listening
     socket is bound. This is only useful if you're running it as
     root and want to bind it to port < 1024 and then want it to
     drop the root privs. Usage (uid must be numeric):
     
	ezbounce -u uid config.file

------

v0.85.3 (August 6, 1999)

  * Fixed default connection and listen vhosts (-c and -h command line
     options, respectively) being cleared on rehash

  * Fixed 'random' crashes during reattach (was caused by failure to
     handle privmsg and the like during the info-gathering process)

  * Fixed "trying to reattach to" message showing "(null)" for the target.

  * Improved socklen_t detection in configure script. Will hopefully correct
    compile failures on OpenBSD and possibly other systems.

  * Small mdidentd updates

  * Added IRCNet  !  channel and local (&) channel recongnition where needed.


v0.85.2 (May 15, 1999)

  * Fixed CTCPs being blocked if dcc proxying was enabled

  * Fixed outgoing CTCPs being corrupted if dcc proxying was enabled
  
  * Now handles 0 return from connect() (was only checking for -1 as that
    is what usually happens with nonblocking connects)

  * Fixed several DCC proxying problems (e.g. sends to slow modem users 
	blowing up).


v0.85.1 (May 7, 1999)

  * Fixed CTCP Ping-replies during detach not working

  * 'autopass' command was broken, fixed.  

  * Fixed channel modes possibly not being synced on reattach

  * Fixed nickname not being synced on reattach (for some clients)

  * If proxy was started w/o detach-on-error option and it was enabled
    and rehashed later, clients would not have auto-passwords set. This
    would result in "unreattachable" clients.. So now if there's
    no password, the client will not be detached. Use the 
    'autopass' command..

  * Several Solaris compile/link errors fixed. Many thanks to Rajesh T.
    for reporting these problems and trying out my fix suggestions! If
    ezbounce was not building for you on Solaris try it now.

  * configure script updated to check for special libraries that might
    have to be linked with on some systems.

  * Quick kludge for reattach "to-ruleset" usage count leak. 
 

------------------------------------   
  
ezbounce 0.85 (May 1, 1999)

  * Added DCC proxying. It's all transparent, meaning ezbounce does some
    clever trick so that clients don't need to do anything special to be
    able to send *and* receive dccs. So yes, it's both ways.

    To enable it you need to stick these lines in your config:
    set enable-outgoing-dcc-proxying (0 or 1)
    set enable-incoming-dcc-proxying (0 or 1)
    
    for all the details see the README file. It's off by default.
    
    Not very well tested on big endian machines. Some people have reported
    success; the reason I'm worried is that I had quite a time trying to get
    host byte-order to network byte-order (and vice versa) to work properly. 
    
    Completely untested on dialup PPP connections (I'm a Cable Modem Bastard
    myself). 
    
    Feedback from anyone would be greatly appreciated.
    
  * Fixed vhost-binding not working under FreeBSD.

  * Fixed a problem in the buffering code that could data corruption.
      
  * reduced time() calls to once per second and no more (in almost all cases).
  
  * Added detach-on-error feature. Basically it detaches the client if he loses 	
    connection to the proxy with an error. It automatically sets up an 
    auto-detach password for the user upon connect. This password may also 
    be changed be the user using the AUTOPASS command.
    
    If the user detaches because of an error, he can reattach normally using
    the 'reattach' command.
    
    To enable it you must stick this line in your config (Defaults to off):
    set enable-detach-on-error 1
    
    --- Consider it experimental!
    
  * Added hack to prevent linking with libstdc++. To enable it, run configure
    as follows:
    
     ./configure --disable-link-stdcxx
     
    and build. Consider it experimental as well!
  
  * Corrected several possible compile errors on different compilers 
    than mine.
    
  * Admins are now exempt from rulesets. Meaning they can connect anywhere.
    
  * Check for existance of sys/select.h before #include'ing it. Linux libc5 
    doesn't have it for example.
    
  * #include <sys/types.h> before any other header. This corrects some potential
    compilation problems on some systems (FreeBSD is one).
  
  * 'ezbounce' command could be used while connecting to an irc server. fixed.

  * Tons of code redone and cleaned up. 
  
  * a nasty bug in buffering code fixed (was assuming write() would write all
    of requested bytes..)
  
  * If logfile cannot be opened or created on startup, keep going instead of
    quitting.
 
  * mdidentd version string was not updated for previous release.
  
  * Idiot proof setup directions after ./configure is done.

  * Eliminated "unused parameter int unused" warning for older gcc.. 
  
  * Eliminated "argument changes signedness" warnings (hopefully)
  
  * Added a basic pid-writing thing. It's mainly for scripts to be
    run with crontab that periodically check if ezbounce is still
    running. Ezbounce writes its pid to a file (ezbounce.pid) and the
    script checks if its a valid one, if not respawns ezbounce. Such 
    a script is included (see the ezbchk file).

  * Fixed user name being truncated to 3 chars on reattach.


ezbounce 0.81 (February 8, 1999)

  * Topics should *really* be synched on reattach now. It was even listed
    as fixed in this file, but for some reason was not. Oops :)
  
  * Also get user mode on reattach now. 

  * While detached, ezbounce will now respond to ctcp pings for the detached 
    client. In order to prevent abuse by flooders, only 1 ping will be replied
    to every 5 seconds.

  * Fixed a config file loader error message that was getting truncated.

  * No longer allows 0-length USER and NICK messages when clients are
    registering

  * A few hacks to save memory storing nicknames and passwords and such

  * Added a switch to mdidentd which will prevent users from setting their
    fake idents to the username of a user on the machine.


What's new in ezbounce 0.80? (December 31, 1998)
   
  * You can now reload the configuration file while the server is running.
    This is done either by the admin-only REHASH command or by sending the 
    server a SIGHUP signal. Any possible error messages from the process
    will be dumped to the log file. See README for finer details.
    
  * User password is now optional.
  
  * I made a special ident daemon-helper thingy that will let proxy users
     set their own ident replies regardless of the uid the proxy is running 
     under. For more information look in mdidentd/README.
  
  * Reorganized several files, moved proxy code to 'src', mdidentd code to 
    'midentd' and files shared by both to 'libs'.

  * Reorganized and cleaned up rule-set related code.

  * Some clean up of config file loading code.
  
  * Greatly simplified command parsing code. Code is smaller and is 
    probably faster.

  * In the cleanup process I have also fixed an embarassing bug that  
    would cause a crash if an invalid command was used with the 'ezbounce'
    command.
  
  * Some systems don't appear to define INADDR_NONE (like sunos 5.4??).
    Added a fix so ezbounce will compile there.

  * ircd-hybrid is drain-bamaged and does not always respond to TIME requests.
    This effectively makes the Detaching/Reattaching system useless for some
    people. ezbounce now sends a different command besides TIME to get
    info about the connection during reattach. 
    
  * If a client would die while reattaching a ghost connection might be 
    left behind (the detached connection he was trying to reattach
    to). Although i was sure such conditions were handled properly,
    it looks like the code was borken. Fixed.

  * Again during reattach.. sometimes the name of the channel joined would
    be sent with a space in front of it. This caused a small problem with the
    BitchX windowing facilities so we now send it w/o the extra space.
    
  * Reduced the number of times the time() system call was used. In older
    versions ugly things could happen like time() being called 55 times
    *a second* when there were 50 clients. Now time() is called at most twice
    a second regardless of the number of clients.
    
  * Admin can use any vhost he wants now, that is, he is not limited by the
    hosts listed in the "vhosts" config file block.

  * Admin can use any feature he wants, even if it has been disabled in the 
     configuration file.
     
  * 'status' command now aware of zombie connections and super-new connections.

  * 'admin' command block syntax for configuration files has changed slightly.
     Basically you don't need 'set' before 'name' and 'password'. If you don't
     know what I'm talking about don't worry about it.


What's new in ezbounce 0.71? (???)

  * Makefile was using a GNU-specific command that would prevent ezbounce
    from compiling on some systems. The relevant section has been commented 
    out.
 
  * Fixed a problem with the status command that could cause a crash.
  
  * If a detached connection died, the number of clients wouldn't be decremented.
    This could actually cause a lot of problems. Fixed.

  * setsockopt problem on Solaris fixed.

  * Channel topics were not being synced on reattach.

  * Corrected compile problem on FreeBSD 2.2.7

        
What's new in ezbounce 0.70? (August 9, 1998)

  * added GNU autoconf configure script. ezbounce will compile on older
    gccs.
    
  * Handle memory allocation failures a little better. 

  * server uptime info from STATUS command is now in human-comprehendable
     form.  

  * STATUS also displays cpu time used now.

  * client connection time from STATUS is correct now.

  * reconnecting after disconnecting from irc server should
     really work this time. Note: may cause problems
     with some clients.

  * added INTERFACE command, lets client bind connection
     to any interface available on the machine.

  * also added VHOST command which is just an alias to INTERFACE.

  * added a vhosts block command, lets you configure which vhosts
      clients may use with the vhost/interface command:
	vhosts {
		ip1.machine.com
		blahblah.blahb.alh
		69.69.69.69
		etc
	}
    note: 'all' is a special keyword and will allow clients to use all available
     vhosts. 
     Currently only one vhosts block is allowed. If you choose not to 
     supply one, a dummy one will be created with 'all' as the only address.

  * also added a VHOSTS command which lists all the available virtual hosts
        that a client may use.

  * improved server admin configuration. To define an administrator you now do:
	admin {
		from *.address.*
		set name servadmin
		set pass blah60
	}
     This allows only people from *.address.* to become admins, and the 
     username and pass they must use are servadmin and blah60. Only one admin
     block per customer. The old set admin-name/pass won't work anymore.
  
  * added a prevent-self-connects config option. It prevents clients from
    making the proxy connect to itself.

  * Added EZBOUNCE command. It is to be used when you have connected
     to an irc server and wish to issue a command directly to the proxy
     rather than have it relayed to the irc server. 
     (note: not all commands can be issued thru this interface)	
     For example, when connected:
   
 	/quote DIE death message
	will kill the irc server you're on, and
	/quote ezbounce DIE death message
	will kill ezbounce. Assuming you have proper authorization, of course.

  * Added a DETACH command, which lets your connection to an irc server
      remain active while disconnecting you from the proxy. While you are 
      detached, ezbounce will respond to server pings to keep you alive.
      It is used as so:

 	/quote DETACH <password>

     To reattach to the connection, you must connect to the proxy and 
       issue the following command:

	/quote REATTACH <connection_id> <password>
	
     Where connection_id is a number ezbounce will give you when you 
     detach.
           
     The detaching/reattaching facilities don't work very well with all 
     clients right now.
     There is a section in the README file which you can read that 
     describes the problems.

  * Cleaned up interface-binding related code. Also fixed possible
      file descriptor leaks.

  * Fixed a bug in buffering code which could lead to crashes.

  * Less offensive password incorrect message :)

  * No longer displays "Welcome to ezbounce" message when you connect,
     it now waits until you have succesfully given a password.

  * New configuration options:
     set max-failed-passwords <num>
    	Lets you set a limit on how tolerant ezbounce will be on
	people giving incorrect passwords. Setting it to 0 disables the
	feature. Defaults to 3. Client will be booted off once limit is
	reached.

     set max-failed-admins <num>
	Similar to above one, but controls attempts at becoming server
	administrator. Defaults to 0 (off).

     set drop-on-disconnect <1|0>
	Controls whether or not client should be dropped if he loses connection
	to his irc server. Defaults to 0.

     set enable-detach-command <1|0>
         Enables or disables the DETACH command. Defaults to 1.

     set no-reverse-lookups <1|0>
	 This option controls whether ezbounce will do reverse dns
	 dns lookups in the ruleset related code or not. Defaults to 0. 
	 Look at sample.conf for more info.
	 
     set enable-vhost-command <1|0>
	 Enables or disables the use of the INTERFACE and VHOST command.
	 Defaults to 1.

  * rewrote gettok(). no longer makes copy of string, should speed up several
     other functions.

  * ezbounce now tries to save some memory by fine-tuning input buffer sizes
    once every minute.

  * Added a WRITE command. This command is for administrators only
    and allows them to send messages to another user or broadcast it to
    everyone. The syntax is (/quote) write <id> <message>.
    You obtain the id from the status command, and you can use 'all' to
    broadcast to all.
  
  * --help command line option recongnized.

  * added a DISCONNECT command. It is intended to be used with the EZBOUNCE
    command. It forces a disconnection from the irc server in case it
    stops responding or something.
	
  * fixed possible bug that could cause a crash if a bad command was sent
    while connecting to an irc server.
 
  * several other internal changes
--- 

What's new in ezbounce 0.61? (July 15, 1998)

  * client is no longer dropped if disconnected from irc server.
  * small memory leak in config file parsing code fixed.
  * bigger memory leak found in buffering code and destroyed.
  * small makefile enhancement
