2003-08-25  Per Cederqvist  <ceder@ceder.dyndns.org>

	Don't crash if a write error occurs.
	* src/isc_event.c (isc_read_data): Don't crash if wr_msg_q is
	NULL.
	* src/isc_output.c (isc_oflush): Do nothing in ISC_STATE_CLOSING.
	Simplified the error-handling code.
	* src/isc_session.c (isc_check_read_callback): Don't crash if
	wr_msg_q is NULL.
	(isc_check_read_callback): Don't setup any callbacks in
	ISC_STATE_CLOSING.

2003-08-22  Per Cederqvist  <ceder@ceder.dyndns.org>

	Don't crash if failing to bind a port.
	* src/isc_session.c (isc_destroy): Don't chanse a NULL pointer.
	This could be triggered if the port was already bound.

2003-08-15  Per Cederqvist  <ceder@ceder.dyndns.org>

	Get a fresh version of depcomp.
	* depcomp: Removed.  Regenerate this using automake to get a fresh
	version.

2003-08-11  Per Cederqvist  <ceder@ceder.dyndns.org>

	Code cleanup.
	* src/isc_stdout.c: Fixed a typo in a comment.

	Don't use memcpy to move overlapping blocks.  This could
	potentially result in the server sending garbage to clients.
	* src/isc_output.c (isc_oflush): Use memmove, not memcpy, to move
	memory areas that may overlap.

2003-08-07  Per Cederqvist  <ceder@ceder.dyndns.org>

	Removed the useless nlinks field.  (Bug 1071).
	* src/intern.h (struct isc_scb_internal): Removed the nlinks field.
	(isc_insert): Changed return type to void.
	* src/isc_session.c (isc_insert): Changed return type to void.
	Don't manipulate the useless nlinks field.
	(isc_remove): Don't manipulate the useless nlinks field.
	(isc_create): Ditto.
	(isc_destroy): Ditto.

2003-08-06  Per Cederqvist  <ceder@ceder.dyndns.org>

	Use ADNS to look up IPv4 addresses.  (Bug 627).
	* src/Makefile.am (AM_CPPFLAGS): Added -I flag for adns.
	* src/isc.h (enum isc_resolve_status): Added
	isc_resolve_adns_error.
	(isc_resolve_remote): Return 0 on success.
	* src/intern.h (struct isc_mcb): Added adns.
	(struct isc_scb_internal): Added adns_query.
	* src/isc_socket.c: Include <stdlib.h>.
	(isc_dns_resolve_adns_cb): New function.
	(isc_resolve_remote): Try to use adns to look up the address.
	Fall back to the old method if adns returns ENOSYS, which
	indicates that it doesn't support the addess family.
	* src/isc_session.c (isc_create): Initialize adns_query.
	(isc_destroy): Cancel any pending adns query.
	* src/isc_master.c (isc_initialize): Initialize an oop adns
	adapter.
	(isc_shutdown): Delete the oop adns adapter.
	* src/isc_abort.c: Include "adns.h" and "oop-adns.h".
	* src/isc_alloc.c: Ditto.
	* src/isc_compat.c: Ditto.
	* src/isc_event.c: Ditto.
	* src/isc_message.c: Ditto.
	* src/isc_output.c: Ditto.
	* src/isc_queue.c: Ditto.
	* src/isc_relocate.c: Ditto.
	* src/isc_stdout.c: Ditto.
	* src/isc_tcp.c: Ditto.

2003-08-05  Per Cederqvist  <ceder@ceder.dyndns.org>

	Restructure the DNS lookup API in preparation of ADNS
	integration.  The API is now callback-based.  The current
	implementation still uses gethostbyname, though.
	* src/isc.h (enum isc_resolve_status): New enum.
	(isc_resolve_done_cb): New callback.
	(struct isc_scb): Added the field "remote".
	(isc_gethostname): Removed.
	(isc_resolve_remotem): New function.
	* src/intern.h (struct isc_scb_internal): Added resolve_callback.
	(isc_dns_resolve_cb): New function.
	* src/isc_socket.c (isc_dns_resolve_cb): New function.
	(isc_resolve_remote): New function.
	(isc_gethostname): Removed.
	* src/isc_session.c (isc_create): Initialize resolve_callback and
	remote.
	(isc_destroy): Cancel any pending dns query, and clear remote.

2003-08-04  Per Cederqvist  <ceder@ceder.dyndns.org>

	Simplified the API of the callback functions.  Pass a pointer to
	the isc_scb instead of a user-supplied pointer to the callback.
	* src/isc.h (isc_accept_callback): Removed the cb_mcb argument.
	(isc_write_error_cb): Removed the cb_mcb and user arguments.
	(isc_stale_output_cb): Ditto.
	(isc_set_read_callback): Removed the user argument.  Use the udg
	field of the isc_scb instead.
	* src/intern.h (struct isc_scb_internal): Removed
	data_available_user.
	* src/isc_tcp.c (isc_accept_cb): Adjusted to the new API of the
	callback functions.
	* src/isc_session.c (isc_create): Don't set data_available_user,
	which has been removed.
	(stale_cb): Adjusted to the new API of the callback functions.
	(idle_cb): Ditto.
	(isc_set_read_callback): Removed the user argument.
	(isc_check_read_callback): Pass the isc_scb object instead of the
	user-supplied pointer to the on_fd.
	* src/isc_output.c (isc_oflush): Adjusted to the new API of the
	callback functions.

2003-08-03  Per Cederqvist  <ceder@ceder.dyndns.org>

	Code cleanup.  At the same time a micro-optimization was done: get
	rid of a call to getpeername() and getsockname() per accepted
	connection.  (Bug 916).
	* src/isc_tcp.c (isc_tcp_accept): Use the address that the
	accept() call supplies, so that we don't have to do an extra call
	to getpeername().  Copy the local address from the socket we
	listen to, so that we don't have to do an extra call to
	getsockname().
	* src/isc_socket.c (isc_getladdress): Function removed.
	(isc_getraddress): Function removed.
	(isc_copyaddress): Resurrected the function that was removed
	2003-07-12, and changed the type names to the current ones.
	* src/isc.h (isc_getladdress): Removed.
	(isc_getraddress): Removed.
	* src/intern.h (isc_copyaddress): Resurrected the function that
	was removed 2003-07-12.

	Removed documentation that was misleading.
	* man/Makefile.am (EXTRA_DIST): Removed FUNCTIONS.
	* man/FUNCTIONS: Removed.  Almost nothing was true any more.
	* doc/Makefile.am (EXTRA_DIST): Removed MANUAL.sv.
	* doc/MANUAL.sv: Removed.  Almost nothing was true any more.

	Fixed an uninitialized variable.
	* src/isc_session.c (isc_create): Initialize idle_cb_registered.

	The idle and stalled timeout are now fully orthogonal.  Fixes
	to the idle timeout implementation.
	* src/isc.h (isc_set_acceptable_idle): It is now acceptable to
	have a idle timeout that is shorter than the stale timeout.
	* src/isc_session.c (stale_cb): Return OOP_HALT instead of
	following a NULL pointer if the user hasn't registered a
	callback.
	(idle_cb): Ditto.
	(isc_set_acceptable_idle): Store the new value inte the proper
	field.
	(isc_check_read_callback): Simplified the logic.  It is now
	acceptable to have a idle timeout that is shorter than the stale
	timeout.

