2.10.3

1999-08-13  Christophe Kalt

	* channel.c/match_modeid(): logic fix (reported by Michal Svoboda).

	* os.h: added YET ANOTHER KLUDGE for linux and poll().

	* ircd.c: assume "-s" option in CYGWIN environment.

	* configure.in: update for CYGWIN environment.

1999-08-13  Piotr Kucharski

	* mod_socks.c/socks_read(): allow more methods in socks5 check.

1999-08-01  Piotr Kucharski

	* ircd.c/bad_command(): -d command line option no longer exists,
	while -s was added.

1999-07-28  Christophe Kalt

	* struct_def.h: IsChannelName() macro cannot use cid_ok() for the
	client.
	
	* channel.c/m_njoin(): inverse condition prevented modes from
	being sent to users and 2.9 servers.

1999-07-27  Piotr Kucharski

	* s_id.c/cid_ok(): quite unfortunate typo which made joining
	!channels impossible (from Michal Svoboda).

1999-07-25  Christophe Kalt

	* channel.c: sanity checks to drop modes on +channels even when
	received from servers (from Michal Svoboda).

	* struct_def.h, channel.c, s_id.c: added checks to ensure !name
	validity (from Michal Svoboda).

1999-07-23  Christophe Kalt

	* s_bsd.c/inetport(): fixed test for IPv6 (from KIKUCHI Takahiro).

	* ircd.c:
		* better casting for sbrk() for OSF 4.0.
		* setup_me(): fixed syntax for IPv6.

1999-07-21  Piotr Kucharski

	* channel.c/set_mode(): send ERR_UNKNOWNMODE to 'mode O' issued
	on non-!channels.

1999-07-21  Christophe Kalt

	* s_misc.c/exit_one_client(): generate fake PARTs for users
	quitting anonymous channels.

	* send.c/sendto_common_channels(): skip anonymous channels.

	* Makefile.in: ircdwatch needs clsupport.o which needs clmatch.o.

	* channel.c: added notices to warn users about +a channels.

1999-07-20  Kurt Roeckx

	* channel.c:
		* m_njoin: send +v for uniqops in the right case
		* send_channel_members: send +v inside njoin for ops too
		* m_invite: send back numerics if the channel doesn't exist	

1999-07-18  Piotr Kucharski

	* channel.c/set_mode(), m_kick(): send ERR_NOTONCHANNEL, not 
	ERR_CHANOPRIVSNEEDED, thus disable stealth secret channel probing;
	furthermore, use rather sptr->name, not parv[0] in sending errors;

1999-07-17  Christophe Kalt

	* ircd.c/setup_me(), s_bsd.c: fixed that really old bug about the
	I line format to match connections received on the loopback
	interface (from Eugene L. Vorokov).

	* configure.in: fixed previous changes about poll() (reported by
	KIKUCHI Takahiro).

1999-07-17  Kurt Roeckx

        * s_user.c/m_kill(): killer could end up < path

1999-07-14  Christophe Kalt

	* configure.in, os.h: use ncurses.h (from KIKUCHI Takahiro).

	* configure.in: SunOS has poll(), but we don't want to use it
	(reported by KIKUCHI Takahiro).

	* mod_lhex.c: replaced strtoul() with sscanf().

1999-07-11  Christophe Kalt

	* a_defines.h was missing support_def.h (from KIKUCHI Takahiro).

	* Makefile.in: ircdwatch.c uses strerror(), needs clsupport.o
	(from KIKUCHI Takahiro).

	* config.h.dist, ircd.c, s_debug.c: renamed CONNECTTIMEOUT to
	ACCEPTTIMEOUT, and changed from 30 to 90.

1999-07-11  Piotr Kucharski

	* mod_socks.c:
		* socks_write(): a typo made iauth allow open proxies and
		caused a lot of BADPROTO warnings (from KIKUCHI Takahiro).
		* socks_init(): buffer overflow with tmpbuf[] being too
		small to hold too many iauth options (also from Takahiro).

1999-07-09  Christophe Kalt

	* configure.in, os.h, s_bsd.c: IPv6 updates (from KIKUCHI Takahiro).

1999-07-05  Christophe Kalt

	* s_bsd.c/read_message(): can't use iauth_options when USE_IAUTH
	is undefined.

1999-07-05  Piotr Kucharski

	* channel.c/m_invite(): invite to :-channels was sometimes 
	lost with no error.

1999-07-04  Christophe Kalt

	* a_conf_def.h, a_conf.c, a_io.c: added the "timeout" option.

	* mod_socks.c: added PROXY_BADPROTO & OPT_PROTOCOL to
	differentiate between unexpected and bad protocol.

	* s_id.c: fixed alphabet_id[] (noted by Michal Svoboda), and
	rewrote some code.

1999-07-04  Piotr Kucharski

	* s_user.c/m_nick(): fix performance bug introduced in code
	preventing insidious collisions

	* mod_socks.c/socks_open_proxy(): now reports in logs versions
	of open proxies found

1999-07-02  Kurt Roeckx

	* configure.in, Makefile.in: Added -I for inet6.

1999-07-02  Christophe Kalt

	* res.c/proc_answer(): portability fix from hybrid6.
	
	* send.c/sendto_match_butone(): finally looked closely at why this
	was sending $*.mask to the wrong servers, fixed.

	* struct_def.h, send.c/sendto_match_butone(), list_ext.h,
	list.c/make_client(), ircd.c/setup_me(), s_misc.c/exit_client(),
	s_serv.c, s_service.c/m_service(), s_user.c/m_user(): removed old
	code conditional to NO_USRTOP being undefined.
	
	* s_user.c:
		* m_nick(): new delay on nicks to prevent insidious
		collisions (from Piotr Kucharski).
		* m_private(): dropped restrictions on mass msg/notices.

	* s_auth.c/read_authports(): can't call set_clean_username with
	->auth pointing to ->username (from Piotr Kucharski).

	* mod_socks.c: couple typos.

	* a_conf.c/conf_read(): ->popt wasn't initialized.

1999-06-27  Christophe Kalt

	* s_misc.c/exit_one_client(): made BETTER_NDELAY a little more
	friendly (from Piotr Kucharski).

	* a_io.c/sendto_ircd(): added error output in write error notice.

	* hash.c/hash_channel_name(): added shortname parameter to disable
	guess and fix bug (From Q).

	* channel.c/m_join(): reject local user join for duplicates.

	* mod_socks.c: more options, less bugs (from Piotr Kucharski).

	* s_user.c:
		* m_nick(): kill nicks introduced by server if parc != 8
		instead of simply sending a notice.
		* register_user(): static variable wasn't declared as such.

	* ircd.c, s_serv.c: used mybasename();
	
	* support_ext.h, support.c: added mybasename();

1999-06-20  Christophe Kalt

	* mod_socks.c: added code to allow checks for v5 as well as v4,
	depending on configuration (from Piotr Kucharski).

	* configure.in, ircd.c/ircd_writetune(), s_serv.c/m_rehash(): use
	basename, and check if it needs libgen.

	* channel.c/m_njoin(): simple optimization resulting from change
	to sendto_match_servs_notv() below.

	* send_ext.h, send.c: sendto_serv_{not,}v and
	sendto_match_servs_{not,}v now return an integer.

