2002-04-07  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint8
	* kline_next, not next. d'oh. (mtrie_conf.c)

2002-04-05  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint7
	* Inverted the sense of the test for when to reply with
	ERR_NOSUCHNICK to PRIVMSG to a non-existant user. Damnit.
	* Strip crap in bans from other servers as well, to stop services
	placing silly irremovable ones. (also invex, exempt)
	* Colour-strip +d channel mode arguments.
	* Added USER_C to '+' in match.c.
	* Remove klines from kline_list when we free them in some weird
	cases involving duplicate K:lines (mtrie_conf.c, dline_conf.c).
	* Close and reopen log files on SIGHUP (for log rotation).
	* Collapse strings consisting entirely of spaces into null strings
	in strip_colour().
	* Remove klines more than EXPIRED_KLINE_DELAY seconds old from
	kline.conf when rewriting it during m_unkline(). This should keep
	the file size down.

2002-03-30  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint6
	* Don't send a warning message on non-person SNICK, so pre-maint4
	servers can connect.

2002-03-30  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint5
	* Don't ignore users with no umodes set in SCAN UMODES.
	
2002-03-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint4
	* Fixing some nasty inefficiencies in the data sent over the
	network.
	* Only send one OPER out to the remote servers in m_oper.c, not
	two.
	* Send remote OPER out before MODE in m_oper.c.
	* Store old allowed_umodes when analysing remote OPER so we can
	correctly build the new outgoing string.
	* Emit meaningful SNICK messages, not random junk.
	* Properly initialise spoof_host so SNICK behaves correctly on
	remote client connect.
	* Modified IDLE to pass origin nick and idle time, and sent out
	IDLE as necessary on burst.
	* Update the "burst complete" messages so they give the number of
	messages transferred and the size of the burst in kB.
	* Don't send "Changed foo's mode..." messages in
	send_umode_out_oper() when the originator is a server (ie,
	services).
	* When propagating allowed umodes on burst, use umode_difference()
	to calculate them and thusly don't send anything if they are equal
	to user_umodes.
	* Initialise allowed_umodes to user_umodes when a remote NICK is
	received.
	* Build ZIP_LINKS stuff again. That bug was fixed ages ago.
	* Remove the +X requirement on REMOVE.
	* Move the per-hop idle time on WHOIS from +X to +d.

2002-03-23  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint3
	* OK, not sure how invite was originally broken, but the fix in
	+maint2 wasn't any better. Restored the original hybrid behaviour,
	then altered it so that, in order to send an invite, either a) you
	have to be +o on the channel, or b) the channel has to be +g.
	* This also unbreaks remote INVITEs.
	* Include the fix for the endianness issues in the
	challenge-response code.
	* Part messages not propagated unless can_send() to channel.
	* Don't break horribly when somebody joins a long channel name,
	and definitely don't modify the name parameter to get_channel().
	* Don't send out "No suck nick" errors to remote users when the
	name begins with a '#', only local ones.

2002-03-18  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint2
	* Changed a couple more atoi() calls  to strtoul(), in m_stopic.c
	* Get rid of the @255.255.255.255 in the "Closing Link"
	messages. Doesn't do anything useful, and way too many stupid
	lusers whine about it.
	* Fixed is_banned() in channel.c so that a quiet does not prevent
	another matching ban that occurs later in the list from taking
	effect.

