2000-02-20  Niels Mller  <nisse@cuckoo.localdomain>

	* src/io_commands.c (do_listen_connection): Raise EXC_IO_LISTEN. 

	* src/tcpforward.c (make_tcpip_forward_request_exc): New function. 
	(do_tcpip_forward_request): Use a better exception handler.

	* src/read_data.c (make_read_data): Deleted assert checking
	send_max_packet.

	* src/zlib.c (do_free_zstream): Changed message from verbose() to
	debug():

	* src/testsuite/Makefile.am (TS_MORE_SH): Added tcpip-remote-test. 

	* src/testsuite/functions.sh: Pass --enable-core to lshd.
	Use set -e and set +e.

2000-02-17  Niels Mller  <nisse@cuckoo.localdomain>

	* README: Updated disclaimer to be a little less pessimistic.  

	* doc/TODO, doc/TASKLIST: Updated.

	* doc/lsh.texinfo (Top): Added GNU reference.

	* Makefile.am.in (EXTRA_DIST): Added ANNOUNCE file.

	* configure.in: Bumped version to 0.9.

	* src/zlib.c (do_free_zstream): Only output message about problems
	when freeing the z stream when in debug mode.

2000-02-17  Niels Mller  <nisse@lysator.liu.se>

	* src/zlib.c (do_zlib): Z_BUF_ERROR is normal.

2000-02-15  Niels Mller  <nisse@cuckoo.localdomain>

	* src/unpad.c (do_unpad): Use SSH_MAX_PACKET_FUZZ, as inflating
	happens after unpadding.

	* src/connection.c (handle_connection): Check packet length.

	* configure.in: Bumped version to 0.2.9.

	* src/channel.c (make_channel_read_data): Take packet overhead
	into consideration.
	(make_channel_read_stderr): D:o.

	* src/read_data.c (do_read_data_query): Subtract some overhead
	from the max packet size.
	(make_read_data): Added overhead argument.

2000-02-09  Niels Mller  <nisse@cuckoo.localdomain>

	* acinclude.m4: New file.

	* src/io.c (do_listen_callback): Use socklen_t.
	(do_connect_callback): Use socklen_t.

	* doc/lsh.texinfo: Wrote secions on invoking lsh and lshd. 

2000-02-07  Niels Mller  <nisse@cuckoo.localdomain>

	* src/tcpforward_commands.c (forward_local_port): Use
	connection_remember. 

	* src/io.c (io_iter): Use a double loop around the close logic, to
	handle close-callbacks that close other files.
	Changed shorter debug() messages to use trace() instead.

	* src/connection_commands.c (connection_remember): New command. 

2000-02-06  Niels Mller  <nisse@cuckoo.localdomain>

	* configure.in: Bumped version to 0.2.8.

	* src/tcpforward.c: Adapted to new CHANNEL_REQUEST conventions.

	* src/server_session.c: Adapted to new CHANNEL_REQUEST
	conventions.  

	* src/proxy_session.c: Updated to Bazsi's latest version.

	* src/proxy.c: Updated to Bazsi's latest version.

	* src/lsh_proxy.c: Updated to Bazsi's latest version.

	* src/debug.c (packet_debug): Changed prefix atribute to type
	string.  

	* src/connection_commands.c (make_handshake_info): Added
	debug_comment argument.

	* src/connection.c (make_ssh_connection): New argument
	debug_comment. 

	* src/client_pty.c (do_pty_continuation): Removed old code for the
	(impossible) case x == NULL.

	* src/client.c: Adapted to new CHANNEL_REQUEST conventions. 

	* src/channel.h (ssh_channel): Added active_requests queue
	(Bazsi). 
	(global_request_callback): Deleted class (Bazsi).
	(global_request): Added type, continuation and exception_hnalder
	arguments do the GLOBAL_REQUEST method (Bazsi).
	(channel_request): Likewise.

	* src/channel.c (make_request_status): Renamed from
	make_global_request_status (Bazsi).
	(global_request_continuation): New class (Bazsi).
	(send_global_request_responses): New function (Bazsi).
	(do_global_request_response): Use send_global_request_responses(). 
	(global_request_exception_handler): New class (Bazsi).
	(make_global_request_exception_handler): New function (Bazsi).
	(do_global_request): Pass a continuation and an exception handler
	to the GLOBAL_REQUEST-method.
	(send_channel_request_responses): New function (Bazsi).
	(channel_request_continuation): New class (Bazsi).
	(channel_request_continuation): New class (Bazsi).
	(do_channel_request): Pass a continuation and an exception to the
	CHANNEL_REQUEST-method. 
	(init_channel): Initialize active_requests.

	* src/Makefile.am.in (liblsh_a_SOURCES): AAdded proxy_channel.c
	and proxy_tcpforward.c.

	* src/tcpforward_commands.c (new_tcpip_channel): Use
	format_channel_open(). 

	* src/proxy_session.c (do_proxy_open_channel): Use
	format_channel_open(). 

	* src/lsh-authorize: Tried to remove bash-isms. 

	* src/client.c (new_session): Use format_channel_open.

	* src/channel_commands.h (channel_open_command): Added
	local_channel_number argument to NEW_CHANNEL. 

	* src/channel_commands.c (do_channel_open_command): Call
	alloc_channel() and register_channel(), rather than delegating it
	to the NEW_CHANNEL method. Set the channel's exception handler
	properly. 

	* src/channel.c (use_channel): New function to take a channel in
	use. 
	(register_channel): New argument take_into_use.
	(lookup_channel_reserved): New function that returns channels that
	are marked as reserved, but not in use.
	(do_channel_open_continue): Call register_channel with
	take_in_use=1. 
	(do_channel_open_confirm): Use lookup_channel_reserved(). Call
	use_channel(). 
	(do_channel_open_failure): Use lookup_channel_reserved().
	(format_channel_open): Renamed from prepare_channel_open. Don't
	call alloc_channel() or register_channel().

	* src/channel.h (CHANNEL_FREE, CHANNEL_RESERVED, CHANNEL_IN_USE):
	New three-level classification for the in_use table.

	* src/channel.c (exc_finish_channel_handler): Use pointer to
	connection rather than to its channel table. 