1999-06-16  Christophe Kalt

	* iauth.c/main(): send version to ircd upon startup.

	* mod_rfc931.c/rfc931_work(): removed checks on weird chars, let
	ircd deal with this.

	* s_auth.c:
		* start_auth(): abort if getpeername() fails (problem
		reported by Wolfgang Scherer).
		* added set_clean_username(), used in read_iauth() and
		read_authports().
		* read_iauth(): added o message (a->i).
		* read_iauth(): added V message (a->i).

	* struct_def.h, s_serv.c: added SV_OLDSQUIT, and made m_squit()
	smarter (ugh, it's a kludge).

1999-06-07  Christophe Kalt

	* s_user.c:
		* m_nick(): added notice to warn of NICK messages coming
		from servers with parc != 8.
		* register_user(): fixed unaccurate notices about iauth.

	* config.h.dist: increased HANGONRETRYDELAY & HANGONGOODLINK values.

1999-06-06  Christophe Kalt

	* struct_def.h, send.c/sendto_match_butone(), list_ext.h,
	list.c/make_client(), ircd.c/setup_me(), s_misc.c/exit_client(),
	s_serv.c, s_service.c/m_service(), s_user.c/m_user(): added
	reorder_client_list() and NO_USRTOP defines.  This reduces memory
	usage  (Original code from Michal Svoboda).
	
	* channel.c/reop_channel(): desynched could be caused by server
	reops (channel mode +r) (reported by Thomas Kuiper).

1999-05-01  Christophe Kalt

	* s_conf_ext.h, s_conf.c, s_serv.c: added a new list for K/k lines
	only as an easy way to improve overall performance.

	* service_def.h: updated SERVICE_MASK_ALL.

1999-04-19  Christophe Kalt

	* channel.c/m_njoin(): need to use sendto_match_servs*(); duh!

	* send_ext.h, send.c: added sendto_match_servs_notv().

	* s_serv.c/m_squit(): fixed logic in previous change.

	* packet.c/dopacket(): fixed uncompression code.

1999-04-15  Christophe Kalt

	* service_def.h, channel.c/m_topic(), s_service.c/m_servset():
	added SERVICE_WANT_TOPIC.
	
	* s_serv.c/m_squit(): fixed serious and old bug that caused
	servers to be removed from memory (but not dependants!!!) while
	squit is going upstream.

	* s_debug.c/send_usage(): divide by zero bugfix (reported by Aaron
	Campbell).

	* channel.c/m_njoin(): ignore channels with an invalid mask.

	* common/parse.c: extended MSG_NOU to include services.

1999-04-10  Christophe Kalt

	* Makefile.in, a_conf_def.h, a_externs.h, a_conf.c, mod_lhex_ext.h,
	mod_lhex.c: New module (from Andrew Snare).

	* s_debug.c: increased size of debugbuf[] to avoid overflows (from
	Eugene L. Vorokov).

	* send.c/send_message(): catch more unlikely errors (from Eugene
	L. Vorokov).

	* s_bsd.c/set_sock_opts(): silently ignore errors for SO_SNDLOWAT.

	* common/os.h: FreeBSD portability (from KIKUCHI Takahiro).

	* s_bsd.c/read_message():
		* debug notice format bugfix (from Q).
		* INET6 fix (from KIKUCHI Takahiro).

	* s_conf.c:
		* initconf(): allow service type to be in hex in the
		configuration (from Thomas Kuiper).
		* find_conf_flags(): case sensitivity fix (from Q).

1999-03-19  Christophe Kalt

	* mod_socks.c/socks_work(): closed proxies would get rejected on
	first attempt and accepted later as the "closed" status was in the
	cache.

	* s_user.c/register_user(): fixed iauth failure notice timing bug.

1999-03-13  Christophe Kalt

	* struct_def.h, ircd.c, s_auth.c, s_bsd.c, s_user_ext.h, s_user.c,
	a_struct_def.h, iauth.c, a_conf.c, a_io.c: added XOPT_EARLYPARSE,
	`P' message for iauth, `extinfo' option for iauth.

	* a_io.c/next_io(): if xxx_start() returns 1, count module as left.

1999-03-11  Christophe Kalt

	* chkconf.c:
		* finally shut off MyFree() redefinition warning.
		* fixed undefined behaviour with ++ operator (effet de bord).

	* a_io.c/init_io(): bzero bugfix (reported by Tomas Edwardsson).

	* a_conf_def.h, a_conf.c:
		* conf_err(): send conf errors to ircd as well.
		* conf_match(): extended iauth.conf syntax for hostname
		and IP matching.
		* added conf_ipmask() to allow use of a.b.c.d/z format for IP.

	* configure.in: use "cc -Ae" on HPUX (reported by Jens Riecken).

	* ircd.c/main(): iauth's presence needs to be checked before
	setting up the signal handlers.

1999-03-09  Christophe Kalt

	* a_struct_def.h, a_conf_ext.h, a_conf_def.h, a_conf.c, a_io.c,
	mod_pipe.c, mod_rfc931.c, mod_socks.c: rewrote next_io() and
	conf_match() to use new more flexible logic.

	* os.h, a_conf.c, iauth.c, configure.in, Makefile.in, acconfig.h:
	added DSM support.

1999-03-08  Christophe Kalt

	* struct_def.h, a_conf.c, a_conf_ext.h, iauth.c, ircd.c, s_auth.c,
	s_auth_ext.h, s_bsd.c, s_user.c, s_user_exit.c: added
	XOPT_{REQUIRED,NOTIMEOUT,EXTWAIT}, added iauth_spawn counter;
	removed iauth_required variable.

	* struct_def.h, s_auth.c, s_user.c: added FLAGS_DONEXAUTH to get
	rid of the approximation from yesterday.

	* s_bsd.c/read_message(): use CLR_READ_EVENT() before modifying fd.

1999-03-07  Christophe Kalt

	* res_comp.c: added missing prototypes.
	
	* struct_def.h, a_conf.c, a_conf_ext.h, iauth.c, s_auth_ext.h,
	s_auth.c, s_user.c: added option to reject new user connections if
	iauth is dead (approximate!).

	* struct_def.h, ircd.c, res.c, s_auth.c, s_bsd.c: removed all
	references to {Set,Clear,Do}Access macros (unused for a LONG time).

	* ircd.c:
		* check_pings(): fixed "immediate ping timeout" bug.
		* main(): check for iauth's presence after changing [ug]id.

	* s_bsd.c/do_dns_async(): notify iauth when no PTR record is found.

	* Makefile.in: fix for M4 file path (Matthew Sullivan).

1999-03-04  Christophe Kalt

	* ircd.c/io_loop(), s_bsd.c/start_iauth(): keep trying to restart
	iauth (up to once every 90 seconds) to avoid being iauth-less.

	* struct_def.h, mod_socks.c, s_auth.c, s_user.c: added new message
	type from iauth to ircd to allow denying connections without any
	message sent to &AUTH; used by the socks module.

1999-02-22  Christophe Kalt

	* s_err.c: RPL_TRACESERVICE changed to show values in hexadecimal
	(from Thomas Kuiper).

	* s_service.c/m_service(): fixed error message.

1999-02-20  Christophe Kalt

	* configure, configure.in, Makefile.in, config.h.dist, buildm4,
	send.c, ircd.c, s_bsd.c, s_conf.c, s_misc.c, s_serv.c, s_user.c,
	chkconf.c, a_conf.c, a_log.c: paths overhaul.

	* c_msg_ext.h, c_msg.c: fixed m_server() prototype.

1999-02-19  Kurt Roeckx

	* packet.c/dopacket(), s_bsd.c/read_packet(): bugfix.

1999-02-18  Christophe Kalt

	* res.c/proc_answer(): fixed T_PTR processing (problem reported by
	Michal Svoboda).
	
	* channel.c:
		* del_modeid(): bugfix when called with NULL.
		* can_join(): readability (from Q).

	* s_serv.c/check_version():
		* removed code about 2.10.0[ab]*.
		* never used NJOIN with 0209* servers (bugfix).

	* s_err.c: removed extraneous %s in RPL_UNIQOPIS.

1999-02-09  Kurt Roeckx

	* hash.c/hash_find_channels(): cleanup.

	* ircd.c/main(), ircd_ext.h: various cleanups.

	* res_comp_ext.h: added prototype for ircd_getshort().

	* s_bsd.c/read_message(): typo fix (=! -> !=).

	* s_conf.c/attach_conf(): stops detecting listen sockets as
	clients from same IP address.

	* s_err.c: removed / from replies.

	* s_serv.c/m_links(): removed unused variable.

	* s_user.c/who_channel(): removed unused variables.

1999-02-05  Christophe Kalt

	* match.c/match(): removed predictable if's (from Tero Jänkä).

	* s_serv.c/m_server_estab(): flush_connections() called once
	during burst.

	* s_debug.c: updated.

	* ircd.c/io_loop(), s_bsd.c/read_message(), s_bsd_ext.h, config.h:
	new logic inspired from irce, removed PREFER_SERVER.

	* s_bsd.c: 
		* added read_listeners().
		* set_sock_opts() now sets SO_SNDLOWAT.
		* add_connection() now sends a message to client being
		reject by the anti-clone crap.

	* send.c: added flush_fdary() function.

	* common_def.h, config.h, send.c: removed SENDQ_ALWAYS define,
	simplified code for when it was undefined as it is only used by
	the client now.

2.10.2

1999-02-03  Christophe Kalt

	* mod_rfc931.c/rfc931_work(): get rid of any \n in replies.
	
	* a_io.c/parse_ircd(): when receiving a "DNS timeout" message,
	inform ircd if we're already done (otherwise, it keeps waiting
	until timeout).

	* s_bsd.c/completed_connection(): tell iauth not to wait for DNS
	information for servers we connect to.

	* s_auth.c/read_iauth():
		* fixed "Garbage" notices to &AUTH.
		* send E message to iauth when parsing garbage.