2003-08-02  Per Cederqvist  <ceder@ceder.dyndns.org>

	Added the ability to disconnect idle clients.  (Bug 11).
	* src/isc.h (isc_cfg_stale_timeout): New argument: default_idle.
	(isc_set_read_callback): New argument: idle_cb.
	(isc_set_acceptable_idle): New function.
	* src/intern.h (struct isc_scb_internal): Added fields idle_cb,
	idle_cb_registered, idle_tv and acceptable_idle_time.
	(struct isc_session_cfg): Added idle_timeout.
	* src/isc_tcp.c (isc_accept_cb): Forward declaration using the
	typedef oop_call_fd added.
	* src/isc_session.c (isc_create): Set acceptable_idle_time to the
	default idle timeout.
	(idle_cb): New static function.
	(isc_cancel_idle_callback): New static function.
	(isc_set_read_callback): New argument: idle_cb.
	(isc_check_read_callback): Handle the idle timeout.
	(isc_destroy): Cancel the idle timeout.
	* src/isc_master.c (isc_cfg_stale_timeout): New argument:
	default_idle.

	Make the message size and output queue configurable again.
	* src/isc.h (isc_cfg_queue_size): New function.
	* src/isc_stdout.c (isc_putc): Handle the case when max.msgsize is
	set to less than ISC_DEFAULT_MAX_MSG_SIZE.
	(isc_write): Ditto.
	* src/isc_session.c (isc_check_read_callback): Check the size of
	the output queue in bytes as well as number of messages.
	* src/isc_queue.c (isc_newqueue): Initialize bytes.
	(isc_killqueue): Check bytes.
	(isc_pushqueue): Update bytes.
	* src/isc_output.c (isc_oflush): Update the output queue size.
	* src/isc_master.c (isc_initialize): Initialize queuedsize_bytes.
	(isc_cfg_queue_size): New function.
	* src/isc_event.c (isc_read_data): Check for too many bytes in
	output queue.
	* src/intern.h (struct isc_scb_internal): Make the sendbuf be
	ISC_DEFAULT_MAX_MSG_SIZE bytes large, not 2048.
	(struct isc_msgqueue): New field: bytes.
	(struct isc_session_cfg): Added queuedsize_bytes.

2003-08-01  Per Cederqvist  <ceder@ceder.dyndns.org>

	Added a callback function that reports changes to the size of the
	output queue.
	* src/isc.h (isc_write_queue_change_cb): New typedef.
	(isc_initialize): New argument: the write_change_cb.
	* src/intern.h (struct isc_mcb): Added write_change_cb.
	(isc_killqueue): Now returns an int: the number of payload bytes
	in the killed queue.
	* src/isc_session.c (isc_destroy): Inform the write change
	callback function of changes in the pending output queue size.
	* src/isc_queue.c (isc_killqueue): Now returns an int: the number
	of payload bytes in the killed queue.
	* src/isc_output.c (isc_flush): Inform the write change callback
	function of changes in the pending output queue size.
	(isc_oflush): Ditto.
	* src/isc_master.c (isc_initialize): New argument:
	write_change_cb.

	Don't fail to unregister the stale timeout during shutdown.
	* src/isc_session.c (isc_set_read_callback): Call
	isc_cancel_stale_output_callback().  Removed redundant checks.
	(isc_destroy): Call isc_cancel_stale_output_callback().

	Call a callback function if a client becomes stale.
	* src/isc.h (isc_stale_output_cb): New typedef.
	(isc_cfg_stale_timeout): New function.
	(isc_set_read_callback): New argument: stale_output_cb.
	* src/isc_session.c (isc_create): Initialize
	stale_output_cb_registered and stale_output_cb.
	(stale_cb): New static function.
	(isc_set_read_callback): New argument: stale_output_cb.
	(isc_cancel_stale_output_callback): New static function.
	(isc_check_read_callback): New argument: any_written.  All callers
	updated.  Handle a timer callback used to detect if a client has
	stalled.
	* src/isc_output.c (isc_oflush): Inform isc_check_read_callback()
	if anything was written.
	* src/isc_master.c (isc_initialize): Initialize stale_timeout.
	(isc_cfg_stale_timeout): New function.
	* src/intern.h (struct isc_scb_internal): Added stale_output_cb,
	stale_output_cb_registered and stale_output_tv.
	(struct isc_session_cfg): Added stale_timeout.
	(isc_check_read_callback): New argument: any_written.  All callers
	updated.
	* configure.in: Removed -Waggregate-return, since we use
	timeval_ctor() from libmisc.

2003-07-31  Per Cederqvist  <ceder@ceder.dyndns.org>

	Move struct isc_mcb and large parts of struct isc_scb from isc.h
	to intern.h.
	* src/isc.h (isc_msgqueue): Forward declaration removed.
	(isc_session_cfg): Ditto.
	(isc_scb_entry): Ditto.
	(struct isc_scb): Moved a lot of fields to struct isc_scb_internal
	in intern.h.
	(struct isc_mcb): Moved to intern.h.
	(isc_getoopsource): New function.
	* src/intern.h (struct isc_mcb): Moved here from isc.h.
	(struct isc_scb_internal): New struct, that contains all the parts
	of struct isc_scb that the user need not know about.
	(struct isc_scb_entry): Refer to the internal structure.
	(isc_oflush): Use the internal structure.
	(isc_create): Ditto.
	(isc_insert): Ditto.
	(isc_remove): Ditto.
	(isc_createtcp): Ditto.
	(isc_bindtcp): Ditto.
	(isc_check_read_callback): Ditto.
	(isc_cancel_read_callback): Ditto.
	(isc_cancel_write_callback): Ditto.
	* src/isc_tcp.c (isc_tcp_accept): Handle struct isc_scb_internal.
	(isc_createtcp): Handle struct isc_scb_internal.
	(isc_bindtcp): Handle struct isc_scb_internal.
	(isc_accept_cb): Handle struct isc_scb_internal.
	(isc_listentcp): Handle struct isc_scb_internal.
	* src/isc_stdout.c (isc_putc): Handle struct isc_scb_internal.
	(isc_write): Handle struct isc_scb_internal.
	* src/isc_session.c (isc_insert): Handle struct isc_scb_internal.
	(isc_findsession): Handle struct isc_scb_internal.
	(isc_remove): Handle struct isc_scb_internal.
	* src/isc_output.c (isc_flush): Handle struct isc_scb_internal.
	(write_cb): Handle struct isc_scb_internal.
	(isc_oflush): Handle struct isc_scb_internal.
	* src/isc_master.c (isc_shutdown): Handle struct isc_scb_internal.
	* src/isc_event.c (isc_read_data): Handle struct isc_scb_internal.

2003-07-28  Per Cederqvist  <ceder@ceder.dyndns.org>

	Code cleanup.
	* src/isc_tcp.c (isc_mktcpaddress): Rewrite the code to get rid of
	a compiler warning and make the code easier to read.

	Don't use socklen_t in the exported API, since that leads to
	portability problems.
	* src/isc_tcp.c, src/isc.h (isc_addressfamily): Changed return
	type to int.
	(isc_addresssize): Ditto.

	Distribute isc_addr.h, which was added yesterday.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_addr.h.

	Host name lookup always failed if gethostbyname2() was used.
	* src/isc_tcp.c (isc_mktcpaddress_internal): The logic for checking
	the return value from gethostbyname2() was inverted.

	Export functions for creating and using an isc_address from a host
	name and port name.
	* src/isc.h (isc_mktcpaddress): New function.
	(isc_addressfamily): New function.
	(isc_addresssize): New function.
	(isc_addresspointer): New function.
	* src/isc_tcp.c (isc_mktcpaddress_internal): New name for former
	isc_mktcpaddress.  All callers updated.
	(isc_mktcpaddress): New function.
	(isc_addresssize): New function.
	(isc_addressfamily): New function.
	(isc_addresspointer): New function.
	(isc_bindtcp): Use isc_addresspointer() and isc_addresssize() to
	simplify the code.
	* src/isc_addr.h (UNUSED_UNLESS_INET6): New macro.
	(USE_GETIPNODEBYNAME): Moved from intern.h.
	* src/intern.h: Fixed documentation of FOR_EACH_AF.
	(USE_GETIPNODEBYNAME): Moved to isc_addr.h.