2000-02-05  Niels Mller  <nisse@cuckoo.localdomain>

	* src/client.c (do_exit_status, do_exit_signal): Use the
	connection's exception handler for protocol errors.

	* src/channel.c (do_exc_finish_channel_handler): Raise
	EXC_FINISH_READ using the connection's exception handler.
	(make_exc_finish_channel_handler): Take a connection, rather than
	a channel_table, as argument.

	* src/io.c, src/io.h: Reorganized, and deleted all subclasses of
	lsh_fd.  
	(io_connect): Take a continuation as argument.
	(io_listen): Take an io_callback (typically of type
	io_listen_callback) as argument.
	(make_listen_callback): New function.

	* src/io_commands.c: Replaced io_fd with lsh_fd.

	* src/io_commands.h: Moved listen_value to io.h

	* src/tcpforward_commands.c (forward_local_port,
	tcpip_forward_hook): Catch EXC_CHANNEL_OPEN. 

	* src/proxy.c, src/server_session.c: Replaced io_fd with lsh_fd. 

	* src/read_data.c (make_read_data): Changed return type to
	io_callback. 

	* src/lshd.c: Replaced io_fd with lsh_fd.
	(main): Use make_report_exception_info().

	* src/lsh_types.h (STRSIGNAL): Use _sys_siglist on SGI.

	* src/lsh.h: Added forward declaration of listen_value.

	* src/exception.c (make_report_exception_info): New function. 

	* src/connection_commands.c: Replaced io_fd with lsh_fd.

	* src/command.h (STATIC_CATCH_REPORT): New macro.

	* src/command.c: New command catch_report.

	* src/client.c: Replaced io_fd with lsh_fd.

	* src/channel.c (do_channel_open_failure): Improved exception
	message. 
	(make_channel_read_data, make_channel_read_stderr): Changed return
	type to io_callback. 

2000-02-03  Niels Mller  <nisse@lysator.liu.se>

	* src/client.c (make_accept_service_handler): Use UINT32 for the
	service name.

2000-02-02  Niels Mller  <nisse@lysator.liu.se>

	* configure.in: Added check for inline.
	Bumped version to 0.2.7.

2000-02-02  Niels Mller  <nisse@lysator.liu.se>

	* src/testsuite/functions.sh, src/testsuite/lsh-1-test,
	src/testsuite/lsh-2-test, src/testsuite/lsh-3-test,
	src/testsuite/tcpip-local-test: Fixed bash-isms. 

	* src/argp/argp-fmtstream.c: Define the functions that are defined
	as extern inline in argp_fmtstream.h. Needed for compilers that
	don't have inline.

	* src/argp/argp-help.c (hol_entry_help): Don't use non-constant
	initializers (which is a GNUC extension). 

	* src/argp/argp-parse.c: Declare alloca properly.

	* src/tty.c, src/tty.h: Signedness fixes.

	* src/parse.c, src/parse.h: Signedness fixes.

	* src/keyexchange.c (kex_make_key): Signedness fix.

	* src/io_commands.c (do_connect_continue): Added a FIXME. 

	* src/client.c: Signedness fixes.

	* src/Makefile.am.in (liblsh_a_SOURCES): Removed password.c.

	* configure.in: Added check for inline.
	Bumped version to 0.2.7.