2002-03-15  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31+maint1
	* Maintainance release to fix some minor and not so minor things
	since 1.0.32 is going to take a while longer.
	* Finally nailed that memory leak, it was in clear_sub_mtrie() in
	mtrie_conf.c, one singular missing call to MyFree(). It's in
	hybrid 6, it just showed up more on OPN.
	* Added a '-' in the appropriate position in map_send_server()
	(m_map.c) to correct a minor display glitch in MAP.
	* Force -Werror on during the __attribute__(()) and long long
	tests so that they still work when libc is broken.
	* KLINE_WITH_REASON is now turned on by default in config.h.
	* Removed the code that sends K:line reasons in quit messages to
	other clients, only the K:lined client sees the reason.
	* Disabled STATS_NOTICE by default (invasion of privacy).
	* Corrected matthewg's email address in version.c.in.
	* Changed +E so it doesn't block messages to self.
	* Got rid of silly need_invite stuff in m_invite(), that's a
	security hole (of a kind).
	* Fixed channel forwarding so it works in a re-entrant manner,
	rather than breaking horribly on multiple-channel-joins.
	* Changed X:line warnings to UMODE_REJ (they should never have
	been on UMODE_FULL).
	* Don't mindlessly ping servers which are in the "Connecting"
	state, they don't need pinging and will just 451 it.
	* Reduced the number of preallocated local clients from
	MAXCONNECTIONS to 256 (now #defined in client.c).
	* Fix a potential crasher in exit_client() when a server with no
	N:line in the struct exits.
	* Fixed the numeric clash between CONF_FLAGS_AUTO_SPOOF and
	CONF_FLAGS_EXEMPT_GLINE, not that it matters much since glines are
	neither supported nor necessary, so the latter flag is redundant.
	* Sanitised grammer of "Too many nick changes" message.
	* Added check for chanop status to +P and +F umodes (oops, but not
	too bad since they're EXPERIMENTAL still).
	* Added trailing whitespace filter to strip_colour().
	* Added 23 to the list of characters to remove in strip_colour().
	* Changed MIN_CONN_FREQ from 300 to 10
	* Repaired the fix to make +e override +q, goodness knows when
	that went missing...
	* Don't send out SNICK on client connect before NICK, the remote
	server will think it's a ghost and kill it, and then bad things
	will happen.
	* Decreased NICKLEN to 16
	* Preserve +e across OPER regardless of allowed_umodes.
	* Propagate allowed_umodes on OPER

2001-12-15  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.31
	* Fixed m_resp() so it doesn't dump normal users (what idiot wrote
	that?).
	* Backed off hybrid 6.2.1 changes to res.c, they break it.
	* Don't send out RPL_WHOISREALHOST when looking at yourself.
	* Modified find_matching_mtrie_conf() to support K:line searches
	properly, and is_klined() to use it. This will stop the
	indefinitely repeating K:lines.
	* Added cross-checks on length of kline_list, how is it getting
	looped?
	* Fixed a couple of grammatical errors and sanitised "whistling
	innocently".

2001-12-14  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed m_burst() so it ignores any non-servers.
	* Added m_snick() to handle extra data (original nick, spoof host,
	signon time)
	* Extended RPL_WHOISREALHOST to return original nick and spoof
	host for +a users.
	* Added experimental stuff to m_whois so +X users get a
	locally-generated idle message. If this works out we'll disable
	remote WHOIS and use the local one instead.
	* Changed idle check to look at the originator of a message
	instead of the local socket it came from, and added propagation of
	IDLE messages to update idle time as necessary.
	* Added sanity check to m_htm() so it doesn't crash when invoked
	with no parameters.

2001-12-13  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed UMODE_CCONN message on client exit so it shows the correct
	originating server.
	* Propagate allowed_umodes on burst.
	* Fixed m_kline() so that the same reason is stored in the mtrie
	and the config file, and so that the reason in the mtrie is
	actually valid (thusly un-breaking propagation).
	* Modified propagation of K:line reasons so that they remain
	intact, with placement date and nick.

2001-12-12  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Added check for long long to configure.in and suitable typecasts
	in tsdelta.c for displaying the members of struct timeval.
	* Changed printf format types for size_t to %zi in
	restart.c. Disabled printf format check in this file because gcc
	2.95 can't handle %zi.
	* Renamed umode_t to user_modes and user_modes to user_mode_table.
	* Merged in the changes from hybrid 6.2.1rc2, notably the resolver
	cache is gone, few minor fixes in res.c (hybrid changelog is as
	sparse as ever).
	* Changed I:lines to authenticate with nick instead of user,
	without changing I:line syntax (so it is now nick@host,
	annoyingly). Also fixed m_kline so it flags K:lines which exist
	but are overridden by an I:line exception, and doesn't add them
	again.
	* Changed spoofed I:line handling. = designates that the 2nd field
	contains a spoofed hostname, no = means use SPOOF_LIMIT_HOST. /
	means that the user will be spoofed automatically on
	connect. SETHOST changes between the spoofed hostname and the real
	hostname, if the user is -@.
	* Incresed allowed rate for remote WHOIS to 5/sec, that should
	stop the occasional missed WHOIS requests on OPN. In the future a
	WHOIS will run locally.
	* Updated the documentation to reflect these changes.

2001-12-09  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Added check to prevent redundant -k modes from being sent out.
	* Fixed stupid braindamaged -e-on-nick-change handling so it
	actually works now.
	* Fixed del_id so it only removes the target bans. This should fix
	the observed ban desyncs.
	* Fixed m_setname() so the -@ variant propagates properly.

2001-12-07  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed hostname-based K:lines so they work again.

2001-12-05  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Restored the old behaviour of sending pings only if no activity
	has been seen from the client for a while. This may have some
	effect on the superflous ping timeouts that some people have been
	reporting (assuming they are actually bugs, and not just network
	breakage). We'll see if this changes anything.
	* Fixed send.c so it reports the actual error when a write fails.
	* Fixed m_silence() in s_user.c so that the "End of silence list"
	message goes to the user, instead of to some random connection.
	* Eliminated the stupid bit of m_silence() that allowed anybody to
	view anybody else's silence list.
	* Added UMODE_CHANGEOTHER (+B), and bound the ability to use MODE,
	SETNAME, SETHOST, and SETIDENT on somebody else to it.
	* Added UMODE_FREESPOOF (+@), and bound the ability to use SETHOST
	to change to things other than SPOOF_LIMIT_HOST to it.
	* Rigged SETHOST to flip between true and spoofed hostnames when
	called without parameters.

2001-12-04  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Call exit_client() (with FLAGS_KILLED set) after propagating a
	K:line, and return. Don't let the client continue to connect.

2001-12-03  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Erased chdir() and chroot() stuff from ircd.c, useless and
	broken.

2001-12-02  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed Makefile.am at the top level so sgml docs are cleaned
	properly when building a distribution.

2001-12-01  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Removed sgid bits from all directories (freebsd sucks).

2001-11-30  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Altered m_stopic so to sends messages from sptr instead of me.

2001-11-30  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.29c (don't ask)
	* Add missing if (!MyClient(acptr)) in user_mode()
	* Fix string lengths in s_auth.c

2001-11-29  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.29b (don't ask)
	* Fixed stupid bugs in m_remove() and m_topic().

2001-11-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.27
	* Don't send ERR_NOSUCHNICK in m_message.c if sptr is a server.
	* Changed all notices from m_chall() to use UMODE_SERVCONNECT
	instead of UMODE_SEEROUTING.
	* Likewise for m_server(), SERVNOTICE to SERVCONNECT.
	* Also m_error().
	* Added kline_next to struct ConfItem, and fixed kline_list to be
	based on that, instead of on next. This fixes the whole kline
	timeout mess (I hope), the 'next' field is not available for
	klines.
	* Added experimental SCAN command which examines umodes.
	* Fixed set_channel_mode() so it doesn't desync when deopping
	yourself along with other changes, or when playing with +PF
	without +X.

2001-11-25  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Tidied up m_stopic() and fixed it so it doesn't update the topic
	if it hasn't changed.
	* Added colour stripping to kick reasons, ban masks, realname
	fields, topics
	* Fixed del_id so it returns non-zero if it didn't delete
	anything.
	* Use STOPIC to propagate new topics to other servers at all
	times. This ensures that topic timestamps are consistant.
	* Fixed attach_Iline so it check sockhost before host. This
	lessens the annoyance of the occasional DNS failures. Likewise for
	find_kill, which should get K:lines working that way as well. Note
	that this means I:line spoofs no longer protect you from IP-based
	K:lines, you need an exception flag in the I:line.
	* Add a ClearBit call in m_oper to ensure +e never gets into
	allowed_umodes
	* Added dnshost to struct Client, which will be the real hostname
	on the server the client is connected to, and the public hostname
	everywhere else.
	* Added RPL_WHOISREALHOST to WHOIS response for +a users,
	returning dnshost and sockhost.

2001-11-24  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Eliminated WHOIS_NOTICE code, since it doesn't work. I'm not
	getting rid of dead code in 1.0 as a general rule, but this has no
	right to exist. If I left it in somebody might fix it.
	* Changed vsprintf_irc() in sprintf_irc.c so it doesn't try to
	extract items from a va_list as const (just promote them
	afterwards). I hate powerpc's va_args implementation.

2001-11-23  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Added code to client.c and s_user.c to count the number of
	clients with a given umode on a remote server. Do not send
	wallops-like messages to remote servers if there are no clients
	there which want to receive them.

2001-11-21  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Modified m_quit and m_part so that the quit and part messages
	are strictly limited in length, this time counting the surrounding
	quotes.
	* Ignore extra parameters to ADMIN when the user does not have
	UMODE_REMOTEINFO, don't reject the command outright.
	* Likewise, send a PONG locally when trying to do a remote PING
	* Blocked remote LUSERS from -S users
	* Don't set -e when changing nicks if the old and new ones are the
	same according to irccmp()

2001-11-18  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.26
	* Fixed m_map() so MAP is not available to -V users (oops,
	introduced in 1.0.24.
	* Don't send out notices about rehashes triggered by remote
	servers.
	* Eliminate oper_cptr_list entirely, OPERWALL now uses
	local_cptr_list. This fixes the bug where OPERWALL could cause an
	infinite loop.
	* Fixed topic propagation. Now it uses "oldest channel, but newest
	topic if channels are the same", instead of "oldest topic".
	* Allow TOPIC query without joining the channel for -s channels,
	and changed the overriding umode from +p to +a.

2001-11-16  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Restrict remote PING to +S
	* Fixed REMOVE so it actually works

2001-11-15  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.24
	* Allowed MAP to be routed to remote servers
	* Added remote and global forms of the HTM command. Now the first
	parameter *must* be a server name. '.' is an alias for the server
	you are currently connected to, '*' means all servers.
	* Disabled notice on connection drop due to X:line. D: and K:
	lines don't give them, so neither should X:lines.
	* Moved warning on non-dropping X:line to umode +f (was +r).
	* Increased default HTM threshold from 40k/sec to 500k/sec
	* Tweaked fdlist_check() in fdlist.c to ensure +h clients are
	always in FDL_BUSY.
	* Added servers_connected_in_class[] array to enforce links limit
	for autoconnecting classes. This adds an arbitrary limit of 256
	classes.

2001-11-13  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.23
	* As of now, I am signing all releases. See README.
	* Added remote REHASH support to supplement UNKLINEs new
	behaviour. Add a server name or '*' to the end of the command to
	use.
	* Fixed rather nasty sendq overflowing bug in send.c
	* Fixed dent's broken comments.
	* Only send "Empty messages from ..." message for remote servers,
	not local clients.
	* Adjusted DNS timeout algorithm. Now initial == 3, retries == 3,
	factor == 1.5.
	* Fixed K:line timeouts so they work again.

2001-11-11  Daniel Dent  <ddent@vc.bc.ca>

	* Re-added credit for the hidden/user/server port code to
	Edward Brocklesby (larne) ejb@leguin.org.uk.  Not sure how that
	got removed.  Sorry.
	* Fixed a stray reveal of hopcount to users without umode V.

2001-11-10  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.22
	* Changed try_connections() in s_serv.c so that it doesn't try to
	connect if _anything_ has the target name, not just registered
	servers.
	* Fixed s_zip.h so it doesn't include zlib.h when not building
	with ZIP_LINKS (AAAAAAARGH!)
	* Don't add quotes to quit and part reasons if they are zero
	length, so messages are not created where they previously did not
	exist.
	* Eliminate documentation on glines, they are not supported.
	* Moved a couple more messages to +Y that got missed.
	* Removed stupid check on number of uppercase characters from
	valid_username() in s_user.c
	* Changed m_unkline so rehash is no longer called automatically,
	and send a REHASH manually at the end of a netburst if any
	unklines were propagated.
	* Also added a check so that unklines are not added to the cache
	if they are already present.

2001-11-10  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.21
	* Added umode +Y, and moved all messages that can be send about
	connecting servers prior to the burst to that mode.

2001-11-07  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.20
	* Added the current number of links to the output of STATS Y, as
	the last number in the message.

2001-11-06  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Moved the flud stuff in struct Client up into the non-local
	section, just to be safe, then disabled FLUD entirely by
	default. It's broken and I don't want to spend time trying to fix
	it right now, we have a network to deploy. See if this can't be
	added back later on.
	* Fixed stupid error in m_silence() so it works without slagging
	the network. How did that one escape testing?
	* (A && B) != A && B. wildcarded WHOIS should work properly
	now.

2001-11-05  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Reduced preallocation to 256 units from 1024, which should
	reduce the starting memory footprint a bit. (thanks, Jeremy Katz)

2001-11-04  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed propagation of client IP addresses so that sptr->sockhost
	is filled in (removes garbage from 'Client exiting:' messages).

2001-11-02  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Rewrote configure.in, shifted most of the cruft that made it
	unreadable into acinclude.m4, added some auto-warnings-test stuff
	that makes it portable to various versions of gcc.
	* Added a few --{en,dis}able-* and --with{,out}-* options to
	configure.
	* Eliminated broken checks that were preventing MEMOSERV from
	working.
	* Added a pile of extra warning flags and fixed all the warnings.

2001-11-01  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Added AC_C_BIGENDIAN test to configure.in and fixed md5.c to use
	it.
	* Removed flood protection from MAP command, since it is
	restricted anyway.
	* Fixed a race condition in connect_server that could let the same
	server progress in connecting far enough to munge the hash table
	(probably)
	* Added a whole pile of sanity checks to hash.c
	* Moved -u to the start of the command in configure.in. Damn
	BSD again.
	* No longer link against crypt

2001-10-28  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.19
	* Replaced stupid call to atoi() with strtoul() when reading IP
	addresses. Sigh.
	* Changed --utc to -u in configure.in. Damn BSD.

2001-10-26  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.18
	* Added configure test for existance of __va_copy, and only enable
	the powerpc workaround if it is present.

2001-10-24  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed log() message in connect_server (s_bsd.c) so it actually
	tells you the name of the server it is connecting to.
	* Fixed	log() message in attach_cn_lines - that is called when
	connecting _to_ a server, not when receiving a connection.

2001-10-16  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.17
	* Checked all the strcpy() calls again. Most of them are gone
	now. One overlap bug eliminated.
	* Added a missing , in version.c.in, INFO had two lines
	contatenated
	* Changed all occurances of NO_CHANOPS_WHEN_SPLIT to
	NO_CHANOPS_ON_SPLIT. Geez.
	* Corrected a printf format type in m_set.c
	* Added --with-config=opn as an option to configure, which uses
	config.h.opn instead of config.h.dist (and --with-config=dist,
	which restores config.h.dist config)
	* Corrected a grotesque printf format bug in m_pong.c
	* Fixed m_unkline.c so that klines without fields saying when they
	are placed are removed at once (was random).

2001-10-11  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Added patch from David Roundy for use of __va_copy to handle
	va_args idiosyncracity on powerpc. Watch this for portability to
	non-GNU systems.
	* Fixed remote invocation tests so that unregistered users don't
	bypass them
	
2001-09-09  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.15
	* Fixed the randomness of password challenges. It shouldn't repeat
	like that any more.
	* Added an extra field to N:lines. If it's present, the server
	doesn't appear in LINKS.

2001-08-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.14
	* Fixed check for UMODE_GLOBAL_KILL in m_kill() (m_kill.c) so that
	it allows servers to KILL users remotely, needed to prevent ghost
	users.
	* Added __attribute__((format(printf,...))) where appropriate,
	fixed a couple of format string bugs and a whole pile of incorrect
	ranges.

2001-08-26  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.13
	* Crossport of the changes between hybrid 6.0 and 6.2 which are
	still relevant to dancer. Notably one or two things relating to
	server hiding, and a couple of bugs which are not clearly
	documented.
	* Added MIN_USERS_FOR_LIST to config.h, which controls the minimum
	number of users that must be in a channel before it shows up in a
	/list.

2001-08-15  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed buffer overruns in register_user (s_user.c) and
	sendnick_TS (s_serv.c) by increasing ubuf from 12 characters to
	BUFSIZE (it needs to contain a umode string).

2001-08-12  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Oops, forgot to move cmode -f to the secondary buffer as well as
	+f (channel.c)

2001-08-10  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.12
	* Removed the display of target host addresses when triggering
	autoconnect.

2001-08-09  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Added the --with-serno parameter to configure and removed
	serno.h.

2001-08-07  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.11
	* Altered sending of "Client exited" messages to be local only,
	and to generate them from the remote QUIT messages. This causes a
	massive cut in network traffic.
	* Don't send "remote server introduced" messages remotely, they're
	already generated everywhere.
	* Removed the warning on client DNS/ident lookup failure, it's not
	useful and adds very high levels of noise.
	* Altered parse.c so that all warnings about messages received
	from remote servers are not send back along the pipe they came
	from. This should fix that nasty message storm.
	* Fixed RPL_MAP (messages_cust.tab) so the message is quoted

2001-08-06  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.10
	* Restored TS to 4. There has never been a dancer-TS4, nor
        is the protocol the same as hybrid TS5.
        * Un-broke autogen.sh and config.h

2001-08-05  Daniel Dent  <ddent@vc.bc.ca>

	* Changed the configuration paths for persistence of
	kline.conf and dline.conf.  Changed the path of the log for
	cleanliness.
	* Added credits to /info.
	* Clocked TS version to 5.  4 already exists, and our
	behaviour of ignoring the fact that a channel is op-less is
	the big change in TS5.

2001-08-05  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.9
	* Fixed m_sjoin() so that whether a channel has ops or not is not
	considered if one version of the channel has an older timestamp
	than the other. This avoids a nasty little way to hack ops on OPN,
	since most channels are usually op-less.
	* Clocked TS version to 4 and set minimum compatible to 4. This is
	for two reasons: first, I should have done this in 1.0.4, the
	protocol has changed. Secondly, unlike efnet, OPN does not
	consider channel desync to be acceptable, even during a
	transitionary period. This is more a sanity check than anything
	(except for the one or two people who use dancer elsewhere
	*already*. Sorry, but this has been pending for ages. Nothing
	older than 1.0.9 should be used anyway)

2001-08-02  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.8
	* Edited KLINE to prepend the nick of the person who placed the
	K:line
	* Hacked in kline_list and changed STATS K to do a simple match()
	search instead of that nasty multi-domain stuff
	* Moved KLINE ban message to get_str(), edited
	* Switched ZIP_LINKS off by default

2001-07-31  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Changed the RPL_FORWARD message to be easy to parse

2001-07-30  Daniel Dent  <ddent@vc.bc.ca>

	* Version 1.0.7
	* Updated docs in config.h to show what is actually added to
	quit and part (now [ and ]).

2001-07-30  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.6
	* Faked the sender field in numerics if the user in question
	doesn't have UMODE_AUSPEX
	* Generate the umode list in RPL_MYINFO automatically from the
	data in umodes.h
	* Fix a bug in the handling of bad umodes in user_mode() so that
	it doesn't destroy UMODE_IDENTIFIED
	* Sort the channel modes as they are parsed so that newly added
	parameterised ones go to the end. This fixes a minor desync error
	in some clients.
	* Maybe fixed the debug warnings that check_for_flud() and
	free_fludees() were throwing.
	* Fixed topic propagation. It keeps the proper topic now, not the
	hacked one (sheesh).

2001-07-28  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.5
	* Fixed a bug in realname propagation
	* Tidied up nickname collision warnings
	* Tidied up spy on LINKS
	* Fixed UMODE_GRANT to be a lot quieter and less messy

2001-07-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.4
	* Unklines are now cached and propagated
	* Tidied up notices on UNKLINE
	* Fixed a bug in the placing of timeout KLINEs

2001-07-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.3
	* Changed value of MODE_JUPED so it doesn't conflict
	* Fixed WHO ** so it doesn't hide invisible users' channels from
	auspexen
	* Tied SQUIT announcements to UMODE_AUSPEX, just in
	case. Investigate these further.

2001-07-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.2
	* Removed the debug message when a file is hashed in, because it
	makes UNKLINE evil on OPN 
	* Removed the magic to turn KLINE 0 into KLINE 1, that's just
	silly.
	* Reduced verboseness on nick changes so you only get one at once
	* Removed redundant quoting from propagated QUIT/PART messages
	* Really removed jupe warning messages this time
	* Fixed m_whois() so it properly forwards wrt. CAP_RW, and fixed
	user_mode() so it parses remote +o on OPER

2001-07-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 1.0.0, go figure

2001-07-20  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed jupe warning message so you only get one of them
	* Fixed channel jupe cleanup in m_sjoin() so it actually works
	without segfaulting

2001-07-19  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed make_nick_user_host() so it doesn't change the last
	character to a * every time, only when the mask was truncated

2001-07-17  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.3.7rc4
	* Removed all the clever stuff from TSDELTA, it just plain wasn't
	right. No more attempts to handle the network latency, the
	response will be the sum of time delta and latency - which is what
	matters anyway.
	* Removed +C exemption for (auspex/immune)
	* Moved the umode stuff from client.h to umodes.h, removed most of
	the macros to TestBit and replaced with HasUmode calls.
	* Removed a nasty bug in the code to record ping times. It doesn't
	randomly eat data in memory now.
	* Removed the superflous AC_DEFINE_UNQUOTEDs on PACKAGE and
	VERSION, they don't get defined twice in setup.h now.

2001-07-15  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Increased ERR_LAST_ERR_MSG. It doesn't fail assert() on trying
	to send certain numerics now.
	* Changed make_nick_user_host() so it appends a * when truncating,
	so truncated masks will match()

2001-07-12  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Fixed crash in tsdelta when no match can be made on the server
	name
	* Fixed test in m_message() so check_for_flud() doesn't get called
	on non-local clients

2001-07-08  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Reconstructed build system with GNU automake, ditched debian/
	stuff

2001-07-05  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.3.6(rc3)
	* Removed the 24hr limit on K:line duration. Please don't set
	K:lines which will last beyond the end of the epoch. They'll
	probably expire immediately, unless they wrap around half a dozen
	times. Geez.
	* Fixed a nasty sequencing error in the challenge/response code
	which made it trivial for an attacker to play two servers
	simultaneously and fake a connection, without ever having to sniff
	data.
	* Reworked the handling of ping timing in m_pong(). This turned
	out to be unnecessary, but it's better like this anyway.
	* Extended the quit/part reason length limit to 128 characters.
	* Fixed privs on avoiding channel join/part spambot detection, was
	IsImmune, now NoFloodProtection.
	* Capabilities don't propagate, so the trick with silently
	ignoring connections from juped servers only works on the server
	connected to services. Moved the warning message to UMODE_EXTERNAL
	(+x) for now, server capabilities need to propagate in the next
	release.
	* Screamed a lot. Then ran make depend to update the .depend file
	in src which was dated Dec 1999. This one has probably been
	causing 7 different kinds of hell. CVS will now contain an updated
	one, please ensure you rerun make depend whenever necessary.

2001-07-03  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.3.5(rc2)
	* CHANSERV, NICKSERV, and similar commands work again. No more of
	that silly sending PRIVMSGs to
	nickserv@services1.openprojects.net.quiet or whatever it was
	doing. Just send them to NickServ. The @servername PRIVMSG form
	has been disabled to protect server information, so it doesn't
	work anyway. Sanity check can be added in the future somehow if
	either server capabilities were propagated, or if the commands
	were forwarded to the server which services is attached to, to
	check for CAP_SERVICES.
	* Tidied up STATS P wrt umode +0v (bound the right way round now)
	* When a server is informed by another server that a user is
	connecting, it checks against it's *own* K:lines and tK:lines, and
	if it finds a match, propagates the K:line or tK:line
	* Pruned a few more messages which were being broadcast by all
	servers.
	* Abandoned tK:lines entirely. Real K:lines now have expiry times
	(hold field in ircd.conf or kline.conf). Lots of tK:line code
	remains, but m_kline() can no longer add them, so it *should* all
	be inactive. Clean up later.

2001-07-02  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.3.4(rc1)
	* Store ping times in msec (using gettimeofday()) rather than
	seconds, since your normal ping time is going to come up as 0 at 1
	second resolution. Also fixed a couple of minor bugs in ping time
	calculation, and caused a second ping at the end of a netburst to
	get a good estimation of the ping time at once, rather than
	waiting for the next ping to occur a minute or two later.
	* Added the (experimental) TSDELTA command to perform a
	rudimentary calculation of the time delta between two
	servers. This should make it easier to hunt out the ones without
	good ntpd sync, and to keep tabs on how accurate timestamps are.
	* Propagate SPINGTIME messages when a server pong is received, so
	that all servers have the ping time on the link on their side of
	the given node available, for use in MAP.

2001-07-01  Andrew Suffield  <asuffield@users.sourceforge.net>

	* m_links() now iterates over N:lines and shows connected servers,
	rather than iterating over connected clients. This means LINKS
	will be sorted alphabetically by name. No more figuring out the
	way servers are linked from the ordering.
	 IMPORTANT: Note that if only the server/servers connected to this
	server have N:lines in ircd.conf, then LINKS will reveal exactly
	what this one is linked to. This stays for now because it works on
	OPN, it needs to be fixed at a later date (fixing it is
	non-trivial, doing it this way is a two-line change).
	* No more /msg user@server. Who uses this anyway? Regardless, it
	can be used to figure out what server a user is on. Tied to +V
	(see routing) for now, but given half a reason it can go in the
	bin.
	* Restored the original credits file to CREDITS in the source tree
	(dancer credits will also go in here when they're finally
	written), as I realised INFO was the only place they were listed
	in full, which we trimmed.
	* Remote WHOIS propagates again if the client which sent it isn't
	local (broken in 0.9.3.3). Oops. This is needed for all WHOIS
	messages to go out properly.
	* Don't crash horribly on QUIT without a reason (introduced in
	0.9.3.2)

2001-07-01  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.3.3
	* Remove capability to run commands remotely for users without +S
	(or +R for the few commands which change network routing)
	* If somebody ducks a channel jupe on a split server, we have to
	clean up. Do this by checking for jupe on SJOIN, and kicking all
	local clients.
	* Added the experimental command REMOVE which works just like
	KICK, but sends out PART messages. See how clients react to
	this. Appears to be fine with epic4 and xchat. I'd like to see
	every single client we can think of tested with this before we
	change the behaviour of KICK over to do this sort of thing.
	* Fixed the sorting code. Maybe it'll actually not segfault now.

2001-06-29  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.3.2
	* Make umode +X allow setting of cmodes +P and +F
	* Add cmode +F which allows use of channel forwarding
	* Ping times are now recorded, and displayed on the MAP
	command. Client ping times are also recorded, but nothing is done
	with them (yet).
	* C/N lines are sorted by server name as they are loaded. This
	makes MAP and STATS C appear in order.
	* Applied new colour filter to AWAY, PART, and QUIT, as well as
	extending it a bit to better handle some stray characters.
	* Fixed reporting of cmodes +fk so they report in an order which
	doesn't screw up clients. Note that they can still go out in the
	wrong order on a mode change. Fixing this would be messy; easier
	to fix the clients.

2001-06-28  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.3.1
	* Made umode +F bypass the nick change throttling as well
	* Removed !user from the kill path in m_kill()
	* Don't give away routing in server exit messages
	* Don't send redundant messages to people with both +V and +s set
	when a server connects
	* Add get_str() and the strings table in messages_cust.tab as a
	central repository for messages which don't have numerics sent
	with them.
	* Strip colours from AWAY messages. Transform
	bold/reverse/underline/colour codes in messages sent to +c
	channels into spaces instead of the old simple blocking of such
	messages.
	* Decreased the wait period between expensive commands from 5
	seconds to 3

2001-06-27  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Added cmode +P, which causes a channel to not be destroyed when
	all users leave it. This means ban lists are preserved, along with
	exceptions and invex lists, current cmodes, etc. Such channels may
	also place up to 500 total hostmask modes (bans, exceptions,
	invexes), as opposed to normal channels which may only have 50.
	* Wrote a changelog

2001-06-26  Andrew Suffield  <asuffield@users.sourceforge.net>

	* Version 0.9.2.1
	* This encompasses all changes to date. Thanks to all those who
	contributed, but I'm afraid I don't have details to add nor dates
	on the patches. A limited list in the form of the old changelog is
	at the bottom of this file
	* Assorted changes to messages for openprojects
	* Only set cmode +n automatically on channel creation, not +t
	* Propagate K:lines across the entire network (when NEED_ULINES is
	undef)
	* Make the automatic anti-flud code kill if the flooding is
	sufficiently extreme
	* Disable & channels (local to a server)
	* Allow opers to send notices to all clients
	* Make opers godly. They can do anything a chanop can, are immune
	to bans, channel limits, and so on.
	* Report back on successful kills from remote servers
	* Broadcast notice when a netburst is complete
	* Broadcast notice when a new network record number of users is
	reached
	* Remove G:line voting (although G:lines are not used on
	openprojects any more)
	* Use the client's nick as the default username in an OPER command
	* Reject connections from/to non-dancer servers
	* Report on who makes K:lines
	* Accept reasons on PART messages
	* Quote user PART and QUIT reasons (using "")
	* Propagate AWAY messages, bot warnings, client connections, and
	UNKLINEs
	* SETHOST, SETIDENT, and SETNAME commands for opers, which change
	the hostnames, idents, and real names of clients attached.
	* Store all passwords as MD5 hashes (O:lines, I:lines, and
	N:lines)
	* Use a challenge-reponse authentication for remote servers,
	rather than sending passwords in cleartext
	* Allow CONNECT and SQUIT server names to be abbreviated with a *
	* A banned user cannot talk on a channel
	* Propagate topics and away messages in netbursts, so they are not
	lost due to server crashes/splits
	* Make opers immune to kicks/bans/similar
	* Let opers see all the secret channels, and all the invisible
	users, and all channels every user is on, regardless of
	invisibility or secretness
	* Hide the list of channels an invisible user is on from
	non-opers, unless the person asking can see them on that channel
	anyway (by sharing it with them)
	* Propagate all cmodes and umodes to all servers
	* Hide both the IP addresses of the servers and how they are
	linked together from normal users
	* Do not show normal users who the opers are
	* Block most STATS commands from access by normal users
	* cmode +p is now obsolete, and trying to set it will set cmode +s
	instead
	* Supply the commands NICKSERV, CHANSERV, and similar, and their
	abbreviations NS, CS, etc., to communicate with services.
	* Don't monkey around when a cmode string is invalid. Stop at the
	first one which is broken.
	* Add a SILENCE command. SILENCE +hostmask will block all private
	messages from a user server-side, which is an effective way to
	block a person flooding you. SILENCE alone lists current silences,
	SILENCE -hostmask removes one.
	* Add cmode +I (invex), which takes hostmasks like bans, and
	allows users matching it to join regardless of whether they are
	invited or not (has no effect on channels without +i set).
	* Add umode +e, which is set when a user is identified with
	nickserv.
	* Add umode +I, which prevents anybody from inviting you to
	channels, and prevents you from inviting anybody (for anti-flood
	purposes)
	* Add umode +E, which prevents any users who have not identified
	with nickserv from sending you private messages/notices
	* Notify opers whenever a new channel is created
	* Add umode +C, which prevents you from sending or receiving CTCP
	messages
	* Add a MAP command (restricted to opers to protect routing
	information)
	* Add cmode +f, invite forwarding. A channel which is +i can also
	be set +f #channel, which causes all people who attempt to join
	without either being invited or being on the invex list to be send
	to the other named channel
	* Add magic to +b bans, which allows channels to be specified in
	the form nick!user@host!#channel. When a banned user attempts to
	join, they will be redirected to the named channel.
	* Add cmode +c, which blocks all colour codes from being sent to
	the channel
	* Add cmode +q (quiet), which is exactly like a ban, except it
	doesn't prevent a user from joining the channel. This means the
	only effect is to prevent the user from speaking on the channel
	* Prevent a user from changing their nick if they are unable to
	speak on any of the channels they are in, whether that is because
	of bans, quiets, or channel moderation.
	* Remove all colour and escape codes from the list of allowed
	characters in channel names
	* Get rid of the aged business about [, \, ], and ^ being the
	upper/lower case versions of {, |, } and ~ (due to some european
	character set used by the original designers of IRC). They are now
	treated as different characters
	* Opers are no longer all-powerful; the things an oper can do has
	been drastically limited. Privileges are now assigned to umodes,
	most of which are restricted unless the oper's O:line allows
	it. O:lines now contain a list of allowed and default umodes,
	instead of the old few obscure privilege letters. This allows much
	more fine control over what permissions are granted
	* Add a MAKEPASS command which makes an MD5 hash from a given
	password (for use in O:lines and similar)
	* Add a umode +* which changes the semantics of manipulating
	another person's umode. Normally an oper can only change another
	person's umode within those that person is currently allowed to
	have. When the oper has +* set their changes add or subtract modes
	from the target users's set of allowed modes, as well as changing
	their current mode. Note that an oper cannot grant a mode they do
	not have themselves, nor can they grant the ability to grant modes
	to others (+*)
	* Make dancer compile cleanly with gcc 3.0
	* Show disconnected servers in the MAP command (those which have
	N:lines but are not currently connected to the network)
	* Add a server capability to identify a server as being a services
	node, not an ircd

------------------------------------------------------------------------
Everything below this line is the old changelog from before I started
writing it up -- asuffield
------------------------------------------------------------------------
	
Consider this a changelog.

release critical:

*+make "STATS ?" unavailable to the end user.  Not "STATS <anychar>" but
  literally, "STATS ?"
  Thanks to InnerFIRE from StarChat for this one!
  (Gerhard Mack <gmack@innerfire.net>
*+modify immune patch so it always accepts it from servers
  I patched this one too ;)).
*+sethost messages - make them more correct, only sent from one server
  I made a patch for this one ;)).