1999-01-28  Christophe Kalt

	* s_serv.c/m_server_estab(): added notices to &DEBUG.

	* struct_def.h, s_auth.c: renamed MotdItem to LineItem and moved
	around some defines.

	* s_bsd_ext.h: added missing ';' for utmp_open() definition.

	* channel.c/m_list(): !shortname now reports +p/+s channels (but
	still hides member count and topic for +s channels).

	* match.c/match(): rearranged if test to suppress harmless read
	overflow errors (reported by Insure++).

	* s_user.c/m_nick(): lp needs to be initialized (reported by Insure++).

	* hash.c/hash_find_channels(): bugfix (spottoed by Q).

	* mod_rfc931.c/rfc931_init(): fix for a silly bug (from Piotr).

1999-01-19  Christophe Kalt

	* resolv_def.h, res_comp.c, res_init.c: updated (BIND 4.9.7-REL).

	* packet.c/dopacket(): don't call unzip_packet() without data at
	beginning of connection only! (from Q).

	* numeric_def.h, s_err.c, channel.c: added numerics RPL_UNIQOPIS
	(325), ERR_BANLISTFULL (478) and ERR_UNIQOPPRIVSNEEDED (485).

	* channel.c:
		* m_njoin(): missing return value (reported by Insure++).
		* m_mode(): use ERR_RESTRICTED for restricted clients.
		* m_join(): it's now possible to create	!!#foo if #foo exists.
		* m_list(): now works for !shortname.

	* hash_ext.h, hash.c: added hash_find_channels().

	* configure.in, os.h:
		* update for autoconf 2.13.
		* let's trust autoconf to decide to use poll() or not.

	* s_bsd.c: sendto_flags() doesn't exist, it's sendto_flag().

	* mod_rfc931.c:
		* stats weren't initialized.
		* added undocumented "protocol" option (it's boring!).

	* mod_socks.c:
		* fixed never occuring memory leak.
		* improved stats (from Piotr Kucharski).
	
	* s_user_ext.h, s_user.c, s_service.c: added a parameter to
	do_nick_name() [UID].

1999-01-12  Christophe Kalt

	* a_log_def.h, mod_pipe_ext.h, a_externs.h, mod_pipe.c, a_conf.c:
	finally wrote the pipe module.

	* struct_def.h, a_conf_def.h, a_io_ext.h, iauth.c, mod_rfc931.c,
	mod_socks.c, s_auth.c, s_auth_ext.h, s_misc.c: iauth now sends
	statistics to ircd, shown by /stats t.

	* a_conf_def.h, a_conf.c, a_log_def.h, mod_socks.c: SOCKS module
	overhaul: added caching, rewrote code to use v4 instead of v5, and
	to be smarter (Based on work from Piotr Kucharski).
	
	* s_user.c: do_nick_name() now rejects "anonymous".

	* packet.c/dopacket(): don't call unzip_packet() without data.

	* channel.c: extension to del_modeid() from Kaspar Landsberg.

	* s_bsd.c: don't call dopacket() again for compressed links just
	because the output buffer was filled up.

1998-12-31  Christophe Kalt

	* ircd.c: removed extraneous flush_connections() call in io_loop().
	
	* ircd.c, s_bsd.c, list.c, list_ext.h: removed unused 'active' code.

	* struct_def.h, parse.c: removed various unused aClient fields.

1998-12-24  Christophe Kalt

	* s_service.c: using FLAGS_CBURST for services has too many
	implications; reverted.
	
	* struct_def.h, s_bsd.c, s_zip.c: removed requirement for
	inflate() to never fill up the uncompression output buffer, an
	unlikely situation which is now dealt with. (mostly from Q).

1998-12-21  Christophe Kalt


	* s_user.c:
		* [RFC] suppressed an error reply for notices in m_message().
		* server notices to +n channels were failing. (Reported by Q).

	* a_defines.h: INET6 fix for OSF (from Roar Thronęs).

	* os.h: INET6 fix for OSF (from Roar Thronęs).

	* channel.c: added check against 'duplicate joins' in m_njoin().

1998-12-14  Christophe Kalt

	* channel.c:
		* yet another +a/+r fix in set_mode().
		* send_channel_modes() would occasionnally send duplicate
		bans. (Reported by Robert Martin-Legene <robert@irc.ircnet.dk>)

	* iauth.c, a_io.c: added nonexistant INET6 code.
	
	* os.h, nameser_def.h, resolv_def.h: OSF portability fix from Roar
	Thronęs.

	* s_auth.c: added missing INET6 code. (Roar Thronęs)

1998-09-25  Christophe Kalt
	
	* configure.in: Check for IPv6 system type and update $LIBS (from
	KIKUCHI Takahiro <kick@kyoto.wide.ad.jp>)

	* bsd.c, os.h, parse.c, struct_def.h, support.c, support_ext.h,
	c_bsd.c, c_version.c, c_version_ext.h, irc.c, swear.c, channel.c,
	chkconf.c, ircd.c, nameser_def.h, res.c, res_def.h, res_init.c,
	resolv_def.h, s_auth.c, s_bsd.c, s_conf.c, s_debug.c, s_misc.c,
	s_serv.c, s_user.c, acconfig.h, configure.in: merged 2.9.5+IPv6.

1998-04-12  Christophe Kalt

	* configure.in, s_debug.c: vsyslog() isn't necessarely available
	even if USE_STDARG is defined. (Digital Unix)

1998-04-04  Christophe Kalt

	* c_version_ext.h, c_version.c, irc.c, swear.c: Digital Unix 4.0B
	port (Roar Thronęs <roart@nvg.ntnu.no>)

1998-12-12  Christophe Kalt

	* channel.c: +a/+r fix for !channels.

1998-11-20  Christophe Kalt

	* irc.c: allocate me.info (fix by Helmut Franzke <hf@rp-online.de>).

2.10.1

1998-11-12  Christophe Kalt

	* Doc references to @stealth.net changed to @irc.org.

	* s_serv.c: report_ping() now sends some extra info to &DEBUG.

	* s_bsd.c: send_ping() window set to 20 minutes (instead of 10),
	and never close it.

1998-11-03  Christophe Kalt

	* s_serv.c: changed m_trace() to only show unknowns to opers and
	local clients.

	* a_io.c: fd remap processing bugfix (from Q@ping.be).

	* s_bsd.c: fixed ircd/iauth problem with servers ircd connects to.

1998-10-31  Christophe Kalt

	* parse.c: reordered msgtab[].

	* s_serv.c: added more restrictions to m_links(), m_stats() [t],
	m_motd() and m_lusers() for remote clients. (*sigh*)

	* channel.c: fixed count_channels() not to count empty channels.

1998-10-28  Christophe Kalt

	* s_user.c: optimized m_whois() (pointed out by several people).

	* s_user.c, channel.c: channel creator flag is now removed on -o.

	* channel.c:
		* !channel creation is now done with !! rather than !#.
		* fixed channel counters (affects /lusers & /stats z).
		* m_njoin(): simple optimization.

Sat Oct 10 18:55:38 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* a_io.c: don't TST_* if cldata[i].?fd <= 0 in loop_io().

	* ircd.s, s_auth.c, s_bsd.c, s_bsd_ext.h: always attempt to
	restart iauth in start_iauth() after receiving a SIGUSR1.

	* s_service.c: reverted part of last change.

	* s_user.c: last change introduced a bug. (typo, reported by N. Aust)

	* channel.c: fixed match_modeid() to handle remote clients
	properly now that it's used from can_send().	

Thu Oct  8 18:33:50 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* configure.in: always compile with -g flag, and never strip.

	* channel.c:
		* renamed sub1_from_channel() to free_channel().
		* always send modes for empty channels during netjoin.
		* fixed old (2.9.x) memory leak in collect_channel_garbage().

	* s_id.c:
		* linked list corruption bugfix in collect_chid().
		* added logic to avoid excessive caching in cache_chid().

	* s_service.c: stdarg bugfix in check_service_butone (from O.G.).

Sun Sep 27 15:12:53 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* s_user.c: prefix bugfix (reported by mrg).

2.10.0p1

Fri Sep 25 22:21:06 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* channel.c: check for +r mode before calling reop_channel().

2.10.0

Wed Sep 23 19:55:14 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* configure.in, os.h: don't trust poll() to work if it exists.
	
	* channel.c:
		* removed FULLV2_10 ifdef's
		* don't send empty NJOIN in m_njoin() (Reported by Beeth).
	
	* channel.c, s_debug.c, config.h.dist: removed MIRC_KLUDGE.

	* chkconf.c: added warning about old V line format.

	* config.h.dist: OPER_DIE is now defined by default.

	* s_user.c: reverted last change, and hostnames are now truncated.

	* os.h: preprocessor syntax fix.

	* s_conf.c: stupid typo in match_ipmask().

	* s_auth.c: added a new debugging notice.

	* s_debug.c: flags update.

	* ircd.c:
		* added some debugging info in restart notice.
		* changed strdup() in mystrdup() (from Andrew Snare).

Sun Sep 20 15:22:25 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* os.h, configure.in: configure now checks for poll() existence to
	decide if it should be used.

	* res_init.c, s_conf.c: strncpy() bugfixes (from Q).

	* s_auth.c, mod_rfc931.c: '[' is no longer allowed in ident replies.

	* channel.c: don't let chanops set +a on !channels.

	* a_io.c: (weirdbug)fix.

	* s_err.c: numeric 004 update.

	* s_user.c: connections rejected by iauth are now shown as K-lined
	in &LOCAL.

	* s_bsd.c: new PASS syntax (Q).

Sun Sep 13 20:32:08 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* config.h.dist, ircd.c: removed MYNAME.
	
	* Makefile.in, config.h.dist: SPATH/APATH cleanup.

	* parse.c: ABW fix (Leon Brouwers <leonb@sci.kun.nl> and purify).

Sat Sep 12 18:53:39 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* ircd.c, s_bsd.c: SIGCHLD handling code to avoid zombies.
	
	* s_bsd.c:
 		* udpfd used in place of adfd in in read_message().
		* silently deal with linux accept() way of life.

	* a_io.c: loop_io() bugfix for select() systems.

	* ircd.c:
		* me.info from ircd.conf was overridden in setup_me().
		* server_reboot() created a zombie.

	* s_user.c: allow servers to speak on channels (reported by Q).

	* channel.c:
 		* NJOIN bugfix related to unique ops (reported by Q).
		* removed old core from msa.

	* various little cleanups.
	
	* res.c: buffer overflow fix. (thanks to Leon Brouwers
	<leonb@sci.kun.nl> and purify)

Tue Sep  8 21:23:27 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* s_user.c: user mode +a propagation bugfix.

	* ircd.c: die immediately if no listener exists after reading the conf.

	* send_ext.h, send.c, channel.c: backward compatibility fix for eI
	channel modes (added sendto_match_servs_v()).

Mon Sep  7 18:03:34 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* s_bsd.c: inversed test for -s in start_iauth().

	* channel.c:
		* keys starting with ':' don't propagate correctly.
		* m_njoin() didn't send modes properly to clients.

	* s_serv.c:
		* slightly changed the PASS syntax again.
		* 2.10 alphas didn't recognize peers as such (reported by Q).

Sun Aug 23 22:16:40 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* struct_def.h, ircd.c, list.c, list_ext.h, s_conf.c, s_serv.c,
	s_service.c, s_user.c: aClient's info is now dynamically allocated
	to overcome server handshake limitations.

Sat Aug 22 15:20:10 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* channel.c: fixed ^G bug (only triggered in channel creation)

	* struct_def.h, channel.c, s_err.c, s_user.c: AWAY is back.

Sun Aug 16 16:01:15 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* ircd.c:, s_bsd.c: added -s switch.

Sat Aug  8 14:21:20 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* s_serv.c: Roger's diff broke compression. (reported by Andre Koopal)

	* Makefile.in: iauth didn't know where to find zlib.h (reported
	by delta)

	* a_log.c: typos in parameter names (reported by delta).