2003-07-27  Per Cederqvist  <ceder@ceder.dyndns.org>

	Clean up some problems in ISC that the IPv6 support added.
	(Bug 563).
	* src/isc_addr.h: New file, that contains private structures
	extracted from isc.h.  This file should only be included by files
	in the isc library.
	* src/isc_tcp.c: Include isc_addr.h.
	* src/isc_socket.c: Include isc_addr.h.
	* src/isc.h: Don't include <sys/socket.h> and <netinet/in.h> from
	here.  The coding standard of lyskomd is to never include files
	from included files.
	(SOCKADDR_STORAGE): Moved to isc_addr.h.
	(union sockaddrs): Ditto.
	(union isc_address): Ditto, but keep a forward declaration.
	* src/intern.h (isc_mkipaddress): Moved to isc_addr.h.

2003-07-14  Per Cederqvist  <ceder@ceder.dyndns.org>

	Don't read when the output queue is full.
	* src/isc_event.c (isc_read_data): Return ISC_READ_WOULDBLOCK if
	the output queue is full.

2003-07-13  Per Cederqvist  <ceder@ceder.dyndns.org>

	Ensure that unused parameters are unused.
	* src/unused.h (UNUSED_H_CONCAT): New macro.
	(UNUSED): Mangle the name of the supposedly unused argument, so
	that the compiler will report errors if it actually is used.

2003-07-12  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fix new compilation errors.
	* src/isc_socket.c (isc_getipnum): Fixed compilation errors for
	IPv6 configurations, which were introduced in the previous commit.
	(isc_gethostname): Ditto.
	(isc_getportnum): Ditto.

	Use liboop as a backend.  Only support TCP streams.  Removed a lot
	of stuff that isn't used by lyskom-server.  Move much internal
	stuff from isc.h to intern.h.
	* src/isc_wait.c: File removed.
	* src/isc_udp.c: File removed.
	* src/isc_tcp.c (isc_tcp_accept_fn): Renamed to isc_tcp_accept.
	Removed the unused hl and msg arguments.
	(isc_tcp_destroy_fn): Function removed.
	(isc_connecttcp): Ditto.
	(isc_opentcp): Ditto.
	(isc_tcp_funs): Function table removed.
	(isc_createtcp): Added mcb and initial_state arguments.  Removed
	obsolete bogus setsockopt() calls.
	(isc_bindtcp): Don't check the type of the session.
	(isc_accept_cb): New function.
	(isc_listentcp): Added the cb argument.  Don't set the state here;
	that is now done by isc_create().  Add isc_accept_cb() as a read
	callback.
	* src/isc_stdout.c (isc_putc): The ISC_STATE_CONNECTING state no
	longer exists.
	(isc_write): Ditto.
	* src/isc_socket.c (isc_getladdress): Don't check the type of the
	session.
	(isc_getraddress): Ditto.
	(isc_copyaddress): Function removed.
	(isc_getservice): Ditto.
	* src/isc_session.c (isc_default_read_fn): Function removed.
	(isc_default_write_fn): Ditto.
	(isc_default_close_fn): Ditto.
	(isc_close): Ditto.
	(isc_sessions): Ditto.
	(isc_openfd): Ditto.
	(isc_file_destroy_fn): Ditto.
	(isc_openfile): Ditto.
	(isc_default_fun): Function table removed.
	(isc_create): Removed the "IscHandler *fun" argument, and added
	mcb and initial_state arguments.  Initialize the currently
	existing fields.
	(isc_set_read_callback): New function.
	(isc_check_read_callback): Ditto.
	(isc_cancel_read_callback): Ditto.
	(isc_cancel_write_callback): Ditto.
	(isc_destroy): Cancel read, write and accept callbacks.  Free
	raddr and laddr instead of calling a destroy handler.
	(isc_disable): Remove the read callback.
	(isc_enable): Maybe add the read callback.
	* src/isc_relocate.c: Include "oop.h" and "s-string.h".
	* src/isc_queue.c (isc_pollqueue): Removed the external function.
	The macro is good enough.
	* src/isc_output.c (isc_flush): There is no longer any read queue.
	(write_cb): New function.
	(isc_oflush): Don't close the socket if the output queue is too
	big.  Instead, isc_check_read_callback() refuses to read input
	from the client until it reads enough of the output queue.  Assert
	that this isn't a listening session, but don't otherwise check the
	state.  Call write instead of using the handler mechanism.  Call
	the write_err_cb callback function if an error occurs.  Don't
	update statistics that nobody uses.  Set up a liboop write
	callback if we cannot send all output at once.  Call
	isc_check_read_callback().
	(isc_send): Function removed.
	(isc_sendto): Ditto.
	* src/isc_message.c (isc_allocmsg): Don't set the address field,
	which has been removed.
	(isc_reallocmsg): Function removed.
	(isc_copymsg): Ditto.
	(isc_mkstrmsg): Ditto.
	* src/isc_master.c (isc_initialize): Removed the cfg argument, and
	added the oop_source argument.  Allocate a cfg struct.
	(isc_cfg_fd_relocate): New function.
	(isc_shutdown): Free the cfg struct.
	* src/isc_handler.c: File removed.
	* src/isc_event.c (isc_read_data): New function.
	(isc_getnextevent): Function removed.
	(isc_dispose): Ditto.
	* src/isc_compat.c: Include "oop.h" and "s-string.h".
	* src/isc_alloc.c (isc_strdup): Function removed.
	* src/isc_abort.c (isc_setabortfn): Place inside #if 0, since it
	is currently unused.
	* src/isc.h: Removed several defines for structs and unions.  All
	users updated to use the real names instead:
	    IscSessionConfig  => struct isc_session_cfg
	    IscAddress        => union  isc_address
	    IscMessage        => struct isc_msg
	    IscMsgQE          => struct isc_msg_q_entry
	    IscMsgQueue       => struct isc_msgqueue
	    IscSession        => struct isc_scb
	    IscSessionList    => struct isc_scb_entry
	    IscMaster         => struct isc_mcb
	(IscMasterConfig): Define and struct removed.
	(IscConfig): Ditto.
	(IscHandlerCache): Ditto
	(IscHandler): Ditto.
	(IscHandlerList): Ditto.
	(IscEvent): Ditto.
	(IscEventType): Define and enum removed.
	(IscSessionType): Ditto.
	(IscSessionInfo): Define and union removed.
	(IscSessionStats): Ditto.
	(enum isc_session_state): Removed the states ISC_STATE_UNKNOWN,
	ISC_STATE_CONNECTING and ISC_STATE_CLOSING2.
	(union isc_address): Don't wrap the saddr field inside a
	meaningless struct named ip.
	(isc_initialize): Removed the cfg argument, and added the
	oop_source argument.
	(struct isc_scb): Removed the following fields: type, isc_errno,
	rd_msg_q, info, logintime, idlesince, stats and handlers.
	Added the following fields: raddr, laddr, master, accept_cb,
	write_err_cb, data_available_callback, data_available_user,
	data_available_registered and write_cb_registered.
	(struct isc_mcb): The scfg field is now a pointer, so that we
	don't have to expose the struct isc_session_cfg struct in isc.h.
	Added the event_source field.
	(isc_listentcp): Added the cb argument.
	(isc_openfd): Function removed.
	(isc_openfile): Ditto.
	(isc_openudp): Ditto.
	(isc_close): Ditto.
	(isc_sessions): Ditto.
	(isc_getnextevent): Ditto.
	(isc_wait): Ditto.
	(isc_dispose): Ditto.
	(isc_send): Ditto.
	(isc_sendto): Ditto.
	(isc_reallocmsg): Ditto.
	(isc_copymsg): Ditto.
	(isc_mkstrmsg): Ditto.
	(isc_createudp): Ditto.
	(isc_bindudp): Ditto.
	(isc_connecttcp): Ditto.
	(isc_connectudp): Ditto.
	(isc_listenudp): Ditto.
	(isc_copyaddress): Ditto.
	(isc_getservice): Ditto.
	(isc_newhandler): Ditto.
	(isc_freehandler): Ditto.
	(isc_copyhandler): Ditto.
	(isc_pushhandler): Ditto.
	(isc_pophandler): Ditto.
	(ISC_HCALLFUN1): Macro removed.
	(ISC_HCALLFUN2): Ditto.
	(ISC_HCALLFUN3): Ditto.
	(enum isc_read_result): New enum.
	(isc_read_data): New function.
	(isc_cfg_fd_relocate): Ditto.
	(isc_set_read_callback): Ditto.
	(isc_accept_callback): New callback function.
	(isc_write_error_cb): Ditto
	Moved some constants to intern.h:
	(ISC_DEFAULT_MAX_MSG_SIZE): Moved.
	(ISC_DEFAULT_MAX_QUEUED_SIZE): Moved.
	(ISC_DEFAULT_MAX_DEQUEUE_LEN): Moved.
	(ISC_DEFAULT_MAX_OPEN_RETRIES): Moved.
	(ISC_DEFAULT_MAX_BACKLOG): Moved.
	Moved some structs to intern.h:
	(struct isc_msg): Was: IscMessage.
	(struct isc_msg_q_entry): Was: IscMsgQE.
	(struct isc_msgqueue): Was: IscMsgQueue.
	(struct isc_session_cfg): Was: IscSessionConfig.
	(struct isc_scb_entry): Was: IscSessionList.
	Moved some functions to intern.h:
	(isc_freemsg): Moved.
	(isc_create): Moved.
	(isc_insert): Moved.
	(isc_remove): Moved.
	(isc_createtcp): Moved.
	(isc_bindtcp): Moved.
	(isc_allocmsg): Moved.
	Moved some functions from intern.h:
	(isc_setallocfn): Moved.
	* src/intern.h: Moved some constants from isc.h and changed their
	values:
	    ISC_DEFAULT_MAX_MSG_SIZE:   2048 => 8176
	    ISC_DEFAULT_MAX_QUEUED_SIZE: 600 => 50
	    ISC_DEFAULT_MAX_DEQUEUE_LEN:  10 => 30
	    ISC_DEFAULT_MAX_OPEN_RETRIES: 10 => 10
	    ISC_DEFAULT_MAX_BACKLOG:       5 => 50
	Moved some structs from isc.h and stopped using a defined name:
	(struct isc_msg): Was: IscMessage.
	(struct isc_msg_q_entry): Was: IscMsgQE.
	(struct isc_msgqueue): Was: IscMsgQueue.
	(struct isc_session_cfg): Was: IscSessionConfig.
	(struct isc_scb_entry): Was: IscSessionList.
	Moved some functions from isc.h:
	(isc_freemsg): Moved.
	(isc_create): Moved.
	(isc_insert): Moved.
	(isc_remove): Moved.
	(isc_createtcp): Moved.
	(isc_bindtcp): Moved.
	(isc_allocmsg): Moved.
	Moved some functions to isc.h:
	(isc_setallocfn): Moved.
	Other changes:
	(struct isc_msg): Removed the address field.
	(struct isc_session_cfg): Removed the version field.
	(isc_log): Function removed.
	(isc_create): Removed the "IscHandler *fun" argument, and added
	mcb and initial_state arguments.
	(isc_createtcp): Added mcb and initial_state arguments.
	(isc_strdup): Function removed.
	(isc_default_read_fn): Function removed.
	(isc_default_write_fn): Function removed.
	(isc_default_close_fn): Function removed.
	(isc_pollqueue): Removed the external function.  Retain the
	macro.
	(isc_setabortfn): Place inside #if 0, since it is currently
	unused.
	(isc_check_read_callback): New function.
	(isc_cancel_read_callback): New function.
	(isc_cancel_write_callback): New function.
	(ISC_SCALLFUN1): Macro removed.
	(ISC_SCALLFUN2): Macro removed.
	(ISC_SCALLFUN3): Macro removed.
	* src/Makefile.am (libisc_a_SOURCES): Removed isc_handler.c,
	isc_udp.c and isc_wait.c.
	(AM_CPPFLAGS): Added -I flags for libmisc (to get the string
	class), liboop, and the main include library (needed by
	s-string.h).