*+whox equiv (see all users online, including invisible, in a WHO listing)
  Thanks to Daniel Jacobowitz (drow) <dmj+@andrew.cmu.edu> for creating a patch for this.
  You'll be entered in the changelog when I update it ;).  
*+remove hostmasks from non-oper stats o, or perhaps make stats o
  unavailable, stats p exists now anyway
  - patch available as part of a whole collection of patches
  Thanks to Daniel Jacobowitz (drow) <dmj+@andrew.cmu.edu> for creating a patch for this.
  You'll be entered in the changelog when I update it ;).  
*+kick messages - currently every server seems to send one
  - this was added in the "kickspy" patch
  Thanks to David Taylor <davidt@yadt.co.uk> for fixing netgod's patch for this.
  You'll be entered in the changelog when I update it ;).
*+/notice $server dosen't work
  - seems to just be a purposeful limitation (which we don't need), of
    requiring a top level domain
  - this one and the next completed by Daniel Dent <ddent@vc.bc.ca>.
*+/notice #*.* needs the same patch
*+make default chanmode only +n, not +nt
  - half patched, it says it is setting +n, but does +nt anyway!
  Thanks to David Taylor <davidt@yadt.co.uk> for fixing my patch for this.
  You'll be entered in the changelog when I update it ;).
*+add unkickable/un de-opable umode, for opers and specially for services..
  all its "bugs" look like they could be fixed with this - still allow
  opers to kick/de-op
  Thanks to David Taylor <davidt@yadt.co.uk> for creating a patch for this.
  You'll be entered in the changelog when I update it ;).
*+a call to strcpy() during fast, repeated manual rehubbing with 'whiplash' 
  from preconfigured autoconnects eventually segfaults.  
*+quit messages on split for servers compiled with server hiding should
  show server NETWORK_NAME splitting from the current server

important:

*+Grab the server/user port patches from INS.
  - done by me (Daniel Dent <ddent@vc.bc.ca>)
*+Clean up the SPOOF_FREEFORM include.
  - done by me (Daniel Dent <ddent@vc.bc.ca>)
*+Add the other services we have to the /services commands.
  - done by me (Daniel Dent <ddent@vc.bc.ca>)
*+crypt I line passwords
  - thanks Gerard Oskamp <gerard@mediadesign.nl>!
*+conf file generation util
  - I am working on this one...
  - conf is done (Daniel Dent <ddent@vc.bc.ca>)
*+propagate mode +j #channel
  - thanks Gerard Oskamp <gerard@mediadesign.nl>!
*+whois * (see a whois listing for everyone online)
  - I have been told that this will be done in rc5
  - but it wasn't...
  - actually it was, it was just made a define for this release, probably
    not in the future
*+disable local channels
  Thanks to David Taylor <davidt@yadt.co.uk> for creating a patch for this.
  You'll be entered in the changelog when I update it ;).
*+OPER with no user defaults to your own nick as the O line used
  Thanks to David Taylor <davidt@yadt.co.uk> for creating a patch for this.
  You'll be entered in the changelog when I update it ;).
*+Priviledged user mode to see channel creations.

normal:

*+remove is an oper from whois info
  - thanks Gerard Oskamp <gerard@mediadesign.nl>!
*+throttle on "makepass"
  Thanks to David Taylor <davidt@yadt.co.uk> for creating a patch for this.
  You'll be entered in the changelog when I update it ;).
*+propagate /away
  Thanks to Edward Brocklesby (AKA is) <ejb@leguin.org.uk> for creating a patch for
  this. You'll be entered in the changelog when I update it ;).
*+patch to set others' umodes dosen't work
   Thanks to david-t for this one. ;))
  
wishlist:

Changelog for hybserv
~~~~~~~~~ ~~~ ~~~~~~~

*+make services recognize the SETHOST/SETIDENT commands
 - Thanks for the patch David!
*+md5 for hybserv (use MD5 for the passwords in hybserv, oper and DB..)
  - Thanks for this one go to lilo, david-t, lots of people I probably don't
    really know, and I guess I did a bit too.
*+get the services database converted
  - this involves converting achurch's (ugly) db to hybrid's (looking clean)
    format
  - lilo is working on this one
  - lilo says he's done, its in CVS now ;)

Please note that you may not notice some of these things if you are
opered/not opered.