Fri Aug  7 23:54:10 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* mod_rfc931.c: added sanity check on replies.

Fri Aug  7 00:03:45 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* mod_rfc931.c: read RFC 1413 and fixed the reply parser.

	* numeric_def.h, s_err.c, s_auth_ext.h, s_auth.c, s_serv.c: added
	/stats a to show iauth's configuation.

	* s_auth.c, a_*.[ch], mod_*.c:
		* SIGUSR2 will cause iauth to close and reopen log file(s).
		* worked around delayed messages from the iauth caused by
		ircd's fd remapping habit.
		* reduced memory usage by dynamically allocating `inbuffer'.
		* added G message (a->i).
		* added E message (i->a) and cleaned up errors messages in
		parse_ircd().
		* added a/A messages (a->i) to transmist configuration.
		* revisited next_io() and hopefully fixed the logic.

	* ircd.c, res.c, s_auth.c, s_auth_ext.h, s_bsd.c, s_user.c:
		* stdarg'ized sendto_iauth().	
		* iauth is now automatically restarted.
		* fixed bcopy() length in read_iauth().
		* added notices to track the "" username bug.

Tue Aug  4 21:43:53 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* a_io.c: numerous bug fixes..

	* mod_rfc931.c: fix to prevent crash when receiving data from
	broken ident servers.

	* a_conf.c, a_conf_def.h, a_externs.h, a_log_def.h: added module
	`socks'.  (Based on a 2.9.5 diff from Jonathan Chapman)

	* a_log.c: added timestamps to `auth' log.

	* s_misc.c: EXITC_AREF is a special case like EXITC_REF.

	* parse.c: penalty bugfix.

	* ircd.c, s_auth.c, s_bsd.c, s_bsd_ext.h:
 		* cleaned up iauth startup procedure, added start_iauth()
		which is called upon SIGUSR1.
		* various fixes in read_iauth().

Sun Aug  2 18:34:20 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* s_mist_ext.h, s_misc.c, support_ext.h, support.c: moved
	myctime() from s_misc.c to support.c.
	
	* s_bsd.c, a_io.c: added `R' message from ircd to iauth.

	* s_serv.c: updated check_version() not to use NJOIN with 2.9.5 links.

	* parse.c: restricted SQUERY to users.
	
	* channel.c: 
		* m_njoin(): conversion bugfix (Reported by Q).
		* added FULLV2_10 #if's.
	
	* struct_def.h, channel.c, s_err.c, s_misc.c: added channel mode `r'.
	
	* send.c: reference to NULL pointer in sendto_match_servs()
	(Reported by Core).

	* sys_def.c, chkconf.c: MyFree() redefinitions (from Core).

	* Makefile.in: "make install-server" path problems.

Sun Jul 19 15:32:48 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* s_conf.c, ircd.c: unitialized K line comment in check_pings().

	* channel.c:
		* beI modes to multiple channels were corrupted.
		* mode parameters starting with : don't propagate correctly.
		* !channel creation propagation was broken (reported by Eumel).

	* send.c, struct_def.h, channel.s, res.c, ircd.c, s_auth.c,
	s_auth_ext.h, s_bsd.c, s_bsd_ext.h, s_conf.c, s_user.c,
	Makefile.in, config.h.dist: added iauth.

Fri Jun 12 19:00:03 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* ircd.c: fix for inetd support (from Jonathan Chapman
	<jonathan@clover.net>).

	* parse.c, s_debug.c: more LOCOP_* fixes (from Michael Neumayer).

	* s_user.c: oper counter bugfix (from Magnus Tjernstrom).

	* channel.c:
		* fixed join #a,#b,.. desynch bug (reported by viha@vip.fi).
		* fixed netjoin +p/+s desynch problem (same).
	
Sun May 31 14:18:41 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* send.c, channel.c: '-' leftovers (Michael Neumayer <eumel@42.org>).

Mon May 25 15:13:51 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* struct_def.h, channel.c, hash.c, s_misc.c: changed new channels
	prefix to ! (instead of -).

	* parse.c: undefining LOCOP_* had no effect (reported by Eumel).

	* s_service.c: SERVICE_WANT_OPER burst fix (from Jonathan Chapman).

	* s_bsd.c: SO_LINGER patch (from Andrew Snare <ajs@pigpond.com>).

	* configure.in: better logic for --resconf.

	* channel.c:
		* m_invite() fix for &channels.
		* add_modeid() always used RPL_BANLIST.
		* bIe modes coming from a server were rejected
		add_modeid() if another mode with the same pattern existed.
	
	* c_debug_ext.h, c_debug.c, chkconf.c, s_misc.c, s_zip.c: fixes
	for DEBUGMODE (from Andrew Snare <ajs@pigpond.com> & Magnus
	Tjernstrom <d92-mtm@ludd.luth.se>)

	* hash.c: bigger_prime() useless optimization from Magnus :-)

Tue May  5 19:26:25 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* config.h.dist, Makefile.in, struct_def.h, s_externs.h, send.c,
	channel.c, hash.c, s_debug.c, s_err.c, s_misc.c, s_serv.c,
	s_user.c: implemented new channels.

	* struct_def.h, parse.c, channel.c, ircd.c, s_debug.c, s_misc.c,
	s_serv.c, s_user.c, whowas.c, config.h.dist: replaced BIG_NET #define.

Fri Apr 24 20:30:21 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* irc.c: missing refresh() (from Dave Hill <ddhill@zk3.dec.com>).

	* s_conf.c, s_service.c: portability fixes from Avalon.

	* channel.c, s_user.c: adapted undernet's Bquiet.

Sun Apr  5 17:50:08 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* configure, configure.in, config.h.dist: added --logdir option.
	
	* s_serv.c:
		* moved user wallops from #wallops to +wallops.
		* stricter m_server() check for unregistered users.

	* send.c: wallops were sent to services and unregistered clients.

Sat Apr  4 19:05:26 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* struct_def.h, packet.c, s_bsd.c: (never triggered) link
	compression bugfix (Roger Espel Llima <espel@llaic.u-clermont1.fr>).

	* config.h.dist, ircd.c, s_debug.c: added PREFER_SERVER #define.

	* s_user.c:
		* m_oper() notice bug fix (Michael 'Eumel' Neumayer).
		* completely disabled AWAY.

	* struct_def.h, parse.c, channel.c, ircd.c, s_debug.c, s_misc.c,
	s_serv.c, s_user.c, whowas.c, config.h.dist: added BIG_NET #define.

	* s_misc.c; Y2K fix.

Tue Mar 31 18:52:41 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* s_serv.c: removed now obsolete USE_NJOIN.

	* numeric_def.h, struct_def.h, channel.c, s_debug.c, s_err.c,
	s_serv.c: added channel modes +e (EFnet's exceptions to bans) and
	+I (invitations); raised MAXBANS (should be renamed) to 30.

	* support.c: extended make_version().

	* channel.c:
		* notify user when a ban is rejected because "redundant".
		* /invite (from chanop) now overrides bans & limit.

	* s_debug.c, s_serv.c: /stats r no longer restricted to DEBUGMODE.

	* s_bsd.c: getrlimit()/setrlimit() is now used regardless of
	poll() availibility.

Sun Mar 22 14:01:24 1998  Christophe Kalt  <kalt@millennium.stealth.net>

	* channel.c: MIRC_KLUDGE sent bogus modes on channel creation.

	* os.h, support.c, s_bsd.c: CYGWIN32 cleanup from Dave Miller.

	* s_user.c: hunt_server() cleanup.

	* s_conf.c: match_ipmask() choked on a.b.c.d/z (reported by Helmut
	Springer <delta@RUS.Uni-Stuttgart.DE>).

2.9.5

Tue Feb 17 21:25:02 1998  Christophe Kalt

	* s_bsd.c: w32 doesn't have a working fork().
	
	* ircd.c: deal with "getpwuid(getuid())" returning NULL.
	
	* configure.in, os.h, support.c: use our own truncate() when
	needed (CYGWIN32), and CYGWIN32 portability.  (Thanks to Dave
	Miller <yahoo@molalla.net>).

	* config.guess: update.

	* s_user.c: broadcast restriction wasn't right (Yegg).

	* send.c, ircd.c: removed noisy debugging notices.

Sat Feb  7 09:21:52 1998  Christophe Kalt

	* s_user.c:
		* oper log is now more verbose.
		* broadcast messages/notices are now less restricted.

	* hash.c: nitpicking (from Magnus Tjernstrom).

	* configure.in: quoting cleanup (from Alain).

	* send_ext.h, s_debug.h: STDARG prototyping cleanup (from Alain).

Fri Jan 23 17:39:17 1998  Christophe Kalt

	* os.h: linux 2.1 implements poll() but the header files are a
	mess (what did you expect?), kludge to get it work (from Vesa).
	
	* channel.c: fixes related to MIRC_KLUDGE.

	* s_conf.c:
		* find_kill() fix and cleanup (mostly from Vesa).
		* find_bounce() stricter check and fix (from Vesa).
	
	* parse.c: m_njoin() is only used by the server.

Fri Jan 23 17:38:36 1998  Christophe Kalt

	* channel.c:
		* buffer overflow fix.
		* bugfix from Avalon.
		* join/invite were propagated for &channels. (reported by DLR)
		* invite/kick were propagated beyond masks. (reported by DLR)
		* multiple kicks could desynch channels.
	
	* s_user.c: stricter check on unregistered NICK changes (Avalon).

	* hash.c: hash_find_server() didn't handle z.stealth.net (1
	letter) masked by *.stealth.net (DLR).

	* msg_def.h, struct_def.h, channel_ext.h, parse.c, channel.c,
	s_serv.c: added send_channel_members() and m_njoin().

	* send_ext.h, send.c: added sendto_serv_notv().

	* buidm4: yet another m4 booboo. (fix from Mario)

Wed Jan  7 11:40:59 1998  Christophe Kalt

	* s_user.c: strncpy() lameness.

	* s_conf.c: added match_ipmask() (from Vesa).

	* configure.in, send_ext.h: "checking for working stdarg" always
	failed because of a quoting problem.

Thu Dec 18 21:48:18 1997  Christophe Kalt

	* channel.c: abusive usage of /names now forbidden.

	* class.c: imposed a minimum of 60 seconds for connect frequencies.

	* struct_def.h, s_misc.c, s_serv.c: check_link() tuning and statistics.

Tue Dec 16 17:12:16 1997  Christophe Kalt

	* s_conf.c: finished D lines.

	* numeric_def.h, struct_def.h, list.c, s_err.c, s_serv.c: added
	check_link() to prevent server links from being flooded by replies
	to user requests.

	* s_bsd.c: try to prevent the server from flooding with UDP pings.

	* channel.c: #foo:*.tld modes were always sent during the burst.

Wed Nov 12 21:02:15 1997  Christophe Kalt

	* struct_def.h, s_conf_ext.h, s_conf.c, ircd.c, chkconf.c,
	numeric_def.h, s_err.c , s_serv.c: added D configuration
	lines. (/stats h)

	* send.c, s_service.c: allocate more dbufs during a service burst
	if needed.

	* channel.c: cosmetics, and fixed the use of MAXPENALTY in m_kick().

	* s_debug.c: too many parameters in a call to sendto_one().

2.9.4

Sat Oct 18 09:37:33 1997  Christophe Kalt

	* setup.h.in, configure.in: (Alain Nissen)
		* additional header files checked.
		* non-blocking system test fixed.

	* os.h: curses/termcap stuff is now only used for the client (AN).

	* swear_ext.h, swear.c: portability issues (Alain Nissen).

	* c_bsd.c, s_bsd.c, os.h: SELECT_FDSET_TYPE (defined in os.h) used
	as pointer type in select() calls; HPUX compilation problem
	fixed.  (Alain Nissen)

	* buildm4: typo & missing quote. (again!)	

Fri Oct 10 23:48:25 1997  Christophe Kalt

	* s_serv.c: improved m_die() and m_restart() in case a service is
	used for user log.

	* os.h, acconfig.h, configure.in, res.c, s_bsd.c: (Alain Nissen)
		* kludge to deal with broken hostent declaration in
		netdb.h on some linux systems.
		* test for sigaction & sigset functions added back; signal
		implementation test fixed.

	* s_conf.c:
		* more explicit K line message when reason specified in
		ircd.conf.
		* extended I lines syntax.

	* s_service_ext.h, s_service.c, s_misc.c: faster split handling is
	possible now that 2.8.x protocol is history.

	* channel.c:
		* m_join() was unefficient on net joins.
		* MIRC_KLUDGE would never show +ov modes.

	* s_user.c:
 		* services can now send to channels (if the modes allow it).
		* prefixes for restricted connections were gone.

	* buildm4: missing quote.

2.9.4b

Wed Oct  1 21:57:45 1997  Christophe Kalt

	* chkconf.c: added knowledge of B lines.

	* s_debug.c: more info on dbufs for better tuning.

	* channel.c: bans on IP are now matched against resolving clients.

	* s_conf.c: K lines on IP can now be matched against resolving clients.

	* buildm4: update for Y and K line macros, and added macros for
	B,V,i and k lines (Mario Holbe).

	* s_conf.c: Y global limit per host didn't work.

Wed Sep 24 18:25:45 1997  Christophe Kalt

	* acconfig.h, configure.in, setup.h.in, resolv_def.h, res_init.c:
	added --resconf=FILE option to configure (Alain Nissen).

	* s_conf.c: fixed bug with Y limits.

Tue Sep 23 11:36:30 1997  Christophe Kalt

	* common_def.h: added CHKCONF_COMPILE statement.

	* bsd_ext.h: incorrect declaration for writeb.

	* support_ext.h, support.c: dumpcore() was broken.

	* class_def.h, class_ext.h, class.c, s_conf.c, s_err.c: it's now
	possible to combine a limit per host and per user@host for the
	same class.

	* s_user.c:
		* RPL_ENDOFWHO wasn't correct.
		* who_find() / m_whois() didn't always respect +a mode.
		* @ restriction in username could be bypassed.
		* unlikely but nonetheless possible ghost generation.

	* ircd.c: setgid() was called after setuid() (reported by Nicole
	Haywood <kole@mail.usyd.edu.au>)

	* parse.c: avoid a match() call if possible.

Sun Sep 14 19:44:27 1997  Christophe Kalt

	* ircd.c: redundant/useless code commented out.

	* struct_def.h, parse.c, s_err.c, s_serv.c: `stats m' is more verbose.

	* os.h, Makefile.in: zlib.h was missing from includes.

	* s_user.c: 2 fixes (a NULL pointer, and a non reinitialized one).