2003-01-07  Per Cederqvist  <ceder@lysator.liu.se>

	Port to IRIX64, where "unsigned long" isn't large enough to avoid
	alignment problems.
	* configure.in: Handle --disable-malloc-guards.  Check for
	intptr_t, intmax_t and size_t.
	* src/isc_alloc.c: Include inttypes.h and stdint.h.  Check
	USE_MALLOC_GUARDS.
	(union overhead): New union, to fix alignmentproblems.
	(OVERHEAD): New macro.
	(isc_malloc): Use union overhead instead of unsigned long.
	Removed unneeded casts.  Handle USE_MALLOC_GUARDS.
	(isc_realloc): Ditto.
	(isc_free): Ditto.

2003-01-06  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fix IPv4 under Solaris 2.8.  (Patch by Thorild Seln.)
	* src/isc_tcp.c (isc_bindtcp): Pass the proper size to bind() for
	IPv4 and IPv6.
	* src/isc_udp.c (isc_bindudp): Pass the proper size to bind() for
	IPv4 and IPv6.

2002-12-30  Per Cederqvist  <ceder@ceder.dyndns.org>

	Autoconf: better check for "attribute unused" support.
	* configure.in: Use CMOD_C_WORKING_ATTRIBUTE_UNUSED instead of
	CMOD_C_ATTRIBUTE_UNUSED.
	* acinclude.m4 (CMOD_C_ATTRIBUTE_UNUSED): Removed.
	(CMOD_C_WORKING_ATTRIBUTE_UNUSED): New defun.

2002-11-29  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fixed more IPv6 portability problems.
	* configure.in: Check for freehostent.
	* src/intern.h: Require HAVE_FREEHOSTENT to be defined if we are
	to use getipnodebyname.
	* src/isc_udp.c (isc_mkudpaddress): Don't call freehostent()
	unless hp has been allocated by getipnodebyname().
	* src/isc_tcp.c (isc_mktcpaddress): Don't call freehostent()
	unless hp has been allocated by getipnodebyname().
	* src/isc_socket.c (isc_getipnum): Fixed typo: strncpy was spelled
	"strncopy".