2000-02-01  Niels Mller  <nisse@cuckoo.localdomain>

	* configure.in: Fixed messages for --without-* flags.

2000-01-27  Niels Mller  <nisse@cuckoo.localdomain>

	* doc/lsh.texinfo: Added some more sections.

	* src/channel.c (channel_transmit_data,
	channel_transmit_extended): Shrink send_window_size
	(noted by Markus).

2000-01-26  Niels Mller  <nisse@cuckoo.localdomain>

	* src/testsuite/Makefile.am (TS_MORE_SH): Added tcpip-local-test.
	(EXTRA_DIST): Added new files.
	(check-some): Don't use $^, to avoid the VPATH feature.

	* src/tcpforward_commands.c (DIRECT_TCPIP_HANDLER): New define. 
	(INSTALL_DIRECT_TCPIP): New define.

	* src/tcpforward.c (lookup_forward): Use CAST_SUBTYPE.
	(do_tcpip_channel_die): Call close_fd() rather than kill_fd().
	(tcpip_channel_start_io): Don't call channel_start_receive().
	(make_exc_tcpip_connect_handler): New exception handler, which
	raises EXC_CHANNEL_OPEN on connect and dns errors.
	(do_open_forwarded_tcpip_continuation): Require that channel !=
	NULL.
	(make_open_forwarded_tcpip_continuation): Removed
	exception_handler argument.
	(do_channel_open_direct_tcpip): Use a better exception handler.
	(do_channel_open_forwarded_tcpip): -"-

	* src/lsh.c (do_lsh_default_handler): Handle EXC_CHANNEL_OPEN.

	* src/channel.c (make_exc_channel_open_handler): Added missing
	context argument.
	(do_window_adjust): Check for CHANNEL_SENT_EOF, so that we don't
	attempt to send data after EOF.

	* configure.in: Bumped version to 0.2.6.

	* src/testsuite/Makefile.am: Don't use automake's builtin
	testsuite-support. 

	* src/io.c (do_consuming_read): Don't die on EPIPE.

2000-01-22  Niels Mller  <nisse@cuckoo.localdomain>

	* src/channel.c (exc_finish_channel_handler): New attribute dead,
	to keep track of channels that have already been deallocated.
	Reported by Markus.

	* src/channel.c: Deleted some old commented-out definitions.

	* src/scm/gaba.scm (type->mark): Handle space-variables with an
	optional third argument just like pointer-variables with three
	arguments. I.e. use the third arg as the name of a field holding
	the current size of an array. Reported by Bazsi. For now, doesn't
	try to free array elements (which is ok as long as the arrays are
	used for objects subject to gc).

	* configure.in: Bumped version to 0.2.5.

2000-01-20  Niels Mller  <nisse@cuckoo.localdomain>

	* configure.in: Prefer guile if both guile and scsh are installed. 

	* src/channel.c (dealloc_channel): Fixed verbose message.

	* configure.in: Bumped version to 0.2.4.

2000-01-18  Niels Mller  <nisse@cuckoo.localdomain>

	* src/zlib.c (RATE_MAX, RATE_MIN): Use rates between 1/16 and 16.
	(estimate_update): Fixed estimate. Also ignore small packets.
	(do_zlib): Fixed stop condition (noted by Markus Friedl).

2000-01-13  Niels Mller  <nisse@cuckoo.localdomain>

	* Makefile.am.in (EXTRA_DIST): Added distribution-key.gpg.

	* configure.in: Bumped version to 0.2.3.

2000-01-12  Niels Mller  <nisse@cuckoo.localdomain>

	* src/tcpforward.c (do_channel_open_direct_tcpip): Added type
	argument (Bazsi).
	(do_channel_open_forwarded_tcpip): D:o.

	* src/server_userauth.c (do_handle_userauth): Call connection_lock().
	(do_userauth_continuation): Call connection_unlock().
	(do_exc_userauth_handler): D:o.
	(make_exc_userauth_handler): Made non-static (Bazsi).
	(do_userauth): Don't call make_once_continuation().

	* src/server_session.c (do_open_session): Added type argument
	(Bazsi). 

	* src/lshd.c: Added options --password, --no-password, --publickey
	and --no-publickey.

	* src/io.c (io_iter): Improved comment on POLLHUP behaviour.

	* src/connection.h (ssh_connection): Added busy attribute.

	* src/connection.c (handle_connection): Disconnect if connections
	is busy.
	(connection_lock): New function.
	(connection_unlock): New function.

	* src/channel.h (CHANNEL_OPEN): Added type argument (Bazsi).

	* src/channel.c: Change verbose messages to display remote channel
	numbers, as well local numbers where they are easily available.

	* src/lsh_proxy.c, src/proxy.c, src/proxy.h, src/proxy_session.c,
	src/proxy_session.h, src/proxy_userauth.c, src/proxy_userauth.h:
	Applied Bazsi's patches.