Thu Sep 11 21:43:20 1997  Christophe Kalt

	* class_def.h, class_ext.h, class.c, s_bsd.c, s_conf.c, s_err.c,
	s_user.c: added 2 fields to Y lines and implemented [u@]h global
	limits.

	* service_def.h, channel.c, s_service.c: added SERVICE_WANT_VCHANNEL.

	* channel.c: server channels now have a topic.

	* s_conf.c: negative class numbers are now forbidden.

	* s_conf_ext.h, s_conf.c, s_bsd.c: new B lines format.

Sun Sep  7 20:02:50 1997  Christophe Kalt

	* s_conf.c: B lines now catch "unauthorized connections".
	
	* s_user.c: m_who() limit wasn't coded. fixed this and rewrote
	m_who() because recursivity and penalty don't go together.
	
	* s_err.c: REPL_SERVLIST type field is now in hexa.

	* service_def.h, send.c, s_misc.c, s_user.c: extended services
	capabilities so they can do logging.

	* s_serv.c, s_user.c: added MD5 support for crypt() (from Urvos Juvan).

	* res.c: hostnames containing * or ? are now rejected.

	* s_conf.c: service type field stripped from optional bits (in S
	lines).

	* s_serv.c: server token wasn't sent to services in m_server_estab().

	* s_service.c: SERVICE_WANT_PREFIX wasn't honored by m_squery().

	* struct_def.h, parse.c, s_serv.c, s_user.c:
               * added MyService() macro and updated several tests.
               * next_client() was ignoring services.