2002-11-28  Per Cederqvist  <ceder@ceder.dyndns.org>

	Give credits to Thorild for the IPv6 porting.
	* AUTHORS: Added Thorild Seln.
	
	Fix IPv6 portability problems to various versions of AIX, HP-UX
	and Solaris.
	* src/intern.h: Define USE_GETIPNODEBYNAME if both
	HAVE_GETIPNODEBYNAME and AI_ADDRCONFIG are defined.  AIX 4.2 lacks
	AI_ADDRCONFIG.
	* src/isc_udp.c (isc_mkudpaddress): Declare error_num if
	USE_GETIPNODEBYNAME is defined.  Test USE_GETIPNODEBYNAME instead
	of HAVE_GETIPNODEBYNAME to determine if it should be used.  Don't
	access AF_INET6 unless USE_INET6 is true.
	* src/isc_tcp.c (isc_mktcpaddress): Declare error_num if
	USE_GETIPNODEBYNAME is defined.  Test USE_GETIPNODEBYNAME instead
	of HAVE_GETIPNODEBYNAME to determine if it should be used.

2002-11-28  Thorild Seln  <thorild@Update.UU.SE>

	Added IPv6 support with IPv4 compatibility.  (ChangeLog entry
	written by ceder.  Some minor coding standard changes by ceder.
	Three minor problems noted by FIXME comments by ceder.)
	* configure.in: Added --enable-ipv6 switch.  Check for inet_ntop,
	inet_pton, getipnodebyname, gethostbyname2, and struct
	sockaddr_storage.
	* src/isc.h: This commit includes three broken things; see FIXMEs
	in the code.
	Include <sys/socket.h> and <netinet/in.h>.
	(SOCKADDR_STORAGE): Define it to struct sockaddr_storage or struct
	sockaddr, depending on HAVE_STRUCT_SOCKADDR_STORAGE.
	(union sockaddrs): New union.
	(IscAddress): Use union sockaddrs instead of struct sockaddr.
	* src/intern.h (isc_mkipaddress): Use SOCKADDR_STORAGE as
	argument, not struct sockaddr.
	(CHOOSE_IP4OR6): New macro.
	(FOR_EACH_AF): New macro.
	(FOR_EACH_PF): New macro.
	(STORE_ADDR): New macro.
	* src/isc_udp.c (isc_udp_read_fn): Handle IPv6.
	(isc_udp_write_fn): Handle IPv6.
	(isc_mkudpaddress): New argument: address_family.  All callers
	updated.  Handle IPv6.  Broadcast addresses are not supported.
	(isc_createudp): Handle IPv6.  The first argument of socket()
	should be PF_INET for IPv4, not AF_INET.
	(isc_bindudp): Handle IPv6.
	(isc_connectudp): Handle IPv6.
	* src/isc_tcp.c (isc_mktcpaddress): New argument: address_family.
	All callers updated.  Handle IPv6.
	(isc_createtcp): Handle IPv6.  The first argument of socket()
	should be PF_INET for IPv4, not AF_INET.
	(isc_bindtcp): Handle IPv6.
	(isc_connecttcp): Handle IPv6.
	* src/isc_socket.c (cast_to_sockaddr_in): Removed.
	(isc_mkipaddress): Changed struct sockaddr to SOCKADDR_STORAGE.
	(isc_getladdress): Ditto.  Cast argument of getsockname from
	SOCKADDR_STORAGE* to struct sockaddr*.
	(isc_getraddress): Ditto (but for getpeername instead of
	getsockname).
	(isc_getipnum): Handle IPv6.
	(isc_gethostname): Ditto.
	(isc_getportnum): Ditto.
	(isc_getservice): Use isc_getportnum to simplify code.

2002-11-25  Per Cederqvist  <ceder@ceder.dyndns.org>

	Port to Autoconf 2.56 and Automake 1.7.1.
	* configure.in: Use autoconf-2.56 and automake-1.7.1: Use
	AC_COMPILE_IFELSE and AC_LANG_PROGRAM instead of AC_TRY_COMPILE.
	Fixed broken quoting.

2002-10-09  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fixed socklen_t fallback code.
	* configure.in: The fallback for socklen_t when no compilation
	worked without a warning was broken.  Fix.

2002-10-02  Per Cederqvist  <ceder@ceder.dyndns.org>

	Port to the ecc compiler.
	* acinclude.m4 (CMOD_C_ATTRIBUTE_UNUSED): Improve the test, by
	checking that __attribute__((unused)) is accepted in a function
	declaration.  The ecc compiler on Linux/ia64 seems to accept it
	and give a warning when used on a local variable, but chokes on
	it when used in a function declaration.

2002-09-21  Per Cederqvist  <ceder@ceder.dyndns.org>

	Get rid of AIX 4.2 compiler warnings.
	* src/isc_wait.c: Include strings.h.
	* src/isc_event.c: Include strings.h.
	* src/intern.h (socklen_t): Use the type that the configure script
	has found, instead of always using unsigned int.  AIX 4.2 wants an
	size_t, which is an unsigned long.
	* configure.in: Check for strings.h.  Check for a socklen_t type
	that produces no warnings.

2002-09-10  Per Cederqvist  <ceder@ingate.com>

	As expected, uint32_t is not universally available.  SunOS
	4.1.1_U1 lacks it.
	* configure.in: Check for uint32_t, and sizeof int and long.
	* src/intern.h: Typedef uint32_t when needed.

