ircd-hybrid-6 Release Notes
---------------------------
$Id: RELNOTES,v 1.6 2001/06/19 17:05:13 wcampbel Exp $

Operating system dependencies have been removed, there is no longer any
special code for AIX, SEQUENT, DYNIX, HPUX, Solaris, or pyr. We have
made a large effort to remove as many portability issues as possible.
The code should compile and run on any modern UNIX operating system that
supports POSIX.1 and ANSI-C. We know the code builds cleanly on BSD,
Solaris, and Linux. If it fails to work for you, or works on another
platform not listed here, let us know. We won't make any guarantees
about changing much to support anything weird, but if including a
standard header clears up a problem we'll probably do that.  This code
is known to _not_ compile on AIX.

The code now uses the ANSI-C assert macro in many places, this means
that if an invariant isn't, the server will core on the spot hopefully.
Using the assert macro also tends to slow down the code a bit, if you
like living dangerously and are running the beta, use -DNDEBUG when you
build the server and it will turn off the asserts. Production servers
should always be compiled with -DNDEBUG for maximum efficiency. NOTE: If
you are running a server with the asserts turned on and it cores on you,
please send us a stack trace if you can.
  
Command lines are different for this version of hybrid, most of the old
flags for debugging and running ircd from a terminal are gone and a
couple new ones have been added. Valid command line options that require
compile time options are silently ignored. 

Command line options for this version:
-d filename - specify d:line file
-f filename - specify config file
-h hostname - specify server name
-k filename - specify k:line file
-l filename - specify log file
-n          - do not fork, run in foreground
-v          - print version and exit
-x          - set debug level, if compiled for debug logging

Minimal logging is enabled by default, for the alpha/beta release it is
set to L_DEBUG in config.h by default, this can be changed to other
levels if the log gets too noisy (it shouldn't). Look at the log level
constants in s_log.h for allowable values. A SET option is available
for setting the value in real time. If you define USE_SYSLOG in your
config ircd will log to both the ircd.log file and syslog.

Authentication and DNS lookups are handled a bit differently now,
clients are completely ignored until both auth and dns have completed.
This is not significantly different than earlier behavior but you should
notice slightly faster client connects.

I line handling has changed.  Ident lookups are now always done for
connecting clients.   An @ in the I line no longer turns off the tilde
'~' adornment in the case of an unidented client. You must use the
'-' prefix in the I line to turn off the ~ prefix for an unidented client.
Clients which do not ident will be sent into the kline/iline matching code
with a leading ~ character.  i.e. to allow a client onto your server
without a ~, use an I line such as:
	I:NOMATCH::-*db@*some.host.on.the.net
This will match this user, and will remove the ~ as seen on the net.

KNOWN BUGS:
There is a possibility that ircd will core dump if you there are errors
in your conf file.

Send bug reports to ircd-hybrid@the-project.org.  Please include a gdb
backtrace and a copy of your config.h.

NOTES:
------
The best way to get a backtrace of the core is to follow this sequence of
instructions:
1.  Change to the directory where the core file is
2.  Run gdb on the binary and the core file.  With an unmodified Hybrid-7,
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-hybrid@the-project.org.
5.  Be sure to save the ircd binary and the core file in a safe place in
case the developers need to look deeper than a backtrace provides.