Tue Aug 19 08:38:54 1997  Christophe Kalt

	* channel.c: m_names() could still have a truncated reply.

	* more cleaning from Alain.Nissen@ulg.ac.be:

		* struct_def.h, bsd.c, s_bsd.c: removed references to "pyr".
		* res_comp.c: removed res_getshort() [never used].
		* removed all references to VMS.
	
Mon Aug 11 13:34:15 1997  Christophe Kalt

	* The following changes are from Alain.Nissen@ulg.ac.be

	* all files (in short):
		* include/ was removed.
		* all .c have a corresponding _ext.h to declare external
		variables and functions.
		* [sc]_externs.h are #includes *_ext.h.
		* [sc]_defines.h are #includes *_def.h.
		* all .c have the same list of #include.
		* os.h has all system #includes and portability tests.

	* Also, several bug and portability fixes:
	
		* c_bsd.c: move renamed in tcap_move (portability).
		* c_msg.c:
			* added test on DOCURSES before including it.
			* various casts.
		* edit.c:
			* return type of suspend_irc() changed to RETSIGTYPE.
			* added int argument to suspend_irc().
			* use of signal(SIGTSTP,...) now depends on
			whether the signal exists rather than the OS.
		* help.c: helplist rewritten properly.
		* irc.c:
			* strdup() replaced with mystrdup().
			* do_log() takes 2 arguments.
			* return type of quit_intr() changed to RETSIGTYPE.
			* added int argument to quit_intr().
		* screen.c: such a mess
			* LINES is only present under curses.
			* idem for refresh().
			* clear_to_eol() is supposed to take 2 arguments,
			but what are they?
		* swear.c: added to clients targets
		* channel.c: delch renamed in del_ch.
		* chkconf.c, parse.c: newline renamed in irc_newline.
		* ircd.c: s_monitor(), s_die(), s_rehash(), s_restart()
		return type changed from VOIDSIG to RETSIGTYPE.
		* res.c: now using SOCK_LEN_TYPE.
		* res_comp.c, res_init.c: various portability changes.
		* s_auth.c: now using SOCK_LEN_TYPE.
		* s_bsd.c: now using SOCK_LEN_TYPE.
		* s_conf.c: several portability fixes.
		* s_err.c: local_replies[] and local_replies[] rewritten.
		* s_service.c: changed test on USE_STDARG.
		* bsd.c:
			* return type for dummy() is now RETSIGTYPE.
			* dummy() now takes one int argument.
		* dbuf.c: removed unused DBUF_INIT.
		* support.c:
			* many changes concerning #if tests.
			* added solaris_gethostbyname() to use instead of
			Solaris 2.3 broken gethostbyname().
			* added irc_memcmp() to use if system's memcmp()
			is broken.
		* nameser.h: now using WORDS_BIGENDIAN.
		* configure.in:
			* simpler solaris 2.x detection when looking for zlib.
			* added test for cursesX.
			* added check for sys_errlist definition in sys/errno.h
			* and more...
		* Makefile.in: CFLAGS split in S_CFLAGS, C_CFLAGS and
		CC_CFLAGS (ircd, irc, chkconf).
	
Fri Aug  8 10:51:24 1997  Christophe Kalt

	* channel.c: m_names() behaviour wasn't consistent with m_who()
	concerning +p channels (Michael 'Eumel' Neumayer).

	* configure.in: minor changes (Alain Nissen).

	* s_user.c: missing argument to err_str() (Kai Seidler).

	* config.h.dist, h.h, struct.h, common.c, channel.c, s_bsd.c,
	s_debug.c, s_err.c, s_misc.c, s_serv.c, s_service.c, s_user.c:
	removed support for 2.8 protocol.

	* config.h.dist, msg.h, channel.c, note.c, s_bsd.c, s_debug.c,
	s_misd.c, s_user.c: removed NOTE.

	* s_bsd.c: wrong argument to bzero().

	* Makefile.in, buildm4: rev.sh replaced by config.guess and
	buildm4 wasn't ran by `make install-server'.

2.9.3

Wed Jul 23 11:23:30 1997  Christophe Kalt

	* res.c: queries were never resent when reaching timeout (C. Behrens).

	* acconfig.h, configure.in: better sys_errlist test (A. Nissen).

	* version.c.SH.in: portability (A. Nissen).

	* acconfig.h, configure.in, common.h, config.h.dist: AIX cleanup
	and optimization flags (A. Nissen).

	* configure.in: typo.

Thu Jul 17 23:04:48 1997  Christophe Kalt

	* c_numeric.c, irc.c: fixes from Vesa.

	* send.c: buffer overflow fix.

	* h.h, res_init.c: portability fixes.

Wed Jul 16 21:35:50 1997  Christophe Kalt

	* s_serv.c: m_die() referenced data after freeing it.

	* support.c, res.c: silly changes to make purify happier.

	* s_bsd.c: fixed memory corruption problem.

	* s_user.c: m_whois() voice flag changed back to + (from !).

	* h.h, support.c, configure.in: reverted back: use inet_* if
	present, use our own inet* if not.  Our functions must be
	different to avoid some crazy clash when bind 8.x is on installed
	the system.  Should we teach configure.in about -lbind?

Tue Jul 15 00:18:01 1997  Christophe Kalt

	* inet_addr.c moved to support.c, renamed functions (inet_addr,
	inet_aton, inet_ntoa, inet_netof) to avoid clashes; always used
	even if the system has it.

	* New configure and Makefile from Alain Nissen. (many many files
	changed, removed, created, rewritten)

	* buildm4: update (Mario Holbe).

	* struct.h, s_bsd.c: fixed the P line rehash bug(?).

	* h.h, ircd.c: let's be nice to SunOS' cc.