2002-09-10  Per Cederqvist  <ceder@ceder.dyndns.org>

	Get rid of more warnings.  (This will probably break on several
	platforms that don't have uint32_t.)
	* configure.in: Cast INADDR_NONE to uint32_t.

2002-09-09  Per Cederqvist  <ceder@ceder.dyndns.org>

	Port to SunOS 5.4.
	* src/isc_compat.c: Include <netinet/in.h>, needed by SunOS 5.4.

2002-09-08  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fix more socklen_t and inet_aton problems.
	* src/intern.h [!HAVE_INET_ATON]: Declare struct in_addr.  
	[!HAVE_SOCKLEN_T]: Add typedef for socklen_t.
	* configure.in: Check for socklen_t.

	Fix include problems with isc_compat.c.
	* src/isc_compat.c: Include <sys/types.h> and <sys/socket.h>.

	Avoid a warning about memset.
	* src/isc_wait.c: Include <string.h> if available, to get rid of a
	warning generated from FD_ZERO on some platforms.

	Use socklen_t and inet_aton to reduce warnings and increase
	stability.
	* src/isc_udp.c (isc_udp_read_fn): Changed type of len from int
	to socklen_t.
	(isc_mkudpaddress): Use inet_aton instead of inet_addr.
	* src/isc_tcp.c (isc_tcp_accept_fn): The third argument of
	accept() should be pointer to socklen_t, not pointer to int.
	(isc_mktcpaddress): Use inet_aton instead of inet_addr.
	* src/isc_socket.c (isc_getladdress): Changed type of len from int
	to socklen_t.
	(isc_getraddress): Ditto.

	Provide a replacement for inet_aton for systems that only have
	inet_addr.
	* src/isc_compat.c: New file.
	(inet_aton): New compatibility function.
	* src/intern.h (inet_aton): Added a declaration if HAVE_INET_ATON
	is false.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_compat.c.
	* configure.in: Check for -lsockt and -lnsl if needed.  Check for
	inet_aton.  Check for INADDR_NONE only if inet_aton isn't
	available.

2002-09-07  Per Cederqvist  <ceder@ceder.dyndns.org>

	Get rid of warnings from casting a struct sockaddr* to a struct
	sockaddr_in*.
	* src/isc_socket.c (cast_to_sockaddr_in): New static inline
	function.
	(isc_getipnum): Use it, to get rid of a warning.
	(isc_gethostname): Ditto.
	(isc_getportnum): Ditto.
	(isc_getservice): Ditto.
	* configure.in: Check for inline support.

	Use INADDR_NONE to get rid of a compiler warning.
	* src/isc_udp.c (isc_mkudpaddress): Use INADDR_NONE instead of -1.
	* src/isc_tcp.c (isc_mktcpaddress): Use INADDR_NONE instead of -1.
	* configure.in: Check for INADDR_NONE.

2002-08-23  Per Cederqvist  <ceder@ceder.dyndns.org>

	Waste less bytes.
	* src/isc_socket.c (isc_getipnum): Use the entire hostname
	buffer.

2002-08-20  Per Cederqvist  <ceder@ceder.dyndns.org>

	Don't include <sys/time.h> when it isn't available.
	* configure.in: Check for <sys/time.h>.
	* src/isc_event.c: Fix include guards for <time.h> and <sys/time.h>.
	* src/isc_socket.c: Ditto.
	* src/isc_wait.c: Ditto.

2002-08-10  Per Cederqvist  <ceder@ceder.dyndns.org>

	Check for ar. (Bug 523).
	* configure.in: Check for ar.  Look in $PATH:/usr/ccs/bin, and
	stop with an error if no ar can be found.

2002-04-11  David Byers  <david.byers@swipnet.se>

	* configure.in: Added AC_PREREQ(2.53).

2001-09-23  Per Cederqvist  <ceder@moria>

	* Re-applied a couple of lyskomd modifications.

    1999-07-05  Per Cederqvist  <ceder@gratia>

	Delay problems with sessions that are deconnected until we can
	do a proper fix.
	* src/isc.h (ISC_DEFAULT_MAX_QUEUED_SIZE): Double to 600.

    1999-05-21  Per Cederqvist  <ceder@lysator.liu.se>

	Remove all gcov files in "make mostlyclean".
	* src/Makefile.am (MOSTLYCLEANFILES): Added "*.da", "*.bb",
	"*.gcov" and "*.bbg".

    1999-05-17  Per Cederqvist  <ceder@lysator.liu.se>

	Don't needlessly call time().
	* src/isc.h (IscSession): Comment out idlesince.
	* src/isc_event.c (isc_getnextevent): Don't waste time setting
	idlesince, which lyskomd doesn't use.

    1999-05-01  Per Cederqvist  <ceder@lysator.liu.se>

	The LysKOM server should not install isc thingies.
	* src/Makefile.am (noinst_LIBRARIES, noinst_HEADERS): Use instead
	of lib_LIBRARIES and include_HEADERS so that nothing from isc gets
	installed by lyskomd.
	* man/Makefile.am (noinst_MANS): Use noinst_MANS instead of
	man_MANS so that nothing from isc gets installed by lyskomd.

2001-09-23  Per Cederqvist  <ceder@lysator.liu.se>

	* Version 1.01 released.

	Release preparations.
	* configure.in: Release 1.01.
	* NEWS: Entry for 1.01 written.

	Port to Autoconf 2.52 and Automake 1.5.
	* RELEASING: Updated for automake 1.5.
	* configure.in: Adjusted to autoconf 2.52: AC_INIT Now takes
	package name and version as arguments.  Use AC_CONFIG_SRCDIR.  Use
	AC_HELP_STRING to format help strings.  Use CMOD_CHECK_CC_OPT
	instead of CMOD_COMPILER_CC_ACCEPTS.  Don't use -Wpointer-arith.
	Use AC_CONFIG_FILES.
	* acinclude.m4 (CMOD_COMPILER_CC_ACCEPTS): Removed.
	(CMOD_CHECK_CC_OPT): New macro.
	* README.DEVO: Updated for autoconf 2.52 and automake 1.5.

	Removed an unused attribute in IscSession.  Handle
	isc_getraddress() failures properly.
	* src/isc_tcp.c (isc_tcp_accept_fn): Don't set scb->mode.  Fail
	properly if isc_getraddress() fails.
	* src/isc.h (IscSession): Delete the "mode" attribute, which was
	only set in some cases and never used.
	* src/isc_session.c (isc_openfile): Don't set scb->mode.

1999-05-01  Per Cederqvist  <ceder@lysator.liu.se>

	* Version 1.00 released.

	Release preparations.
	* configure.in: Release 1.00.
	* TODO: Updated.
	* README: Updated.
	* NEWS: Entry for 1.00 written.

	"make maintainer-clean" shoudl remove everything that can be
	recreated.
	* Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in,
	aclocal.m4, configure, install-sh, mkinstalldirs, missing, INSTALL
	and COPYING.
	* src/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.
	* man/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.
	* doc/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.
	* demo/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.

	Removed support for isc_printf and isc_vprintf for license,
	performance and portability reasons.
	* configure.in: Removed --enable-isc-printf.
	* src/isc_stdout.c (isc_printf): Removed.
	(isc_vprintf): Removed.
	(send_scb): Removed.
	(send_putc): Removed.
	* src/isc.h (isc_printf): Removed.
	(isc_vprintf): Removed.
	* src/Makefile.am (libisc_a_LIBADD): Removed.
	(isc_stdout.o): No longer depend on ../config.status.
	* src/printf.c: Removed.

	Merged in all changes made to ISC in the lyskomd code from the
	isc_merge_1999_04_21 tag to the isc_merge_1999_05_01 tag.  Details
	follows:

    1999-04-28  Per Cederqvist  <ceder@lysator.liu.se>

	Added some output functions.
	* src/isc_stdout.c (isc_puts): New function.
	(isc_putul): New function.
	* src/isc.h (isc_puts): New function.
	(isc_putul): New function.

1999-04-24  Per Cederqvist  <ceder@lysator.liu.se>

	Make it easier to compile ISC out-of-the-repository.
	* README.DEVO: Mention bootstrap.sh.
	* bootstrap.sh: New file.

	Fix file inclusions.
	* src/isc_relocate.c: <time.h> and <stddef.h> must be included
	before "isc.h".
	* src/isc_alloc.c: <time.h> must be included before "isc.h".
	* src/isc_master.c: Likewise.
	* src/isc_output.c: Likewise.
	* src/isc_tcp.c: Likewise.
	* src/isc_udp.c: Likewise.

	Update at least one of the man pages.
	* man/isc_close.3x: Updated.

	Distribute ISC under LGPL.
	* README: Changed license to LGPL.
	* COPYING.LIB: New file, containing LGPL, the license this
	library is distributed under.
	* COPYING: No longer under version control.  This file is still
	included in the distribution, even though ISC is licensed under
	LGPL instead of GPL, for two reasons: LGPL allows you to change
	the license to GPL, and automake requires the file COPYING.
	* Makefile.am: Changed license to LGPL.
	* configure.in: Changed license to LGPL.
	* demo/Makefile.am: Changed license to LGPL.
	* man/Makefile.am: Changed license to LGPL.
	* man/TEMPLATE: Changed license to LGPL.
	* man/isc.3x: Changed license to LGPL.
	* man/isc_close.3x: Changed license to LGPL.
	* man/isc_createtcp.3x: Changed license to LGPL.
	* man/isc_destroy.3x: Changed license to LGPL.
	* man/isc_initialize.3x: Changed license to LGPL.
	* man/isc_listentcp.3x: Changed license to LGPL.
	* man/isc_openfd.3x: Changed license to LGPL.
	* man/isc_openfile.3x: Changed license to LGPL.
	* man/isc_opentcp.3x: Changed license to LGPL.
	* man/isc_shutdown.3x: Changed license to LGPL.
	* man/isc_unlisten.3x: Changed license to LGPL.
	* src/Makefile.am: Changed license to LGPL.
	* src/intern.h: Changed license to LGPL.
	* src/isc.h: Changed license to LGPL.
	* src/isc_abort.c: Changed license to LGPL.
	* src/isc_alloc.c: Changed license to LGPL.
	* src/isc_event.c: Changed license to LGPL.
	* src/isc_handler.c: Changed license to LGPL.
	* src/isc_master.c: Changed license to LGPL.
	* src/isc_message.c: Changed license to LGPL.
	* src/isc_output.c: Changed license to LGPL.
	* src/isc_queue.c: Changed license to LGPL.
	* src/isc_relocate.c: Changed license to LGPL.
	* src/isc_session.c: Changed license to LGPL.
	* src/isc_socket.c: Changed license to LGPL.
	* src/isc_stdout.c: Changed license to LGPL.
	* src/isc_tcp.c: Changed license to LGPL.
	* src/isc_udp.c: Changed license to LGPL.
	* src/isc_wait.c: Changed license to LGPL.
	* src/unused.h: Changed license to LGPL.

1999-04-22  Per Cederqvist  <ceder@lysator.liu.se>

	Distribute administrative files.
	* Makefile.am (EXTRA_DIST): Added README.DEVO and RELEASING.

	Merged in all changes made to ISC in the lyskomd code from ISC
	0.99 to the isc_merge_1999_04_21 tag.  Details follows:

    1999-04-17  Per Cederqvist  <ceder@lysator.liu.se>

	Added full support for fd relocation.
	* src/isc_relocate.c (isc_relocate_fd): Implemented for real.
	* src/isc_event.c (isc_getnextevent): Return
	ISC_EVENT_LOGIN_UNRELOCATED instead of ISC_EVENT_LOGIN if a
	file descriptor relocation failed.
	* src/isc.h (IscEventType): New event: ISC_EVENT_LOGIN_UNRELOCATED.

    1999-04-17  Per Cederqvist  <ceder@gratia>

	Added limited support for fd relocation.  Error handling still
	needed.
	* src/isc_udp.c (isc_createudp): Relocate the fd.
	* src/isc_tcp.c (isc_tcp_accept_fn): isc_createtcp will close the
	file descriptor if it fails, so don't re-close it here.
	isc_createtcp will also set the fd attribute of the session; don't
	set it again.
	(isc_createtcp): Relocate the fd.  Be careful to always close it
	if an error occurs.
	* src/isc_relocate.c (isc_relocate_fd): New file and function.
	This is still a dummy implementation.
	* src/isc_master.c (isc_initialize): Expect master config version
	1006 and session config 1002.  Handle fd_relocate.
	* src/isc.h (IscSessionConfig): Added fd_relocate.
	* src/intern.h (isc_relocate_fd): New function.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_relocate.c.

    1999-04-16  Per Cederqvist  <ceder@gratia>

	Simplify the use of IscHandlerList.  (This needs more
	documentation.)
	* src/isc.h (IscSession): Removed the "IscHandlerCache fun"
	member.
	(IscHandlerList): Renamed the "old" member to "current".
	(ISC_HCALLFUN1): Adapted to IscHandlerList changes.
	(ISC_HCALLFUN2): Adapted to IscHandlerList changes.
	(ISC_HCALLFUN3): Adapted to IscHandlerList changes.
	* src/intern.h (ISC_SCALLFUN1): Use ISC_HCALLFUN1 to simplify
	code.  Adapted to IscHandlerList changes.
	(ISC_SCALLFUN2): Analogous.
	(ISC_SCALLFUN3): Analogous.
	* src/isc_handler.c (isc_pushhandler): Modified so that the
 	members of the member "current" of IscHandlerList objects points
 	to the IscHandler object where the callbacks that should be used
 	exist.  Once that changes was done, there is no need for the
 	"scb->fun" member, so it was removed.
	(isc_pophandler): Adjusted accordingly.
	* src/isc_session.c (isc_create): Removed the code that
	initialized scb->fun.
	(isc_destroy): Use scb->handlers->current instead of scb->fun.
	* src/isc_event.c (isc_getnextevent): Use scb->handlers->current
	instead of scb->fun.

    1999-04-15  Per Cederqvist  <ceder@lysator.liu.se>

	Allow disabled sessions to emit data.  It is input from the
	sessions that is disabled.
	* src/isc_stdout.c (isc_putc): Allow output to sessions that are
	in state ISC_STATE_DISABLED.
	(isc_write): Likewise.
	* src/isc_output.c (isc_flush): Flush pending output even
	when the session is in ISC_STATE_DISABLED.
	(isc_oflush): Likewise.
	* src/isc_event.c (isc_getnextevent): Flush pending output even
	when the session is in ISC_STATE_DISABLED.

    1999-04-11  Per Cederqvist  <ceder@gratia>

	Rebuild more often.
	* src/Makefile.am (isc_stdout.o): Depend on ../config.status.

    1999-04-05  Per Cederqvist  <ceder@gratia>

	Get rid of useless compiler warnings.
	* configure.in: Don't use -Wtraditional.

    1999-02-05  Per Cederqvist  <ceder@gratia>

	Get rid of a compiler warning.
	* src/isc_alloc.c (ISC_MAGIC_ALLOC): This is an unsigned constant.
	(ISC_MAGIC_FREE): Likewise.

    1999-01-18  David Byers  <davby@ida.liu.se>

	* src/.cvsignore: Added .bbg, .bb, .da and .gcov files.

    1999-01-15  David Byers  <davby@ida.liu.se>

	* configure.in: Added --with-checker, --with-gcov and
	--with-optimization.

    1998-10-06  Per Cederqvist  <ceder@gratia>

	Port to glibc2.
	* src/isc_session.c: Include <time.h>.

    1998-07-09  Per Cederqvist  <ceder@lysator.liu.se>

	--enable-isc-printf was broken.
	* src/isc_wait.c: Include <stdarg.h>.

1999-04-21  Per Cederqvist  <ceder@lysator.liu.se>
	
	* demo/Makefile.am: Insert copyright header.

	Clean up the configure script.
	* configure.in (AC_PROG_MAKE_SET, AC_PROG_INSTALL): Removed.  This
	is automatically done by AM_INIT_AUTOMAKE.
	(AM_PROG_CC_STDC):  Use it instead of AM_C_PROTOTYPES.

1998-07-06  Per Cederqvist  <ceder@lysator.liu.se>

	* Version 0.99 released.

	Release preparations.
	* NEWS: Updated.
	* README: Updated.
	* RELEASING: New file.
	* README.DEVO: New file.

	Include isc_wait.o in the built library.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_wait.c.

	Improved portability.
	* src/isc_wait.c: Check TIME_WITH_SYS_TIME.
	* src/isc_socket.c: Check TIME_WITH_SYS_TIME.
	* src/isc_event.c: Check TIME_WITH_SYS_TIME.

	Ported to Solaris 2.7 Beta/gcc 2.8.1.
	* src/isc_udp.c: Include <unistd.h>.
	(isc_udp_read_fn): Now static.  Flag unused arguments.
	(isc_udp_destroy_fn): Likewise.
	(isc_udp_write_fn): Now static.
	(isc_mkudpaddress): Likewise.  Don't pass potentially negative
	characters to isdigit.
	* src/isc_tcp.c: Include <unistd.h>.
	(isc_tcp_accept_fn): Now static.  Flag unused arguments.
	(isc_tcp_destroy_fn): Likewise.
	(isc_mktcpaddress): Now static.  Don't pass potentially negative
	characters to isdigit.
	* src/isc_session.c: Include <unistd.h>.
	(isc_default_read_fn): Flag unused arguments.
	(isc_default_write_fn): Flag unused arguments.
	(isc_default_close_fn): Flag unused arguments.
	(isc_file_destroy_fn): Flag unused arguments.
	* src/isc_alloc.c (isc_realloc): Code simplified.
	(isc_free): Code simplified.
	* src/unused.h: New file (taken from cmod).

	Added automake/autoconf support.
	* AUTHORS: New file.
	* Makefile.am: New file.
	* NEWS: New file.
	* acinclude.m4: New file.
	* configure.in: New file.
	* demo/Makefile.am: New file.
	* demo/README: New file.
	* doc/Makefile.am: New file.
	* man/Makefile.am: New file.
	* src/Makefile.am: New file.
	* man/Makefile: This file is now generated by configure.  Don't
	store it under version control.
	* src/Makefile: Likewise.
	* demo/Makefile: Likewise.
	* build/stddef.h: File removed.
	* build/gmkdep: File removed.
	
1998-06-21  Per Cederqvist  <ceder@lysator.liu.se>

	Incorporated all relevant improvements made to ISC in
	the committed sources of lyskomd as of 1998-06-21.  Edited details
	follows.

	Include file improvements.
	* src/isc_event.c: Include <sys/select.h>, <unistd.h> and
	<string.h> for increased portability.
	* src/printf.c: Check HAVE_STRING_H and HAVE_STDLIB_H before
	including those files.  Don't forward-declare memchr.

	Ignore attempts to look up the NULL host name.
	* src/isc_socket.c (isc_gethostname): Return NULL if given a NULL
	IscAddress.

1998-05-07  Per Cederqvist  <ceder@lysator.liu.se>

	Incorporated all relevant improvements made to ISC in
	kom++-0.7.post.2.  Edited details follows.
	
	Avoid including more files than necessary.
	* src/isc.h: Don't include any include files.
	* src/isc_abort.c: Don't declare system functions.  Fixed include
	statements.
	* src/isc_alloc.c: Likewise.
	* src/isc_event.c: Likewise.
	* src/isc_message.c: Likewise.
	* src/isc_output.c: Likewise.
	* src/isc_session.c: Likewise.
	* src/isc_socket.c: Likewise.
	* src/isc_stdout.c: Likewise.
        * src/isc_tcp.c: Likewise.
	* src/isc_udp.c: Likewise.
	* src/isc_handler.c: Fixed include statements.
	* src/isc_master: Likewise.
	* src/isc_queue.c: Likewise.

	Added the ability to wait until a connection attempt (initiated by
	this process) either fails or succeeds.
	* src/isc.h: (isc_wait): Prototype added.
	* src/isc_wait.c: New file, containing isc_wait.

	Only support isc_printf and isc_vprintf if ISC_PRINTF_SUPPORT if
	defined.  These functions may lead to bad use of the buffers.
	* src/isc.h: (isc_vprintf, isc_printf): Only declare if
	ISC_PRINTF_SUPPORT is defined.  Fail to compile if
	ISC_PRINTF_SUPPORT is defined but HAVE_STDARG_H isn't.
 	* src/isc_stdout.c (send_scb, send_putc, isc_vprintf, isc_printf):
	Only defined if ISC_PRINTF_SUPPORT is defined.

	Make sure that isc_getnextevent only returns a single
	ISC_EVENT_LOGOUT message when a session logs out.
	* src/isc.h: (IscSessionState): New state: ISC_STATE_CLOSING2.
	* src/isc_event.c (isc_getnextevent): There is now only one
	ISC_EVENT_LOGOUT message per session.  Set the state to
	ISC_STATE_CLOSING2 when generating an ISC_EVENT_LOGOUT message.
 	* src/isc_output.c (isc_flush): Treat ISC_STATE_CLOSING2 as
	ISC_STATE_CLOSING.
	(isc_oflush): Likewise.
	
	Portability fixes.
	* src/isc_alloc.c (isc_mallocfn, isc_reallocfn, isc_freefn):
	Removed lame casts.

	Make sure that isc_malloc returns a block that is aligned on a
	"long" boundary.
 	* src/isc_alloc.c (isc_malloc, isc_free, isc_realloc): Portablilty
	fix: Align data on a "long" boundary, not only an "int" boundary.

	Typo fix.
	* src/isc_event.c (isc_getnextevent): Fixed a spelling error in a
	comment.
	
	Make sure that errors are reported to the proper session.
  	* src/isc_event.c (isc_getnextevent): event->session was sometimes
	set erronously if an error occured in select() or if a timeout
	occured.

	Use O_NONBLOCK instead of the now obsolete name FNDELAY.
	* src/isc_session.c (isc_openfd): Use O_NONBLOCK instead of FNDELAY.
	* src/isc_tcp.c (isc_createtcp): Use O_NONBLOCK instead of FNDELAY.
	* src/isc_udp.c (isc_createudp): Use O_NONBLOCK instead of FNDELAY.

	Avoid warnings by adding a dubious cast.
 	* src/isc_socket.c (isc_gethostname): Cast argument to
	gethostbyaddr to a char* to avoid a warning.
	
	Portability fix: Renamed _printf to UCB_printf.
	* src/isc_stdout.c (isc_printf, isc_vprintf): Call UCB_printf
	instead of _printf.
	* src/printf.c (UCB_printf): Renamed _printf to UCB_printf (to avoid
	conflicts on HPUX).

	Don't use obsolete setsockopt interfaces.
	* src/isc_tcp.c (isc_createtcp): Fixed calls to setsockopt with
	SO_LINGER and SO_REUSEADDR arguments.  The old-style style
	previously used should no longer be necessary on modern operating
	systems, and in fact it no longer works everywere.  
	* src/isc_udp.c (isc_createudp): Fixed calls to setsockopt with
	SO_LINGER and SO_REUSEADDR arguments.  The old-style style
	previously used should no longer be necessary on modern operating
	systems, and in fact it no longer works everywere.  

	If an attempt to bind failed with EADDRINUSE all the retries
	would automatically fail.
	* src/isc_tcp.c (isc_listentcp): Clear errno on each loop in the
	retry loop.

	Include the licensing conditions used by this package.
	* COPYING: New file.

1998-04-03  Per Cederqvist  <ceder@signum.se>

	Port to glibc 2, where errno is a macro.
	* isc.h (IscSession::isc_errno): New name for former struct member
	errno.  All users updated.

1996-07-24  Per Cederqvist  <ceder@lysator.liu.se>

	ISC_EVENT_LOGIN events now return the listening session in the
	event, so that it can be used to easily determine which kind of
	connection that was made.  66.7 % of the code was contributed by
	<linus@lysator.liu.se>.
	* src/isc.h (IscEvent): New field: listen_session.
	* src/isc_event.c (isc_getnextevent): Fill in listen_session when
	an ISC_EVENT_LOGIN event is created.  Set it to NULL in all other
	cases.

1996-07-23  Per Cederqvist  <ceder@lysator.liu.se>

	* Imported ISC version 0.98.3.