2000-01-09  Niels Mller  <nisse@cuckoo.localdomain>

	* src/unpad.c (do_unpad): Check payload length.

	* src/connection.c (make_ssh_connection): Use
	SSH_MAX_PACKET_FUZZ. 

	* src/ssh.h (SSH_MAX_PACKET_FUZZ): New constant.

	* src/read_packet.c (do_read_packet): Added comment on the packet
	size limit.

	* src/lsh_types.h: Include alloca.h, where appropriate.

	* src/io.c (io_set_nonblocking): Leave other flags unmodified.
	(io_set_close_on_exec): The same, even though there are currently
	no other flag bits specified.

	* src/zlib.c (make_zlib_instance): Bug fix: Initialize instance
	variables max, rate and f.
	(do_zlib): Fixed call to string_buffer_final.

	* src/keyexchange.c (do_handle_kexinit): Added verbose messages
	listing selected algorithms.

	* src/zlib.c (make_zlib_instance): Initialize deflate/inflate
	pointer properly. (Reported by Keresztg).

2000-01-08  Niels Mller  <nisse@cuckoo.localdomain>

	* src/io.c (io_set_nonblocking): Use fcntl(F_GETFL) to leave flags
	other than the O_NONBLOCK flag unmodified.

2000-01-06  Niels Mller  <nisse@cuckoo.localdomain>

	* src/io.c (MY_POLLIN): poll kludge, use both POLLIN and
	POLLRDNORM. 

	* configure.in (LIBOBJS): Use correct path to the argp object
	files.

	* README: Document dependency on GU make. Recommend running
	configure with bash. Say that guile in the build environment is
	suppported.

	* src/channel.c (alloc_channel): Added verbose messages.
	(dealloc_channel): d:o.
	(register_channel): d:o.
	(do_channel_eof): d:o.
	(do_channel_close): d:o.
	(channel_close): d:o.
	(channel_eof): d:o.

	* doc/lsh.texinfo: Updated nodes and menus.

	* doc/Makefile.am.in (info_TEXINFOS): Added lsh-texinfo.

	* Makefile.am.in (EXTRA_DIST): Added ChangeLog.1.

	* configure.in: Bumped version to 0.2.1.

1999-12-31  Niels Mller  <nisse@cuckoo.localdomain>

	* src/daemon.c: Include sys/time.h.

	* src/command.c (progn_command): Let (progn ()), i.e. an empty
	list of commands, result in the identity command.

	* configure.in: Deleted old versions of the utmp tests.
	Added test for socklen_t.
	List the individual argp object files in LIBOBJS.

	* src/lsh.c (do_lsh_default_handler): Fail on EXC_CHANNEL_REQUEST
	exceptions. 
	(main_argp_parser): Ignore EXC_CHANNEL_REQUEST exceptions when
	requesting a pty. 

	* src/command.c (do_catch_handler): Let !handler mean that the
	exception is to be ignored.

	* src/lshd.c: Added options --pty-support and --no-pty-support. 

	* configure.in: Bumped version to 000.2, for the obvious reason. 

1999-12-29  Niels Mller  <nisse@cuckoo.localdomain>

	* src/spki.h: #include <time.h>, for definition of time_t.

Sat Dec 25 18:18:45 1999  Niels Mller  <nisse@lysator.liu.se>

	* configure.in: Quote fallback definition of M4.

	* acconfig.h: Use more standard #undef's for VERSION and PACKAGE. 

	* src/process_atoms (atom2define): Bug fix.

	* src/argp/argp-help.c (strndup): Bug fix.

	* src/process_atoms (atom2define): Workaround for seds that can't
	handle input without a final newline.

1999-12-25  Niels Mller  <nisse@cuckoo.localdomain>

	* src/argp/argp.h: Workaround for __restrict.

	* src/testsuite/keygen-test: Use $srcdir to find input file.

	* src/testsuite/keygen-test: New test script.

	* src/spki_commands.c (spki_read_hostkeys, spki_read_userkeys):
	Use sexp2keypair. Also deleted some old dead code.
	
	* src/spki.c (do_spki_sexp2signer): New function.
	(spki_sexp2signer_command): New command. 
	(spki_parse_private_key): Renamed to spki_sexp2keypair. 

	* src/lsh_writekey.c (make_writekey): Use sexp2signer, and pass
	algorithms alist as argument.

	* configure.in: Bumped version to 0.1.20.

	* src/werror.h: Include stdarg.h (moved from werror.c).

	* src/spki.c (do_spki_lookup): Fixed call to spki_make_verifier(). 