Mon Jun 30 21:41:11 1997  Christophe Kalt

	* dbuf.c, send.c: earlier changes broke the client.

	* config.h.dist, struct.h, dbuf.h, dbuf.c: new magic formula to
	compute BUFFERPOOL.  Added MAXSERVERS for this purpose.

	* s_serv.c: buffer overflow (Chris Behrens).

Thu Jun 26 19:18:24 1997  Christophe Kalt

	* struct.h, channel.c, hash.c, parse.c, send.c, s_misc.c,
	s_service.c:
		* cleanup.
		* added &SERVICES.

	* s_bsd.c: wrong buffer size given to getsockopt().

Thu Jun 19 18:35:37 1997  Christophe Kalt

	* h.h, struct.h, s_debug.c, send.c, dbuf.c:
		* dbuf stats.
		* send_message() #ifndef SENDQ_ALWAYS was not uptodate,
		tried to bring it back up to date.

	* res.c: fixed possible buffer overflow.
	
	* h.h, s_debug.c, send.c: fixes for STDARG (Olivier Galibert)

	* ircd.c: server_reboot() would crash when called because of "out
	of memory".

Mon Jun  9 20:49:55 1997  Christophe Kalt

	* config.h.dist, h.h, struct.h, send.c, ircd.c, list.c, s_debug.c,
	s_serv.c, s_user.c: removed #define KRYS, it is now always `defined'.
	
	* config.h.dist, h.h, common.h, service.h, sys.h, configure.in,
	send.c, support.c, s_auth.c, s_service.c, s_debug.c, s_conf.c:
	removed references to varargs, added support for stdargs.
	It is controlled by #define USE_STDARG set by configure. (adapted
	from Olivier Galibert)

	* ircd.c: CHROOT is really called CHROOTDIR.

	* s_user.c:
		* extended m_message() to accept n!u@h as recipient.
		* removed notice for bogus PONG.

	* s_serv.c: /SQUIT now requires 2 arguments from opers.

Sun Jun  1 16:57:39 1997  Christophe Kalt

	* dbuf.h, dbuf.c: #define DBUF_TAIL is back.
	
	* s_conf.c: fixed B lines behaviour, port number is now mandatory.

	* send.c: missing arg to dead_link(). (Olivier Galibert)

	* s_serv.c, numeric.h, s_err.c: added /stats B to see B lines (and
	fixed /stats V reply).

	* service.h, channel.c, s_misc.c, s_service.c, s_serv.c, s_user.c:
		* numerous bugfixes related to local services (if
		USE_SERVICES is defined).
		* extended services option to allow 2.9 NICK syntax, and
		let them see tokens if they want. (adapted from O.Galibert) 

Wed May 21 21:17:51 1997  Christophe Kalt

	* channel.c, s_service.c, service.h: finished service code (whee).
		
	* s_serv.c: services were incorrectly sent during burst.

	* s_bsd.c: ident MUST be done before anything else is read from a
	client.

Thu May 15 16:27:13 1997  Christophe Kalt

	* struct.h, s_conf.h, s_serv.c: created k: lines to be able to
	deny access based on OTHER ident replies.

	* s_user.c: changed 001 reply to return n!u@h (more zen).

	* s_serv.c:
		* if A: is bogus, trash it and complain instead of crashing.
		* get_client_name() is non-reentrant. *sigh*
	
Wed May  7 22:11:04 1997  Christophe Kalt

	* s_user.c: nick chasing kill bug fix. (Chris Behrens)

	* h.h, ircd.c, s_conf.c, s_user.c: K-lined users now exit
	displaying the Kline comment, if any.

	* s_conf.c: fixed notice ERR_YOUWILLBEBANNED, and don't disconnect
	then.

	* inet.h, nameser.h, resolv.h, inet_addr.c, portability.h, res.c,
	res_comp.c, res_init.c, res_mkquery.c: updated. (BIND 4.9.5-P1)

	* channel.c: notice for service could use free'ed memory.

Sun Apr 27 16:40:08 1997  Christophe Kalt

	* send.c: fixed couple buglets (added by Chris Behrens :^).

	* s_user.c: removed dummy m_note() which was unused and buggy, and
	would let any oper _broadcast_ NOTE queries to the net.

	* m_note.c: Modified m_note() in note.c not to send any NOTE
	commands to other servers.

	This is lame, someone help me and port note to be a service. 
	Then, I'll finally take it out of the server !! :-)

Thu Apr 24 18:51:25 1997  Christophe Kalt

	* send.c: better (faster) sendto_common_channel() (from Chris Behrens).

	* s_serv.c: fixed connected burst for services with hostmasks.

	* s_user.c: fixed origin check in m_pong().

	* res.c: added a check on hostnames. (From Darren Reed)

Sun Apr 20 20:30:21 1997  Christophe Kalt

	* s_conf.c: find_bounce() had an inversed test. (how could it work
	when I tested it??)

	* s_serv.c: SERVER message would occasionnally (and incorrectly)
	be dropped.

	* s_misc.c: simple optimization in exit_client().

	* s_service.c, s_serv.c: things looked wrong, SERVICE syntax
	inchorent. Minor memory leak.

	* s_bsd.c, s_misc.c: various "typos" fixed. (UDP & non POLL)

	* send.c, h.h: removed sendto_all_butone(). (unused)

Tue Apr 15 19:41:32 1997  Christophe Kalt

	* sock.h: added a check to make sure FD_SETSIZE is big enough.

	* s_bsd.c, struct.h, s_misc.c: added more UDP stats.

	* s_bsd.c: fixed udp_pfd/res_pfd mess, and cleaned the code. (whee)

	* h.h, struct.h, numeric.h, s_err.c, s_conf.c, s_bsd.c: added B lines.

	* channel.c: defining USE_SERVICE would cause buffer corruption
	when propagating channel modes to servers. (Found by Michael Neumayer)

Wed Apr  2 15:25:54 1997  Christophe Kalt

	* list.c, s_serv.c: added some error notices for users without server.

	* s_bsd.c: fixed UDP port binding when no IP is given.

	* configure.in: add -cckr to CFLAGS on SGI when using cc(1)

Thu Mar 27 19:03:09 1997  Christophe Kalt

	* h.h, send.c, s_bsd.c, s_user.c, s_serv.c: amount of transferred
	data added to file logs.

	* config.h.dist: define SVR4 if __svr4__ is there.

	* packet.c: drop server sending an unknown command.

	* s_user.c: changed m_who() for better performance (from Chris
	Behrens), also put a limit on its number of arguments.

	* h.h, struct.h, list.c: better IsMember (from Chris Behrens).

	* s_serv.c: don't let a user introduce a new server.

Fri Mar 21 19:53:36 1997  Christophe Kalt

	* h.h, struct.h, ircd.c, s_conf.c, s_misc.c, s_serv.c,
	config.h.dist: server can now cache the MOTD in memory (from Chris
	Behrens).  See CACHED_MOTD #define.

	* service.h, channel.c, s_serv.c, s_service.c, s_user.c: additions
	for services.

	* s_misc.c: added missing parameter for check_service_butone().

	* INSTALL completed and converted to sgml

	* s_serv.c: MyRealloc(NULL, size) isn't portable.

Tue Mar 18 17:59:26 1997  Christophe Kalt

	* 2.9.3b10
	
	* channel.c, hash.c, res.c, s_serv.c, s_service.c, s_user.c,
	whowas.c: penalties tuned again. (added Volker Paulsen's anti SPAM
	hack).
	
	* s_err.c, s_serv.c: minor changes to RPL_STATS*

	* s_bsd.c: authclnts[] was not always initialized.
	
	* ircd.c: buffer in ircd_readtune() lacked initialization.
	
	* s_service.c: fixed buffer overflow.

	* send.c, support.c: # of arguments cleanup.
	
	* list.c, res.c, s_service.c: casts to suppress warnings.

	* h.h, dbuf.c: bufalloc, dbufblocks, poolsize now
	unsigned. (some checks might be needed, poolsize can really get
	big).

	* s_misc.c: removed duplicate code in exit_client().

	* parse.c:
 	
		* Added more notices when generating SQUITs for unknown
		servers.
		* removed bogus else.

Fri Feb 28 09:34:36 1997  Christophe Kalt

	* s_err.c, s_serv.c: Added 2 more fields to RPL_TRACELINK.

Thu Feb 27 14:50:37 1997  Christophe Kalt

	* s_serv.c: /connect by servername didn't work for c lines (from Eumel)

Wed Feb 26 16:48:36 1997  Christophe Kalt

	* s_bsd.c: removed (old) redundant code concerning VIF.

	* config.h.dist: CLONE_MAX and CLONE_PERIOD could be undefined.

	* common.c: match() cleanup.

Thu Feb 13 17:27:53 1997  Christophe Kalt

	* res.c, res_init.c, res_mkquery.c, ircd.c, s_bsd.c: renamed
	res_init() to ircd_res_init() to avoid conflict (ULTRIX).

	* hash.c, struct.c: cleanup of hashing functions.

	* match.c, parse.c, send.c, common.h, channel.c, hash.c, s_bsd.c,
	s_misc.c, s_serv.c, s_service.c, s_user.c, note.c, ignore.c:

		*  _match() changed to match() and the check for maximum
		"recursion" slightly changed.
		*  match() and matches() removed (stubs from when match
		was recursive?).
		* All occurrences of matches() changed to match().
		* this saves one function call per match.

	* send.c: Added 2 parameters to sendto_serv_butone().

	* s_err.c, s_serv.c: Added one field to RPL_TRACELINK.

Sun Jan 26 20:02:34 EET 1997  Vesa Ruokonen  (ruokonen@aapo.it.lut.fi)

	* 2.9.3b8

	* support.c, h.h, list.c: gcc -Wall cleanups.
	* h.h, struct.h, chkconf.c, s_conf.c, s_serv.c:
		created V:lines for checking connecting client parameters.
		passed as PASS command parameters. A matching V:line.
		refuses the connection (version number & compile flags).
	* struct.h, channel.c, s_debug.c:
		penalty threshold used for limiting KICK params.
	* struct.h: initial QUEUELEN calculation tuned. (->BUFFERPOOL).
	* c_msg.c: more verbose m_pong().
	* channel.c, s_serv.c, s_user.c, whowas.c:
		penalties tuned for commands generating global bcast.
	* hash.c: converted multiplication to hashtable lookup to speed.
		up function calls. (from Core)
	* ircd.c, s_bsd.c: added truncation for non-appended writes. (_root_)
	* s_user.c: prefix for voice capability in channel list of WHOIS reply
		changed from '+' to '!'.
	* s_user.c: drop PONGs with bad origin.
		store connection parameters from PASS temporarily to info
		field in contstant locations.
	* s_user.c: m_umode() fixed (from Core).

Wed Jan 15 14:42:43 1997  Christophe Kalt

	* s_bsd.c:

		* mysk was initialized by empty password in M line.

Tue Jan 14 24:62:34 EET 1997  Vesa Ruokonen  (ruokonen@aapo.it.lut.fi)

	* parse.c, channel.c, s_user.c: cleanup of find_functions(),
		_nickserv replaced by _service.
	* h.h, : setup_ping() takes aConfItem pointer as parameter now.
	* sys.h: #elif expanded to #else #if for compability
	* s_bsd.c: inetport(P:line) changed to support VIFs better.
		More info about listening ports into /stats l.
		UDP ping is initialized from M:line, not anymore from P:line.
	* s_numeric.c: cleanups in numeric processing.
	* Makefile.in, Makefile.irc, Makefile.ircd: makedepend fix
	* configure.in: zlib check moved to end, as it can interfere
		other checks when libs aren't in default paths.

Mon Jan 13 09:11:04 1997  Christophe Kalt

	* ircd.c:

		* made the display of version (flag -v) more verbose.

	* regenerated configure (with autoconf 2.12; thanks digital).

	* s_user.c:

		* fixed, and extended KILL reasons for `standard'
		collisions. (both victims u@h are now shown).

	* send.c:

		* fixed the logic when sending mass message/notice to a
		server mask.

	* configure.in, Makefile.in:

		* fixed detection & use of zlib using the environment
		variable ZLIB_HOME (from Vesa).

Thu Jan  9 13:09:36 1997  Christophe Kalt

	* struct.h, ircd.c:

		* added -b command line switch to let the server start
		even if the ircd.tune file is corrupted (mostly from
		Magnus Tjernstrom).		

	* s_conf.c:

		* udp listen was setup even if port was defined to be 0.

Wed Jan  8 12:35:03 1997  Christophe Kalt

	* h.h, s_bsd.c, s_conf.c:

		* port field in M configuration line is used again, now to
		define on which port the server will listen for UDP pings.

	* hash.c:

		* restricted commands to opers (from Vesa).

	* send.c:

		* sendto_match_butone() had a broken behaviour, 
		brought back the old (2.8.21) behaviour.	
	
	* s_bsd.c:

		* fixed negociation of compression for outgoing
		connections.

		* moved the "rejected connection" notice to &LOCAL.

		* SLOW_ACCEPT #ifdef's changed to #ifndef's to get what
		one should expect from the define name !

		* made inetport() more readable, and added check on empty
		string parameter (from Vesa).

		* highfd isn't defined when _DO_POLL_ is defined, so don't
		use it in debug notices (from Vesa).

		* break changed to continue because ??? (from Vesa).

	* s_user.c:

		* fixed KILL notice sent on nick collision (was using
		ident reply for remote clients).

		* allowed oper!user@host.foo to send global message/notice
		to #*.foo

	* s_serv.c, s_user.c, s_bsd.c, s_debug.c:
	
		* changed the PASS command semantic (from Vesa).

Fri Jan  3 14:47:52 1997  Christophe Kalt

	* s_bsd.c:

		* completed virtual hosts support (M line).

	* config.h.dist:

		* AIX has poll(), use it.

Mon Dec 30 15:08:20 1996  Christophe Kalt

	* s_bsd.c, h.h:

		* added support for virtual hosts (P line).

Wed Dec 18 12:08:29 1996  Christophe Kalt

	* bsd.c:

		* fixed read_message() bugs resulting from the merge.

	* channel.c:

		* limited the number of possible kicks to MAXMODEPARAMS.

Mon Dec 16 09:36:54 1996  Christophe Kalt
	
	* list.c:

		* don't free serv->user too early.

		* removed duplicated(?) away memory count.
	
Fri Dec 13 10:28:43 1996  Christophe Kalt - Hmm, Friday the 13th!

	* config.h.dist, s_auth.c, s_user.c, s_debug.c:

		* minor tuning.

Thu Dec 12 10:34:47 1996  Christophe Kalt

	* struct.h, s_auth.c, s_debug.c:

		* added memory usage stats for ident replies.

	* send.c, s_auth.c, s_misc.c:

		* fixed boundaries problems with long ident replies.

Wed Dec 11 17:42:29 1996  Christophe Kalt

	* struct.h, send.c, s_auth.c, s_bsd.c, list.c, s_conf.c, s_misc.c,
	s_user.c:

		* added auth field to struct Client to eventually store
		long `OTHER' ident replies.  It is only used in logs, and
		notices (not in matches against configuration lines).
	
	* config.h.dist:

		* added #define SLOW_ACCEPT (default).

		* added #define CLONE_CHECK (default).
	
	* s_bsd.c:

		* fixed config line reference counter.
	
		* added CLONE_CHECK code (check_clones() from
		pgoncalves@mail.telepac.pt (Pedro Goncalves)).
		
		* added SLOW_ACCEPT (previous behaviour) code.

		* merged the 2 versions of read_message(), fixing some
		(buggy) difference between them.

		* merged two for() in read_message().


Mon Dec  2 11:02:54 1996  Christophe Kalt

	* s_user.c:

		* changed error notice
	
	* send.c:

		* #*.mask messages now propagated to other servers.
	
	* s_service.c:

		* added missing else.

	* config.h.dist, s_debug.c, channel.c:

		* removed all references to V28PlusOnly
		* made NoV28Link defined by default

Wed Nov 27 18:09:42 1996  Christophe Kalt

	* struct.h, class.c, ircd.c, s_bsd.c, s_conf.c, s_serv.c:

		* added lowercase c config line

Tue Oct  1 22:29:31 1996  Christophe Kalt

	* added config.h to dependancies in Makefile.ircd

	* config.h.dist, h.h, struct.h, packet.c, send.c, ircd.c, s_bsd.c,
	s_debug.c, s_serv.c, s_user.c, s_err.c, list.c,	Makefile.ircd,
	configure.in:

		* added #define ZIP_LINKS and s_zip.c.
		* made configure look for the zlib (-lgz).
		* implemented server-server zlib compression.
