2001-09-04  Niels Möller  <nisse@cuckoo.hack.org>

	* Released lsh-1.3.4.

2001-09-04  Niels Möller  <nisse@ehand.com>

	* doc/lsh.texinfo: Updated for 1.3.4. In particular, added doc on
	X forwarding, -x, -B, and --log-file options, and encrypted
	private keys. Deleted the paragraph about the obsolete --userauth
	option. 

	* src/client.c (client_command_session): Ask for a pty also for
	(supposedly non-interactive) exec sessions.

2001-09-03  Niels Möller  <nisse@cuckoo.hack.org>

	* src/xauth.c (xauth_process): New function, using XauReadAuth.
	(xauth_lookup): Use xauth_process instead of XauGetAuthByAddr.

	* src/client_x11.c (make_client_x11_display): Initialize the fake
	cookie properly.

	* src/xauth.h: New file with the xauth_lookup prototype.

	* src/xauth.c (xauth_lookup): Deleted address_length argument. Bug
	fixes. 

2001-09-03  Niels Möller  <nisse@ehand.com>

	* src/xauth.c: Rewrote to use libXau.

	* src/client_x11.c (client_x11_auth_info): Deleted class; merged
	with client_x11_display.
	(parse_display): Take a client_x11_display as argument. Do xauth lookup.
	(get_client_x11_auth_info): Deleted function.

	* src/client.c (DEFINE_CALLBACK): Declare self argument as UNUSED.

	* src/Makefile.am.in (liblsh_a_SOURCES): Added xauth.c.

	* configure.in: Check for X, libXau and XauGetAuthByAddr.

	* src/client_x11.c (client_x11_channel): New fields auth_length
	and name_length, for recording the decoded lengths in the setup
	message.  
	(X11_SETUP_MAX_LENGTH): Defined as 48, which is the size of a message
	with a 16 octet cookie.
	Updated description of the X11 connection setup message.
	(LE_READ_UINT16, LE_WRITE_UINT16): New macros. 
	(do_client_channel_x11_receive): Bug fixes, seems to work now.

	* src/suspend.h: Declare suspend_callback as extern. Noticed by
	Jean-Pierre. 

2001-09-03  Niels Möller  <nisse@cuckoo.hack.org>

	* src/client_x11.c: Added comment about observed X11 packets (that
	seem contrary to the documentation in RFC 1013.
	(do_client_channel_x11_receive): Print received cookie, for
	debugging purposes.
	(make_forward_x11): Print generated fake cookie, for debugging
	purposes. 
	(parse_display): Fixed ssh_format invocation creating the local
	socket name.
	(do_channel_open_x11): Fixed invocation of verbose().
	(do_format_request_x11_forward): Get the connection from the
	channel, now that the connection pointer is available there.
	(do_format_request_x11_forward): Hex encode the cookie. That's
	ugly, but needed for compatibility.

	* src/client_pty.c: Dropped lsh:-prefix on messages, it's added
	automatically in werror.c.

	* src/client.c (client_maybe_x11): Write a message if DISPLAY not
	set or it's value doesn't make sense.

2001-09-02  Niels Möller  <nisse@cuckoo.hack.org>

	* src/client.c (make_client_session): Added escape sequences q, v
	and d, for controlling the verbosity flags.
	(client_argp_parser): Look at used_x11 after setting up the shell
	session. 

	* src/lshg.c (make_options): Pass NULL random to
	init_client_options. 

	* src/client_x11.c (make_client_x11_display): Free the fake cookie
	if we fail.
	(make_forward_x11): Make up a random cookie.

	* src/client.c (init_client_options): New argument RANDOM.
	(client_maybe_x11): Pass on RANDOM to make_forward_x11.

	* src/client.h (client_options): Moved RANDOM attribute here, from
	lsh_options. 

2001-09-01  Niels Möller  <nisse@cuckoo.hack.org>

	* src/client.c: Moved -x option to lsh.c.

	* src/channel.c (register_channel): Deleted connection argument.

	* src/channel.h (ssh_channel): Replaced the write pointer with a
	pointer to the connection.
	(channel_request): Deleted connection argument.
	* src/channel.h (CHANNEL_REQUEST): Likewise.

	* src/resource.c (init_resource): Renamed from resource_init, for
	consistency. Updated all callers.

	* src/lsh.h (struct client_x11_display): Forward declare.

	* src/client_x11.h: Deleted, prototypes moved to client.h.

	* src/client.h (client_options): New attributes with_x11 and
	used_x11.

	* src/client.c (client_maybe_pty): New function.
	(client_maybe_x11): New function.
	(client_shell_session): Use client_maybe_pty and client_maybe_x11.
	(client_command_session): Use client_maybe_x11.
	(client_argp_parser): --x11-forward should be a modifier option,
	not an action.

	* src/channel.h (channel_table): Added attribute x11_display.

	* src/Makefile.am.in (liblsh_a_SOURCES): Added client_x11.c.

2001-08-31  Niels Möller  <nisse@ehand.com>

	* src/client.c (client_argp_parser): Implemented -X flag.

2001-08-30  Niels Möller  <nisse@cuckoo.hack.org>

	* src/xauth.c: New file.

	* src/client_x11.c: Work in progress.
	(client_x11_auth_info): New class.

	* src/channel_forward.c (init_channel_forward): New function,
	extracted from make_channel_forward.

2001-08-30  Niels Möller  <nisse@ehand.com>

	* configure.in: Bumped version to 1.3.4.

2001-08-29  Niels Möller  <nisse@cuckoo.hack.org>

	* Released lsh-1.3.3.

2001-08-29  Niels Möller  <nisse@ehand.com>

	* src/sftp/testsuite: Fixed scripts to work outside of $srcdir.

	* src/sftp/buffer.c, src/sftp/client.c: Include string.h.

	* src/algorithms.c (all_symmetric_algorithms): Use aes256-cbc as
	an alias for rijndael. 
	(lookup_crypto): Recognize aes256-cbc, aes-cbc and aes.

2001-08-23  Niels Möller  <nisse@ehand.com>

	* src/connection.c (do_exc_connection_handler): Display exception
	message. Suggested by Jonas Bofjäll. XXX: Fix in 1.2 branch.

2001-08-28  Niels Möller  <nisse@cuckoo.hack.org>

	* src/sftp/testsuite/run-tests: Use srcdir when starting scripts.

	* src/Makefile.am.in (liblsh_a_SOURCES): Added channel_forward.c.

	* src/channel_forward.h: Renamed the tcpip_channel to
	channel_forward, and moved it to a separate file. It's not really
	tcpip-forwarding specific, and can be reused for x11-forwarding.

	* src/lsh_types.h (READ_UINT16): Fixed shift count. XXX: Fix in
	1.2 branch.

	* src/parse.c (parse_uint16): New function.
	(parse_string16): New function.

2001-08-27  Niels Möller  <nisse@cuckoo.hack.org>

	* src/sftp/testsuite/Makefile.am (EXTRA_DIST): Use EXTRA_DIST, not
	DISTFILES. cd to $srcdir when running the tests.

	* src/sftp/Makefile.am (EXTRA_DIST): Include header files in the
	dist. 

	* buffer.c, buffer.h, client.c, client.h: Added copyright notices. 

	* src/sftp/testsuite/Makefile.am: New file.

	* src/sftp/sftp-server.c (struct sftp_file): New struct with fd
	and position.
	(enum struct sftp_handle_type): Renamed constants to
	HANDLE_TYPE_FILE and HANDLE_TYPE_DIRECTORY.
	(handle_t): Deleted typedef.
	(HANDLE_FILE): New macro replacing HANDLE_FD.
	(sftp_read): New function. Keep track of position, and use
	seek/pread only when appropriate.
	(sftp_write): Likewise.

	* src/sftp/configure.in (AC_OUTPUT): Generate testsuite/Makefile. 

	* src/sftp/client.c: Minor fixes; deleted unused variables, static
	declared functions. 

	* src/sftp/Makefile.am (SUBDIRS): Added testsuite.

	* src/Makefile.am.in (SUBDIRS): Added sftp.

	* misc/bootstrap.sh: Bootstrap the src/sftp subdirectory.

	* configure.in: Configure the src/sftp subdirectory. 

2001-08-26  Niels Möller  <nisse@cuckoo.hack.org>

	* src/testsuite/export-1-test: Don't use $srcdir for finding
	lsh-export-key. 

	* src/zlib.c (do_zlib): Don't print any message if Z_BUF_ERROR
	happens with avail_in = 0.

	* src/lshd.c (main_options): New experimental option --subsystems.
	(parse_subsystem_list): New function.
	(main_argp_parser): Handle --subsystems.
	(main): Install a subsystems handler, if appropriate.

	* src/server_session.c (shell_request): Deleted unused reaper
	attribute. 
	(lookup_subsystem): New function.
	(do_spawn_subsystem): New function.
	(make_subsystem_handler): New function.

2001-08-21  Niels Möller  <nisse@ehand.com>

	* src/client_userauth.c (make_client_publickey_auth): Initialize
	TYPE attribute properly.

	* src/server_userauth.c (server_userauth_none): New authentication
	method. 

	* src/lshd.c (main_argp_parser): Install a handler for the "none"
	authentication method. 
	(main): Always require user authentication (used to allow clients
	to start the ssh-connection service directly, under the same
	restrictions as for "none" authentication).

	* src/lsh.c (main_options): Deleted options --userauth and
	--no-userauth. 
	(lsh_login_command): Try the "none" authentication method.

	* src/handshake.c (handshake_command): Use CAST_SUBTYPE.

	* src/connection_commands.c (connection_if_srp): Deleted command.

	* src/command.c (do_command_4): Use CAST_SUBTYPE, in case
	command_4 is inherited.
	(do_command_3): Use CAST_SUBTYPE, in case command_3 is inherited.
	(do_command_2): Use CAST_SUBTYPE, command_2 is inherited by
	sexp_print_command. 

	* src/client_userauth.c (format_userauth_none): New function.
	(make_client_none_auth): New function.

2001-08-12  Niels Möller  <nisse@cuckoo.hack.org>

	* src/client.c (do_exit): New callback function.
	(make_client_session): Bind the sequence <escape> . to exit. 
	(client_options): New action option -B, --background.
	(background_process): New command.
	(client_argp_parser): Implement -B.

	* src/lshg.c (main_argp_parser): Check that make_gateway_address
	doesn't return NULL. XXX: Fix in 1.2 branch.
	(options2info): Use self->gateway. XXX: Fix in 1.2 branch.

2001-07-30  Niels Möller  <nisse@cuckoo.hack.org>

	* src/testsuite/export-1-test: Fixed invocation of compare_output. 

2001-07-06  Niels Möller  <nisse@cuckoo.hack.org>

	* src/io_commands.c (io_write_file_command): Bugfix.

	* src/command.h (command_simple): Deleted class.
	(STATIC_COMMAND_SIMPLE): Deleted macro.
	(DEFINE_COMMAND_SIMPLE): Deleted macro.
	(catch_command): Inherit command, not command_simple.

	* src/command.c (do_call_simple_command): Deleted.
	(catch_collect_body): Inherit command, not command_simple.

	* src/sexp_commands.h (sexp_print_command): Inherit command_2.

	* src/lsh_proxy.c (proxy_destination): Use DEFINE_COMMAND2.

	* src/lsh-writekey.c: Don't use DEFINE_COMMAND_SIMPLE.
	* src/lsh.c: Likewise.
	* src/lshd.c: Likewise.
	* src/lshg.c: Likewise.
	* src/proxy.c: Likewise.
	* src/spki_commands.c: Likewise.

	* src/keyexchange.c (kexinit_filter): Redefined using
	DEFINE_COMMAND2. 

	* src/io_commands.c (io_write_file_command): Use DEFINE_COMMAND.
	(connect_local_command): Likewise.
	(io_log_peer_command): Likewise.
	
	* src/gateway_commands.c (gateway_setup_command): Use
	DEFINE_COMMAND.  
	(gateway_accept): Use DEFINE_COMMAND2. 

	* src/lsh-writekey.c: Don't use command_simple.

	* src/connection_commands.c (connection_remember): Redefined using
	DEFINE_COMMAND2.

	* src/channel.c (connection_service_command): Use DEFINE_COMMAND,
	not DEFINE_COMMAND_SIMPLE.
	* src/client.c (client_options2remote): Likewise.
	(client_options2actions) Likewise.

2001-07-05  Niels Möller  <nisse@cuckoo.hack.org>

	* src/testsuite/Makefile.am (TS_SH): Added export-1-test.

	* src/lsh-export-key.c (ssh2_print_command): Inherit command_2.
	Don't use command_simple.

2001-07-04  Niels Möller  <nisse@cuckoo.hack.org>

	* src/command.c (collect_state_1): Deleted class.
	(collect_state_1): Deleted class.
	(collect_state_2): Deleted class.
	(collect_state_3): Deleted class.
	(make_collect_state_1): Deleted function.
	(make_collect_state_2): Deleted function.

	* src/command.h (command_2): Made invoke a method, not a function
	pointer. Updated users.
	(COMMAND_2_INVOKE): New macro.
	(collect_info_3): Deleted class.
	(collect_info_2): Deleted class.
	(collect_info_1): Deleted class.
	(STATIC_COLLECT_1): Deleted macro.
	(STATIC_COLLECT_2): Deleted macro.
	(STATIC_COLLECT_2_FINAL): Deleted macro.
	(STATIC_COLLECT_3_FINAL): Deleted macro.

	* src/channel_commands.h (install_info): Inherit command_2,
	instead of collect_info_2.

	* src/testsuite/functions.sh (spawn_lshd): Pass --no-syslog to
	lshd, not --log-file.

	* src/tcpforward_commands.c (open_forwarded_tcpip): Redefined
	using DEFINE_COMMAND2.
	(open_direct_tcpip): Likewise.
	(remote_listen_command): Likewise.
	(make_request_tcpip_forward_command): Deleted function. Moved code
	to remote_listen_command.
	(make_direct_tcpip_handler): Redefined using DEFINE_COMMAND.
	(make_tcpip_forward_handler): Likewise.
	
	* src/sexp_commands.c (sexp_print_raw_hash): Redefined using
	DEFINE_COMMAND3. 

	* src/proxy.c (chain_connections): Redefined using DEFINE_COMMAND3.

	* src/command.c (do_trace_continuation): Use trace(... %t ...).

	* src/werror.c (logfile_flag): Deleted global variable.
	(werror_vformat): Added %t, for printing the object type.

	* src/lshd.c: New option --no-syslog.

	* src/io_commands.c (listen_with_callback): Redefined using
	DEFINE_COMMAND3.

	* src/handshake.c (handshake_command): Redefined using
	DEFINE_COMMAND4. 

	* src/connection_commands.c (connection_if_srp): Redefined using
	DEFINE_COMMAND3. 
	(make_connection_if_srp): Use make_command_3_invoke_2.

	* src/combinators.c (command_Cp): Bugfix, changed argument order.

2001-07-03  Niels Möller  <nisse@ehand.com>

	* src/testsuite/runtests (srcdir): By default, use `pwd`, not ".". 

	* src/testsuite/functions.sh: Don't set srcdir here.
	(spawn_lshd): Send messages to lshd.log.

	* src/werror.c (logfile_flag): New global variable.
	(syslog_flag): Deleted.
	(werror_argp_parser): Set logfile_flag of a log file option is
	encountered. 

	* src/lshd.c (main): Don't use syslog if the user provided an
	explicit log-file option.

	* src/combinators.c (command_C): Redefined using DEFINE_COMMAND3.
	(command_Cp): Redefined using DEFINE_COMMAND4, but disabled the
	new version as it doesn't quite work.
	
	* src/testsuite/macros.m4: Include string.h.

	* src/combinators.c (command_Sp): Redefined using
	DEFINE_COMMAND4.
	(command_B): Redefined using DEFINE_COMMAND3.
	(command_Bp): Redefined using
	DEFINE_COMMAND4.

	* src/command.c (command_4_invoke_3): New class.
	(make_command_4_invoke_3): New function.
	(command_4_invoke_2): New class.
	(make_command_4_invoke_2): New function.
	(command_4_invoke): New class.
	(make_command_4_invoke): New function.

	* src/command.h (command_4): New class.
	(DEFINE_COMMAND4): New macro.

	* src/gateway_commands.c: Include string.h.

	* configure.in: Bumped version to 1.3.3.

2001-07-02  Niels Möller  <nisse@cuckoo.hack.org>

	* src/combinators.c (command_I): Redefined using DEFINE_COMMAND.
	Updated users as the type was changed in the process.
	(command_K): Redefined using DEFINE_COMMAND2.
	(command_S): Redefined using DEFINE_COMMAND3.

	* src/command.c: New class.
	(make_command_2_invoke): New function.
	(command_3_invoke_2): New class.
	(make_command_3_invoke_2): New function.
	(command_3_invoke): New class.
	(make_command_3_invoke): New function.
	(progn_command): Use DEFINE_COMMAND isntead of
	DEFINE_COMMAND_SIMPLE. 

	* src/command.h: Started replacing command_simple and the
	collect_info_n classes with simpler schemes.
	(command_2): New class.
	(DEFINE_COMMAND2): New macro.
	(command_3): New class.
	(DEFINE_COMMAND3): New macro.

	* src/connection_commands.c (connection_require_userauth): Changed
	invocation of DEFINE_COMMAND.
	* src/gateway_commands.c (gateway_init): Likewise.

	* src/command.h (DEFINE_COMMAND): Changed macro to not take the
	function arguments as arguments.

	* src/command.c (gaba_apply): Rewrote to not use
	COMMAND_SIMPLE_CALL. 
	(do_command_unimplemented): Deleted function.

2001-06-27  Niels Möller  <nisse@cuckoo.hack.org>

	* acinclude.m4: Added template for socklen_t definition.

	* acconfig.h: Deleted definitions, use AH_TEMPLATE in configure.in
	instead. Can this file be removed completely now?

	* configure.in: Added AH_TEMPLATE calls. Deleted test for
	offsetof. 

	* src/client_escape.c (newlinep): New function.
	Treat NL and CR equivalently.
	(scan_escape): Simplified. Also doesn't use memchr anymore. 

	* src/io.c (io_listen_local): Use plain offsetof.
	(io_connect_local): Likewise.

	* src/lsh_types.h (OFFSET_OF): Deleted definition, simply trust
	stddef.h. 

	* src/server_userauth.c (do_exc_userauth_handler): Let the
	connection's exception handler deal with EXC_PROTOCOL (fixed
	somewhat differently in the 1.2.x branch).

2001-06-26  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.in: Deleted IDEA support.

	* src/process_atoms (atom2define): Changed invocation of tr to be
	compatible with the Solaris 8 tr.

2001-06-26  Niels Möller  <nisse@ehand.com>

	* src/client_escape.c (NEWLINE): New macro.
	(do_escape_handler): Reset state to GOT_NONE appropriately.

	* src/client.c (client_argp_parser): Added empty statement after
	label. 
	(make_client_session): Bind ^Z to suspend.

2001-06-24  Niels Möller  <nisse@cuckoo.hack.org>

	* src/xalloc.h (CHECK_TYPE) [DEBUG_ALLOC]: Added parentheses.
	* src/xalloc.h (CHECK_SUBTYPE) [DEBUG_ALLOC]: Likewise.

	* src/werror.c (werror_vformat): Implemented the 'p' (paranoia)
	modifier for %c.

	* src/client_escape.c (escape_dispatch): Use %pc with werror.

	* src/client.c (make_client_session): Check if stdin is a tty,
	when deciding on the default for escape char handling. 

2001-06-20  Niels Möller  <nisse@cuckoo.hack.org>

	* src/client_escape.c (do_escape_handler): Fixed the EOF case.

2001-06-19  Niels Möller  <nisse@cuckoo.hack.org>

	* src/client_session.c (client_read_stdin): New function, for
	installing the escape-char handler on stdin.
	(do_client_io): Use client_read_stdin.
	(make_client_session_channel): Added argument escape.

	* src/client_escape.c: Moved suspend-related code to suspend.c. 

	* src/client.c (client_escape_info): New function.
	(client_options): New option ---escape-char or 'e'.
	(make_client_session): Seet up escape char info.
	(client_argp_parser): Handle escape-char option. Call
	suspend_install_handler. 

	* src/Makefile.am.in (liblsh_a_SOURCES): Added suspend.c.

	* src/unix_interact.c: Moved suspend-related code to suspend.c. 

	* src/suspend.c, src/suspend.h: New files.

	* configure.in: Bumped version to 1.3.2.

2001-06-17  Niels Möller  <nisse@cuckoo.hack.org>

	* src/rsync/rsync.h: Include <inttypes.h>, not <stdint.h>.

	* src/channel.c (alloc_channel): Initialize new channel-entries to
	NULL. 

	* src/cast.c: Adapted to nettle.

	* Makefile.am.in (DOTDISTS): Deleted references to the symmetric
	subdirectory.
	(MAKEFILESAM): Likewise.
	* configure.in (AC_CONFIG_FILES): Likewise.

	* doc/HACKING (ROAD MAP): Updated to mention nettle.

	* doc/lsh.texinfo: Added @dircategory and @direntry.

	* src/twofish.c: Adapted to nettle.

2001-06-15  Niels Möller  <nisse@ehand.com>

	* src/blowfish.c: nettle updates.
	* src/serpent.c: Likewise.

	* configure.in: Configure in the src/nettle sub directory.

	* misc/bootstrap.sh: Invoke the nettle .bootstrap script.

2001-06-13  Niels Möller  <nisse@ehand.com>

	* misc/bootstrap.sh: Bootstrap the nettle subdirectory. 

	* src/rsync/: Updated to libnettle conventions.

	* configure.in (CPPFLAGS): Add -LSH and -I$srcdir/src, needed by
	src/rsync/.

2001-06-12  Niels Möller  <nisse@cuckoo.hack.org>

	* src/dsa.c, src/dsa_keygen.c, src/md5.c, src/rijndael.c,
	src/sha.c: Adapted to the nettle API.

	* configure.in: Use src/nettle instead of src/symmetric.
	* src/Makefile.am.in: Likewise.
	* src/testsuite/Makefile.am: Likewise.

2001-06-09  Niels Möller  <nisse@cuckoo.hack.org>

	* src/io.c (do_consuming_read): In the EOF case, call
	close_fd_read after A_WRITE.

2001-06-07  Niels Möller  <nisse@cuckoo.hack.org>

	* src/io.c (do_kill_io_backend): Let close_fd do it's work.

2001-06-06  Niels Möller  <nisse@cuckoo.hack.org>

	* src/io.c (close_fd): Really close the fd, and invoke any close
	callback. 
	(io_iter): Simplified handling of closed files. Simply unlink
	them, close_fd has to do the rest of the work.

2001-05-29  Niels Möller  <nisse@cuckoo.hack.org>

	* acinclude.m4: AC_CHECK_MEMBER: Deleted definition (a similar
	macro is included in autoconf-2.50).
	AC_CHECK_VAR: Deleted.
	(AC_CHECK_KRB_LIB): Don't use changequote.

	* configure.in: Set SRP_PROGRAM.
	Require autoconf-2.50.
	Use the new AC_CHECK_MEMBERS macro.

	* src/unix_user.c: Update for autoconf-2.50, changed HAVE_UT_NAME
	to HAVE_STRUCT_UTMP_NAME, and similarly for other defines.

2001-05-23  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.in: Some cleanup, and update for autoconf-2.50. Some
	more work needed. 

2001-05-17  Niels Möller  <nisse@ehand.com>

	* configure.in: Set SRP_PROGRAM.

	* src/Makefile.am.in (EXTRA_PROGRAMS): Added srp-gen.
	(bin_PROGRAMS): Use SRP_PROGRAM, don't compile srp-gen if
	SRP-support is disabled.

	* src/testsuite/write-key-2-test: Fixed test; check for output
	files in the testhome directory.

	* src/unix_user.c: Fixed dummy definition of struct utmp (spotted
	by Tomi Ollila).

2001-05-16  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.in: Bumped version to 1.3.1.

	* Released 1.3.0.

2001-05-15  Niels Möller  <nisse@ehand.com>

	* src/scm/gaba.scm: Some more cleanup.

	* src/lshd.c (do_exc_lshd_handler): Handle EXC_RESOLVE.

	* src/testsuite/functions.sh (spawn_lshd): Use 127.0.0.1 instead
	of localhost.

	* src/scm/gaba.scm (append-deep): Deleted.
	(type->category): Deleted.
	(type->declaration): Deleted.
	(type->mark): Deleted.
	(type->free): Deleted.
	(fix-method): Deleted.
	(do-instance-struct): Deleted.
	(do-struct): Deleted.
	(do-mark-function): Deleted.
	(do-free-function): Deleted.
	(do-struct-mark-function): Deleted.
	(do-struct-free-function): Deleted.
	(do-class): Deleted.

2001-05-15  Niels Möller  <nisse@ehand.com>

	* src/scm/gaba.scm: Rewrote the functions for generating C code.

2001-05-15  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.in: Updated version number to 1.3.0.

2001-05-14  Niels Möller  <nisse@cuckoo.hack.org>

	* src/gc.c (gc) [!DEBUG_ALLOC]: Don't use number_of_strings.  

2001-05-11  Niels Möller  <nisse@cuckoo.hack.org>

	* src/testsuite/functions.sh (PIDFILE): New variable, with
	absolute path to the pid-file. FIXED in 1.2 branch.
	(spawn_lshd): $PIDFILE. FIXED in 1.2 branch.

2001-05-03  Niels Möller  <nisse@ehand.com>

	* src/lshd.c (main): Start the background randomness poll *after*
	forking into the background. FIXED in 1.2 branch.

	* src/testsuite/functions.sh (spawn_lshd): Use --daemon flag. 

2001-05-02  Niels Möller  <nisse@cuckoo.hack.org>

	* sexp_streamed_parser.c: Deleted file.

	* src/unix_user.c (format_env_pair): Return const char *.
	(format_env_pair_c): Likewise.
	(do_exec_shell): Use const char ** for argv and envp.

	* src/xalloc.c (lsh_free): Cast to void * before calling free, as
	free doesn't accept const void *.
	(lsh_string_free): Changed argument type to const struct
	lsh_string *.
	(lsh_space_free): Bug-fix.
	(lsh_space_alloc): Use lsh_malloc, not xalloc directly.
	(lsh_space_free): Changed argument type to const void *.

	* src/userauth.h (lsh_user): Use const char ** for argv. 

2001-05-01  Niels Möller  <nisse@cuckoo.hack.org>

	* src/unix_interact.c (unix_read_password): Use const prompt
	string. 
	(unix_yes_or_no): Likewise.

	* src/srp_exchange.c (make_srp_entry): Use const struct lsh_string
	for the salt.

	* src/spki_commands.c (do_spki_decrypt): Use const struct lsh_string.

	* src/spki.c (subject_match_hash): Use const struct lsh_string.
	(do_spki_tag_prefix_match): Likewise.
	(spki_subject_by_hash): Likewise.
	(do_spki_lookup): Likewise.

	* src/sexp_parser.c (skip_space): New function, skipping
	whitespace and comments.
	(sexp_parse_transport): Allow whitespace and comments.

	* src/sexp_commands.c: Don't use the streamed sexp parser.
	(sexp_parser): New class.
	(do_sexp_parse_once): New function.
	(do_sexp_parse_many): New function. 
	(do_read_sexp_continue): Deleted function.
	(make_read_sexp_continuation): Deleted function.
	(read_sexp_exception_handler): Deleted class.
	(do_read_sexp_exception_handler): Deleted function.
	(make_read_sexp_exception_handler): Deleted function.
	(make_sexp_parser): New function.
	(make_read_sexp_command): New argument MAX_SIZE.

	* src/sexp.c: Constification, use const struct lsh_string for all
	sexp-related strings. 

2001-04-26  Niels Möller  <nisse@cuckoo.hack.org>

	* src/scm/gaba.scm: Added const type modifier.

	* src/sexp-conv.c (MAX_SEXP_SIZE): New constant, used with
	make_read_sexp_command. 

	* src/server_session.c (do_spawn_exec): Use const char * for argv
	entries. 

	* src/server_keyexchange.c (MAX_SRP_SIZE): New constant, used with
	make_read_sexp_command. 

	* src/lsh-writekey.c (MAX_SEXP_SIZE): New constant. Used with
	STATIC_READ_SEXP. 

	* src/lsh-export-key.c (MAX_KEY_SIZE): New constant. Use with
	make_read_sexp_command. 

	* src/io.c (do_buffered_read): Call close_fd_read on error. This
	way, the user doensn't have to use an exception handler just for
	closing the file.

	* src/interact.h (interact): Use const for prompt arguments.

	* src/format.c (lsh_get_cstring): Use const for input and output.

	* src/pkcs5.c (pkcs5_derive_key): Declare password and salt input
	as const.

	* src/abstract_crypto.c (crypt_string): Declare the input string
	const. Nevertheless, reuse it for output in case FREE is true.
	(crypt_string_pad): Declare input string const.
	(crypt_string_unpad): Likewise.

	* src/Makefile.am.in (liblsh_a_SOURCES): Deleted
	sexp_streamed_parser.c. 

2001-04-25  Niels Möller  <nisse@ehand.com>

	* src/keyexchange.c (do_handle_newkeys): Added verbose message
	when receiving NEWKEYS.
	(do_handle_kexinit): Added verbose message when receiving KEXINIT
	message. 

	* src/parse.c (parse_next_atom): Tolerate empty atoms, for
	compatibility with "SSH-1.99-2.0.13 (non-commercial)". XXX Fix in
	1.2 branch? 

2001-04-17  Niels Möller  <nisse@cuckoo.hack.org>

	* src/testsuite/Makefile.am (TS_MORE_SH): Added tests
	lshg-cat-test, lshg-cat-2-test and ssh1-fallback-test.

	* src/testsuite/functions.sh: Renamed SERVERFLAGS to LSHD_FLAGS,
	CLIENTFLAGS to LSH_FLAGS, and added LSHG_FLAGS.

	* src/testsuite/lshg-cat-2-test: New test.

	* src/testsuite/lshg-cat-test: Sleep some, waiting for lsh to
	connect.

	* src/sftp/.bootstrap: Don't run ./configure.

	* src/werror.c (werror_argp_parser): Initialize program_name at
	ARGP_KEY_INIT time.

	* src/resource.c (dont_free_live_resource): Be more quiet during
	gc_final.

	* src/lshg.c (do_exc_lshg_handler): Fixed werror format string.
	Fixed in 1.2 branch.

	* src/lsh.c (do_lsh_lookup): If the user decides to trust the key,
	add it to the spki_context.

	* src/lcp: Replaced the bashism "==" with "=".

	* src/gc.c (gc_final_p): New variable, non-zero during gc_final().

	* src/client_session.c (make_client_session_channel): Register
	stdio files as resources.

2001-04-12  Niels Möller  <nisse@cuckoo.hack.org>

	* src/lshd.c (main_argp_parser): Bugfix: Use the supplied
	interface! Fixed in 1.2 branch.

	* src/testsuite/ssh1-fallback-test: New test.

	* src/testsuite/lshg-cat-test: New test.

	* src/testsuite/fake-sshd1: New file.

	* src/testsuite/functions.sh (spawn_lshd): Pass arguments to lshd.
	Fixed in 1.2 branch.
	(exec_lshg): New function.

	* src/ssh1_fallback.c (fall_back_to_ssh1): Reset the fd to
	blocking mode. Fixed in 1.2 branch.

	* src/io.c (io_set_blocking): New function. Added in 1.2 branch.
	(do_exc_finish_read_handler): Close fd immediately on
	EXC_FINISH_IO. Fixed in 1.2 branch.

2001-04-11  Niels Möller  <nisse@cuckoo.hack.org>

	* src/userauth.h (lsh_process): New class.
	(lsh_user): The fork_method now returns the child as an
	lsh_process.

	* src/unix_user.c (process_resource): Inherit lsh_process.
	(do_signal_process): New function.

	* src/unix_interact.c (install_suspend_handler): New function.
	(stop_handler): New signal handler for TSTP, that sets and resets
	the tty modes.

	* src/tty.c (tty_getwinsize): Take a struct terminal_dimensions *
	as argument. 
	(tty_setwinsize): Likewise.

	* src/server_session.c (server_session): Changed type of process
	attribute to lsh_process. Updated uses.
	(do_alloc_pty): Check request syntax in all cases, even if there's
	no pty. 
	(do_window_change_request): New function.

	* src/interact.h (struct terminal_dimensions): Moved definition...
	* src/tty.h (struct terminal_dimensions): ...to here.

	* src/client_pty.c: Include tty.h.

	* src/client.h (escape_info): New class.

	* src/Makefile.am.in (liblsh_a_SOURCES): Added client_escape.c.

	* src/client_escape.c: New file.

2001-04-10  Niels Möller  <nisse@ehand.com>

	* src/client.c (make_client_session): Use set_error_nonblocking.

2001-04-09  Niels Möller  <nisse@ehand.com>

	* src/werror.c (set_error_nonblocking): New function.
	(set_error_stream): Deleted WITH_POLL argument.
	(werror_options): Aded option --log-file.
	(werror_argp_parser): Process --log-file option.

	* ANNOUNCE: Changed "COPYRIGHT" to "LICENSE", by rms' request. 
	Fixed in 1.2 branch.

2001-04-08  Niels Möller  <nisse@cuckoo.hack.org>

	* src/lsh.c (main_argp_parser): Deleted old -L handling (moved to
	client.c).  

	* src/sexp_commands.c (do_print_raw_hash_simple): Deleted unused
	function. 

	* src/sexp.c (sexp_sn): Deleted unused function.

	* src/io.c (make_listen_callback_no_peer): Deleted unused function.

	* src/gc.c (gc): Display number of strings.

	* src/client_session.c (do_client_session_eof): Deleted old code
	that closed stdin here.

	* src/client.c (do_exit_status): Deleted old code sending
	CHANNEL_EOF here.
	(do_exit_signal): Likewise. 
	(do_exit_signal): Signals in the exit-signal message are no longer
	encoded as integers. XXX Fix in 1.2 branch?

	* src/channel.c (do_exc_finish_channel_handler): Deleted old
	(#if:ed out) code for raising EXC_FINISH_READ.
	(channel_close_handler): Deleted old code calling the channel's
	EOF handler here.

	* src/lsh.c (main): Call io_final.

	* src/io.h (lsh_fd): Added label attribute. 

	* src/io.c (kill_fd): Deleted.
	(io_backend): Inherit resource. 
	(do_kill_io_backend): New function.
	(make_io_backend): Call resource_init.
	(io_final): New function.
	(init_file): New argument LABEL.
	(make_lsh_fd): New rgument LABEL. Updated callers.
	(close_fd): Display label.
	(io_iter): Display label.

	* src/lsh-writekey.c (make_writekey): Deleted unneeded global
	definitions. 

	* src/resource.c (dont_free_live_resource): Changed again, to
	issue a fatal error.

	* src/sexp_parser.h: Deleted unused file.

	* src/testsuite/Makefile.am (TS_PROGS): Added string-test.

	* src/testsuite/macros.m4 (TS_CHECK): New macro.

	* src/testsuite/string-test.m4: New tests for string related
	functions, currently only lsh_get_cstring.

	* src/format.c (ssh_cformat): Deleted. Replaced all uses with
	ssh_format. 
	(make_cstring_l): Deleted.
	(make_cstring): Deleted.
	(lsh_get_cstring): New function.

	* src/werror.c (write_syslog): Don't use make_cstring_l.

	* src/unix_user.c (do_verify_password): Use lsh_get_cstring.
	(do_read_file): Likewise.
	(do_read_file): Likewise.
	(format_env_pair): Likewise.
	(do_exec_shell): Likewise.
	(make_unix_user): Likewise. 
	(do_lookup_user): Likewise.

	* src/unix_interact.c (unix_read_password): Use lsh_get_cstring.

	* src/server_session.c (do_spawn_exec): Use lsh_get_cstring.

	* src/lsh.h (NUL_TERMINATED): Deleted.

	* src/format.h (format_cstring, make_string): Renamed function.
	And made it a macro. Updated callers.

	* src/adns.c (do_resolve): Use lsh_get_cstring. Don't use
	NUL_TERMINATED. 
	* src/io.c (address_info2sockaddr): Likewise.
	(make_local_info): Likewise.
	(io_listen_local): Likewise.
	(io_connect_local): Likewise.

2001-04-05  Niels Möller  <nisse@ehand.com>

	* src/testsuite/functions.sh (run_lsh): Quote the command better.

	* src/xalloc.c (lsh_string_alloc): Fixes, now compiles both with
	and without DEBUG_ALLOC.

	* src/werror.c (werror_argp_parser): Added missing break.
	(werror): Handle the case where both verbose_flag and quiet_flag
	are set.

	* src/io.c (do_consuming_read): Free the string properly on EOF or
	error. XXX Fix in 1.2 branch? 

	* src/client_userauth.c (make_client_userauth): Convert username
	to utf8 once, here. Updated callers. Previously, the converted
	strings leaked.

	* src/client_session.c (do_client_session_eof): Use
	close_fd_nicely. Otherwise we lose data. FIXED in 1.2 branch.

	* src/Makefile.am.in (atoms_gperf.c): Massage gperf output to
	reduce the number of compilation warnings.

2001-04-05  Niels Möller  <nisse@cuckoo.hack.org>

	* src/gc.c (gc_final): Check for leaked strings, and write any
	clues. 

	* src/lsh.h (struct lsh_string_header): Added more debug info.

	* src/xalloc.c (all_strings): New variable, for debugging.
	(sanity_check_string_list): New function.
	(lsh_string_alloc_clue): New function, remembering allocated
	strings. 
	(lsh_string_free): Unregister string.

	* src/werror.c (werror_vformat): Pass arguments to werror_write in
	the correct order.
	(werror_vformat): Likewise.

2001-04-04  Niels Möller  <nisse@cuckoo.hack.org>

	* src/testsuite/Makefile.am (CFLAGS): Reintroduced -O0, to make
	compilation faster.

	* src/client.c, src/client_keyexchange.c, src/client_userauth.c,
	src/debug.c, src/disconnect.c, src/proxy.c,
	src/proxy_x11forward.c, src/server.c, src/server_keyexchange.c,
	src/server_userauth.c: Packet handlers should no longer free
	packets.

	* src/xalloc.c (number_of_strings): Define only if DEBUG_ALLOC. 
	(lsh_string_alloc): NUL-terminate strings, for simplicity.
	(lsh_string_free): Check that string is still NUL-terminated.

	* src/werror.c (program_name): New variable.
	(werror_argp_parser): Initialize program_name.
	(werror_vformat): Prefix messages with program_name.
	(werror_vformat): Simplified code in 'z' case.

	* src/proxy_userauth.c (do_forward_success): dup packet before
	forwarding it.
	Packet handlers should no longer free packets.

	* src/channel.c (RETURN, END): Deleted macros.
	Packet handlers should no longer free packets.

	* src/keyexchange.c (do_handle_kexinit): dup packet when storing
	it in the connection struct.
	(do_handle_newkeys): Packet handlers should no longer free packets.

	* src/write_buffer.c (make_write_buffer): Renamed
	write_buffer_alloc to make_write_buffer. Updated callers.

	* src/gc.c (gc_final): Check number_of_objects and
	number_of_strings. 

	* src/connection.c (connection_handle_packet): Always free the
	packet here. Packet handlers no longer needs to do that.
	(connection_handle_packet): Accept SSH_MSG_IGNORE and
	SSH_MSG_DEBUG in the KEX_STATE_NEWKEYS state.

	* configure.in: Bumped version to 1.3.

	* lsh-1.2 released.

	* distribution-key.gpg: Updated key, more signatures and later
	expiration date. 

	* src/sftp/Makefile.am (sftp_test_client_SOURCES): Added werror.c
	and client.c 

	* src/sftp/sftp-test-client.c (struct client_ctx): Moved to
	client.h 
	(werror_program_name): Defined here.

	* src/sftp/client.c, src/sftp/client.h, src/sftp/werror.c,
	src/sftp/werror.h:  New files.

2001-04-03  Niels Möller  <nisse@cuckoo.hack.org>

	* src/sftp/testsuite/put-1-test: Check that the new file exists.
	Use $TESTHOME for referring to the local file.

	* src/sftp/sftp-test-client.c (do_put): Fixes and simplifications. 

2001-04-03  Niels Möller  <nisse@ehand.com>

	* src/sftp/sftp-test-client.c (do_open): New function.
	(do_close): New function.
	(do_get): Use do_open and do_close.

2001-04-02  Niels Möller  <nisse@cuckoo.hack.org>

	* configure.in: Bumped version to 1.2.

	* src/Makefile.am.in (EXTRA_DIST): Added lcp.

	* src/Makefile.am.in (noinst_SCRIPTS): Added the experimental lcp
	script.

2001-04-02  Niels Möller  <nisse@ehand.com>

	* src/sftp/sftp-server.c (sftp_process_read): Fixed size passed to
	pread. 
	(debug): Added a prototype saying that it takes printf-style
	arguments. 

2001-04-02  Niels Möller  <nisse@lysator.liu.se>

	* src/sftp/sftp-server.c (sftp_process_realpath): Fixed invocation
	of pathconf().
	Include stdarg.h.

	* src/sftp/testsuite: Adapted shell scripts to /bin/sh. Removed
	uses of the "function" keyword, and use a full path when sourcing
	common.sh.

	* src/sftp/testsuite/run-tests: Use /bin/bash, as we use
	bash-specific parameter expansion.

2001-04-01  Niels Möller  <nisse@cuckoo.hack.org>

	* src/sftp/Makefile.am (sftp_server_SOURCES,
	sftp_test_client_SOURCES): Added xmalloc.c.

	* src/sftp/xmalloc.c: New file. Defines xmalloc, xrealloc and
	xstrdup. 

	* src/sftp/sftp-test-client.c (do_put): Use xmalloc.

	* src/sftp/sftp-server.c (sftp_get_user): New function.
	(sftp_get_group): Likewise.
	(struct sftp_ctx): Added user_cache and group_cache.
	(sftp_init): Initialize user_cache and group_cache.
	(sftp_put_longname): Take a sftp_ctx * as argument. Use
	sftp_get_user and sftp_get_group.

	* src/sftp/buffer.c: Use xmalloc and xrealloc.

	* src/sftp/idcache.c: Rewrite.

	* src/sftp/Makefile.am (sftp_server_SOURCES): Added idcache.c.

	* src/sftp/sftp-server.c: Use the functions from idcache.c.

	* src/sftp/idcache.c: #include idcache.h. #if:ed out prototypes
	and functions that aren't needed. Use malloc instead of xmalloc.

	* src/sftp/idcache.h: New file.

	* src/sftp/testsuite/setup-env: Clean up first.

	* src/sftp/testsuite/get-1-test: New testcase.
	* src/sftp/testsuite/ls-1-test: Likewise.
	* src/sftp/testsuite/ls-2-test: Likewise
	
	* src/sftp/testsuite/common.sh (PROGRAMDIR): New variable, holding
	an absolute path to the directory where the programs are.

	* src/sftp/sftp-test-client.c (sftp_client_get_id): New function. 
	(do_ls): Fixes and some simplification.
	(do_get): Simplified. The old more featureful implementation left
	#if:ed out.

	* src/sftp/sftp-server.c (debug): New function.
	(sftp_get_name): New function.
	(struct sftp_dir): New struct.
	(sftp_lstat_in_dir): New function.
	(sftp_process_readdir): Handle directories that are not our
	current working directory.  
	(parse_options): New function, currently only handling -d.

	* src/sftp/buffer.c (sftp_check_input): Don't modify i->left here.
	(sftp_get_data): ...but do it here instead.
	(sftp_free_string): Reintroduced this function.
	(sftp_get_string): This function now requires the user to
	deallocate the string.
	(sftp_get_string_auto): Simpler function, that deallocates strings
	automatically. 
	(sftp_read_packet): Return failure (0), rather than crashing, if
	there is data leftover from the previous packet.
	(sftp_put_final_length): Calculate the length correctly.
	(sftp_put_reset): Fixed assertion.
	(sftp_put_attrib): Likewise.

	* src/sftp/Makefile.am (noinst_PROGRAMS): Added dump-hex.

	* src/sftp/sftp.h: Converted from #define:s to enums.

	* src/sftp/dump-hex.c: New program that copies data from stdin to
	stdout, and writes a hex dump to stderr in the process.

	* src/sftp/debug-server: New script to dump communication between
	sftp-server and sftp-test-client.

	* src/sftp/configure.in: Added to cvs.

2001-03-31  Niels Möller  <nisse@cuckoo.hack.org>

	* src/sftp/acconfig.h: Added HAVE_GCC_ATTRIBUTE.

	* src/sftp/.bootstrap: New file.

2001-03-30  Niels Möller  <nisse@ehand.com>

	* src/sftp/sftp-test-client.c (do_ls): Print the long name.

	* src/sftp/sftp-server.c (sftp_get_name): New function.
	(HANDLE_TYPE, HANDLE_DIR, HANDLE_FD): New macros.
	Fixed handles. Simplified, deleting all sftp_free_string calls.
	Use pread and pwrite, where available.

	* src/sftp/buffer.c (struct sftp_input): Added array of strings,
	so that callers don't have to free them explicitly.
	(sftp_put_reset): New funtion.
	(sftp_get_uint64): Use off_t, conditionalized on its size.
	(sftp_put_uint64): Likewise.

	* src/sftp/Makefile.am: Use AUTOMAKE_OPTIONS = foreign, added
	sftp-test-client. 

2001-03-28  Niels Möller  <nisse@ehand.com>

	* src/lcp (split spec): New function for splitting arguments. 
	Checked in first working version.

2001-03-27  Niels Möller  <nisse@ehand.com>

	* doc/srp-spec.nroff: Bumped version number, updated dates, and
	added a section Further questions.

2001-03-26  Niels Möller  <nisse@cuckoo.localdomain>

	* Released lsh-1.1.9.

	* misc/Makefile.am.in (EXTRA_DIST): Added more files to the dist:
	libgcc2.c-patch, bootstrap.sh and make-dist.

	* configure.in: By default, disable debug-alloc and debug-trace.

	* src/testsuite/keygen-2-test: Use a smaller key size, 777 bits,
	for speed.

	* src/testsuite/keygen-1-test: Use NIST security level 2 (640
	bits), for speed.

	* src/argp/configure.in: Bumped argp version to standalone-1.1. 

2001-03-26  Niels Möller  <nisse@ehand.com>

	* src/argp/configure.in (CPPFLAGS): Added -D_GNU_SOURCE.

2001-03-25  Niels Möller  <nisse@cuckoo.localdomain>

	* src/testsuite/functions.sh (spawn_lshd): Use kill -9 to stop
	lshd; otherwise lshd catching SIGTERM leads to timing problems.

	* Released lsh-1.1.9.

	* misc/libgcc2.c-patch: gcc patch.

	* src/crypto.c: Deleted obsolete file.

	* src/testsuite/Makefile.am (CFLAGS): -O0 is not needed anymore,
	since most of the rijndael tests were deleted.

	* src/proxy_userauth.c (do_proxy_userauth_continuation): Don't use
	FORCE_APPLY. 

	* src/command.h (delayed_apply): Deleted class.

	* configure.in: Bumped version to 1.1.9.

	* src/testsuite/rijndael-test.m4: Deleted most tests, left 4 for
	each key size.

	* src/werror.c (fatal): If compiling with gcov, use exit(255)
	instead of abort.

	* src/spki_commands.c (parse_private_key): Use fatal instead of
	abort. 

	* src/sexp.c (sexp_sn): #if:ed out.

	* src/resource.c (dont_free_live_resource): Call werror, not
	fatal. Currently, this is normal iff it happens during
	gc_final.

	* src/proxy_userauth.c (do_handle_userauth): Don't use
	make_delay_continuation. 

	* src/lshg.c (main): Call gc_final.

	* src/lshd.c (main): Call gc_final. When compiling with gcov,
	catch the TERM signal and call exit() sometime later.

	* src/lsh.c: Call gc_final().

	* src/lsh-keygen.c: Use fatal(), not abort().

	* src/io_commands.c (remember_continuation): Deleted class.
	(do_remember_continuation): Deleted function.
	(make_remember_continuation): Deleted function.
	(do_listen): Deleted arguments resources and lookup. Updated
	callers. 
	(do_simple_listen): Deleted function.
	(make_simple_listen): Deleted function.

	* src/gc.c (gc_final): New function.

	* src/command.c (make_delayed_apply): Deleted function.
	(delay_continuation): Deleted class.
	(do_delay_continuation): Deleted function.
	(make_delay_continuation): Deleted function.

	* src/channel.c (connection_service): Deleted class.

	* doc/lsh.texinfo (Invoking lsh): Added a note saying that
	ordering is important. 

	* doc/TODO (TESTING): Added info on missing tests.

	* configure.in: Define WITH_GCOV when compiling for gcov. 

	* acconfig.h (WITH_GCOV): New symbol.

2001-03-24  Niels Möller  <nisse@cuckoo.localdomain>

	* src/lsh_proxy.c (main): Use listen_callback instead of
	simple_listen. 

2001-03-22  Niels Möller  <nisse@ehand.com>

	* src/alist.c (alist_add): #if:ed out unused function.

2001-03-21  Niels Möller  <nisse@ehand.com>

	* src/client_password.c: Deleted.
	
	* src/lshd.c (install_terminate_handler): Catch SIGTERM and
	arrange for exit(0) to be called on termination.

2001-03-20  Niels Möller  <nisse@ehand.com>

	* src/lshg.c: Include client.h (used to include client.c. Argh!).

	* src/lsh.h: Forward-declare struct interact.

	* src/lsh.c: Don't include client_pty.h.

	* src/client_session.c: Include client.h, not client_session.h. 

	* src/client_pty.c: Include client.h, not client_pty.h.

	* src/client.h (make_pty_request): Moved declaration here. 

	* src/client.c: Don't include client_pty.h.

	* src/client_session.h, src/client_pty.h: Deleted.

	* src/Makefile.am.in (class-map): Let the shell find the awk
	program. 

2001-03-19  Niels Möller  <nisse@cuckoo.localdomain>

	* src/scm/gaba.scm (class-annotate): New function.

	* src/make-class-map: Beautified output.

	* src/lsh-keygen.c (main): Don't use blocking_write.

	* src/blocking_write.h, src/blocking_write.c: Deleted.

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

2001-03-16  Niels Möller  <nisse@ehand.com>

	* ANNOUNCE: Updated, preparing for lsh-1.2.

	* src/server_session.c (format_exit_signal): Represent a signal
	as a string, not an integer.
	* src/translate_signal.c: Likewise.

	* src/client.c (do_exit_signal): Don't use the signal name from
	the packet, only the message.

	* src/atoms.in: Added standard signals.

	* src/resource.c (do_remember_resource): Bugfix: Use
	KILL_RESOURCE, not KILL.

2001-03-15  Niels Möller  <nisse@ehand.com>

	* doc/srp-spec.nroff: Fixed definition of m2, pointed out by Tom
	Holroyd. 

2001-03-14  Niels Möller  <nisse@cuckoo.localdomain>

	* src/Makefile.am.in (class-map): Added rule for generating
	class-map. 

	* src/make-class-map: New awk script for describing the class
	hierarchy. Almost working.

2001-03-14  Niels Möller  <nisse@ehand.com>

	* src/tcpforward.h (remote_port): Deleted c attribute.

	* src/string_buffer.c (string_buffer_length): Deleted.

	* src/spki_commands.h (make_spki_parse_key): Deleted. 

	* src/spki_commands.c (spki_read_acls_command): Deleted.  

	* src/sexp.h (sexp_iterator): Deleted set method. 
	(SEXP_SET): Deleted.

	* src/sexp.c (do_nil_get): New function.
	(do_nil_assoc): New function.
	(do_nil_left): New function.
	(do_nil_next): New function.
	(make_iter_nil): New function.
	(do_format_nil): New function.
	(sexp_nil): New definition, that isn't a cons.
	(do_vector_set): Deleted.
	(sexp_iter_cons): deleted.
	(do_cons_get): Deleted.
	(do_cons_set): Deleted.
	(do_cons_assoc): Deleted.
	(do_cons_left): Deleted.
	(do_cons_next): Deleted.
	(make_iter_cons): Deleted.
	(do_format_sexp_tail): Deleted.
	(do_format_sexp_cons): Deleted.
	(sexp_c): Deleted.

	* src/server_session.h (make_server_connection_service): Deleted. 

	* src/proxy_userauth.c (do_userauth_proxy): Don't use
	make_once_continuation. 

	* src/lsh.c (do_lsh_default_handler): Don't use EXC_SERVICE.

	* src/keyexchange.h (make_install_new_keys: Deleted. 

	* src/io_commands.c (collect_connect_port): Deleted.
	(connect_with_port): Deleted.

	* src/handshake.c: Adapted to change in collect_info_3. 

	* src/gateway.c (gateway): Disabled unused class. 

	* src/exception.c (dummy_exception): Deleted. 

	* src/digits.c (simple_decode_base64): Deleted.

	* src/command.h (collect_info_4): Deleted.

	* src/combinators.c: Adapted to change in collect_info_3. 

	* src/command.c (do_collect_4): Deleted.
	(make_collect_state_3): Deleted.
	(make_once_continuation): Deleted.
	(make_catch_report_collect_body): Deleted.
	(collect_state_2): Deleted attribute next.

	* src/client.c (make_client_options): Deleted, as it wasn't used.

	* src/channel_commands.h (channel_command): Deleted, it wasn't
	used.  

	* src/channel.h: Deleted old code (CONNECTION_START and
	format_channel_open_a).

	* src/alist.h: Deleted ALIST_KEYS.

2001-03-13  Niels Möller  <nisse@ehand.com>

	* src/dsa_keygen.h, src/packet_ignore.c, src/packet_ignore.h,
	src/password.c, src/password.h, src/proxy_channel.h,
	src/session.c, src/session.h:Removed obsolete files.

2001-03-12  Niels Möller  <nisse@cuckoo.localdomain>

	* configure.in: Bumped version to 1.1.8.

	* src/client_session.c (do_client_session_eof): Close stdout and
	stderr, not stdin.

	* src/client.c (do_exit_status): Don't call channel_eof. This way,
	the behavior is more similar to other ssh clients.

	* src/channel.c (channel_request_handler): Display more info about
	unexpected packets.
	(channel_close_handler): Don't display the "unexpected channel
	close" message if CHANNEL_NO_WAIT_FOR_EOF is set.
	Don't invoke the CHANNEL_EOF callback.
	(channel_eof): Use the new CHANNEL_NO_WAIT_FOR_EOF flag.
	(init_channel): Set CHANNEL_CLOSE_AT_EOF by default.
	(channel_read_close_callback): Improved comment.

	* src/channel.h (CHANNEL_NO_WAIT_FOR_EOF): New flag.

	* src/tcpforward.c (do_tcpip_eof): Use the SHUT_WR constant, which
	is defined in io.h if needed.

	* src/server_session.c (spawn_process): Clear
	CHANNEL_CLOSE_AT_EOF.
	(do_exit_shell): Set CHANNEL_CLOSE_AT_EOF and
	CHANNEL_NO_WAIT_FOR_EOF. 

	* src/gateway_channel.c (make_gateway_channel): Clear
	CHANNEL_CLOSE_AT_EOF. 

	* src/io.h (SHUTDOWN_UNIX): Moved shutdown workaround from io.c,
	and added a _UNIX-suffix on the macros to indicate that they are
	for AF_UNIX sockets only. 

	* src/scm/gaba.scm (string-upcase): Moved definition to
	guile-compat.scm. scsh already provides string-upcase, and the
	definition here trigs a bug in string->list in scsh-0.5.2. 

2001-03-12  Niels Möller  <nisse@ehand.com>

	* src/io.c (io_iter): Handle POLLERR.

2001-03-07  Niels Möller  <nisse@cuckoo.localdomain>

	* doc/TODO: scsh-0.5.2 is truly free software! Removed paragraph
	describing the scsh situation.

	* README: Say that scsh-0.5.2 is needed.

	* src/scm/guile-compat.scm (char-set=): New function,
	for compatibility with scsh-0.5.2.
	(char-set:empty): New variable, likewise.

	* src/scm/make-char-classes.scm (char-set-assoc): A real function
	now, as I'm not sure that the usual assoc handles char-sets.
	(char-set-empty?): Use char-set:empty (new in scsh-0.5.2).
	(char-set=?): Removed function, scsh-0.5.2 provides a similar
	function named char-set=.
	
2001-02-28  Niels Möller  <nisse@cuckoo.localdomain>

	* src/client.c (init_client_options): Initialize stderr_fork = 1.
	(client_options): New option --no-cvs-workaround.
	(client_argp_parser): Handle --no-cvs-workaround.

2001-02-25  Niels Möller  <nisse@cuckoo.localdomain>

	* Refer to a function foo as "foo", not "foo()", in messages and
	comments. (GNU coding standard).

2001-02-22  Niels Möller  <nisse@cuckoo.localdomain>

	* src/randomness.c (do_arcfour_random): Spelling fix.

	* Released lsh-1.1.7.

2001-02-22  Niels Möller  <nisse@ehand.com>

	* src/io.c (close_fd_read): New function.
	(do_buffered_read): Call close_fd_read on EOF. This stops reading
	from the file, and also marks it for closing unless it has a write
	callback.
	(do_consuming_read): Likewise.

2001-02-21  Niels Möller  <nisse@ehand.com>

	* src/io.c (do_consuming_read): Added an assert do check that
	want_read is true. Check fd->hanged_up first.

2001-02-21  Niels Möller  <nisse@cuckoo.localdomain>

	* src/srp_exchange.c (srp_format_proofs): First argument to
	MAKE_MAC must not have side effects.

	* src/lsh-keygen.c (main): First argument to A_WRITE must not have
	side effects.

	* src/gateway_channel.c (do_gateway_channel_request): First
	argument to COMMAND_CALL must not have side effects.
	(do_channel_open_forward): Likewise.
	* src/lsh.c (do_options2identities): Likewise.

	* src/connection_commands.c (do_connection_if_srp): Don't use a
	complex expression as the first argument to COMMAND_CALL.

	* src/command.h (COMMAND_CALL): Generate a compile error if the
	first argument is not an lvalue.

2001-02-20  Niels Möller  <nisse@cuckoo.localdomain>

	* doc/HACKING: Added section CAVEAT.

2001-02-20  Niels Möller  <nisse@ehand.com>

	* src/io.c, src/io.h, src/reaper.c, src/unix_interact.c: Added
	volatile modifier to all uses of sig_atomic_t. 

	* src/client_userauth.c (do_userauth_success): Use verbose, not
	werror, for success message.

2001-02-19  Niels Möller  <nisse@cuckoo.localdomain>

	* src/testsuite/Makefile.am (TS_MORE_PROGS): Added
	lshg-tcpip-local-test.

2001-02-18  Niels Möller  <nisse@cuckoo.localdomain>

	* src/testsuite/tcpip-local-test: Don't pass -r to tcpconnect.
	grep the output from tcpconnect.
	* src/testsuite/tcpip-remote-test: Likewise.

	* src/testsuite/lshg-tcpip-local-test: New test case.

	* src/testsuite/functions.sh (spawn_lshg): New function.

	* src/argp/argp-parse.c (argp_default_parser): Let OPT_HANG print
	the process id to stderr.

	* src/resource.c (do_remember_resource): If the resource list is
	dead, immediately kill any resources added to it.

	* src/lsh.c (main_argp_parser): Check if the action list is empty
	at ARGP_KEY_END.
	* src/lshg.c (main_argp_parser): Likewise.

	* src/io.c (do_consuming_read): Don't close the fd on EOF.
	(do_buffered_read): Likewise.
	(sockaddr2info): Silently return NULL for AF_UNIX addresses. 

	* src/client.c (client_argp_parser): Don't check that the length
	of the action list is non-zero at ARGP_KEY_END. lsh.c may add a
	gatewaying action later.

	* configure.in: Bumped version to 1.1.7.

2001-02-13  Niels Möller  <nisse@cuckoo.localdomain>

	* src/sftp/sftp-test-client.c: Added more code from Pontus Sköld. 

2001-02-13  Niels Möller  <nisse@ehand.com>

	* src/channel.c (do_exc_finish_channel_handler): Check
	channel_count to determine if there are channels left. The code
	used to just check next_channel, which was broken.
	(alloc_channel): Update channel_count.
	(dealloc_channel): Likewise.
	(do_exc_finish_channel_handler): The handler for
	EXC_FINISH_PENDING shouldn't raise EXC_FINISH_READ.

	* src/channel.h (channel_table): New attribute channel_count.

	* src/bignum.c (bignum_random): Added a comment about biased
	numbers.

2001-02-11  Niels Möller  <nisse@cuckoo.localdomain>

	* src/sftp/sftp-server.c: Updated copyright notice to mention
	Markus Friedl.

	* src/sftp/filemode.c, src/sftp/filemode.h, src/sftp/idcache.c:
	New files, copied from GNU Fileutils-4.0. 

	* src/sftp/sftp-test-client.c: Added dummy functions do_ls,
	do_get, do_put and do_stat, and call them from main.

	* src/sftp/sftp-server.c: Merged code from Pontus Sköld.
	(sftp_put_longname_mode): New function.
	(sftp_put_longname): New function.
	(sftp_put_filename): New function.
	(getuser): New dummy function.
	(getgroup): New dummy function.

	* src/sftp/buffer.c: Let most output-related functions call exit()
	directly on failure.
	(sftp_put_reserve_length): New function, replacing sftp_put_reserve.
	(sftp_put_length): New function.
	(sftp_put_final_length): New function.
	(sftp_put_printf): New function.
	(sftp_put_strftime): New function.
	(sftp_clear_attrib): Moved here from sftp-server.c.
	(sftp_skip_extension): Likewise.
	(sftp_get_attrib): Likewise.
	(sftp_put_attrib): Likewise.

2001-02-11  Pavel Roskin  <proski@gnu.org>

	* acinclude.m4: Always quote first argument to AC_DEFUN
	to allow redefining existing macros.
	* configure.in: Quote the second argument to AC_SEARCH_LIBGMP.

2001-02-08  Niels Möller  <nisse@cuckoo.localdomain>

	* src/keyexchange.c (do_kexinit_filter): Don't crash if there are
	no appropriate hostkeys. 

2001-02-08  Niels Möller  <nisse@ehand.com>

	* src/dsa.c (generic_dsa_sign): Commented out debug statement that
	leaks information about the secret key. 

2001-02-07  Niels Möller  <nisse@cuckoo.localdomain>

	* src/algorithms.c (filter_algorithms): Document that the
	functions may return NULL, and never returns an empty list.

2001-02-04  Niels Möller  <nisse@lysator.liu.se>

	* Released lsh-1.1.6.

	* src/ssh-conv (SSH_CONV): Got rid of the bash:isms "if !" and
	"&>".

2001-02-04  Niels Möller  <nisse@cuckoo.localdomain>

	* doc/lsh.texinfo (Action options): Edited the description of the
	-g, not calling it "gateway mode", as the word "gateway" is
	associated with the '-G' option.
	(Invoking lshd): Documented --kerberos-passwords,
	--password-helper and --login-shell.
	Changed UPDATED-FOR to 1.1.6.

	* configure.in: Bumped version to 1.1.6.

	* src/testsuite/Makefile.am (TS_SH, TS_MORE_SH): Added a few more
	tests. 

	* src/testsuite/functions.sh: New variable HOSTKEY for configuring
	which hostkey to use.

	* src/unix_user.c (unix_user_db): New attribute login_shell.
	(do_lookup_user): Let self->login_shell, if non-NULL, override the
	login shell in the passwd database.
	(make_unix_user_db): New argument login_shell.

	* src/rsa_keygen.c (rsa_generate_key): Changed "e not invertible"
	message from werror() to debug().

	* src/lshd.c (main_options): New option --login-shell.

	* src/lsh-keygen.c (main): When generating an rsa key, display a
	better message before trying again.

	* src/client_keyexchange.c (do_handle_dh_reply): If the server's
	signature doesn't verify, display a warning message before
	disconnecting.

	* src/rsa.c (parse_ssh_rsa_public): Call rsa_check_size, to make
	sure that the ->size attribute is initialized.

	* src/testsuite/key-2.private: Created an RSA testkey.

	* src/testsuite/write-key-1-test, src/testsuite/write-key-2-test:
	Renamed keygen-test and keygen-2-test. 

	* src/testsuite/conv-2-test: New test for reading an openssh rsa
	key.

	* src/testsuite/conv-1-test: Renamed conv-test.

2001-01-31  Niels Möller  <nisse@ehand.com>

	* src/server_publickey.c (do_authenticate): Include algorithm atom
	in "Unknown publickey algorithm"-message.

	* src/process_atoms (table): Fixed first reverse entry, {
	"UNKNOWN", 7}.

	* src/lsh-authorize: Redirect output from the type command to
	/dev/null. 

	* src/server_password.c (do_authenticate): Don't free the username
	twice.

	* src/server_authorization.c (do_key_lookup): Support ssh-rsa
	keys.

	* src/lshd.c (main_argp_parser): Support RSA keys for publickey
	userauth.

	* src/io.c (io_iter): Changed POLLHUP handling some more. Now
	POLLHUP && !POLLIN is treated as EOF.

2001-01-31  Niels Möller  <nisse@cuckoo.localdomain>

	* src/testsuite/lsh-cat-test: Use compare_output.

	* src/testsuite/lsh-1-test: Use test_success. 
	* src/testsuite/lsh-2-test: Likewise. 
	* src/testsuite/lsh-3-test: Likewise. 
	* src/testsuite/lsh-4-test: Likewise. 
	* src/testsuite/tcpip-local-test: Likewise. 
	* src/testsuite/tcpip-remote-test: Likewise. 

	* src/testsuite/keygen-2-test: Use functions.sh and test_success. 
	* src/testsuite/keygen-test: Likewise.

	* src/testsuite/functions.sh (at_exit): Fixed the at_exit
	mechanism. The previous code always exited successfully.
	(test_result): New variable for keeping the desired exit status. 
	(test_fail): New function.
	(test_success): Likewise.
	(compare_output): Likewise.

	* src/testsuite/Makefile.am (TS_SH): Added conv-test.

	* src/testsuite/conv-test: New test program.

	* src/unix_random.c (background_poll): Changed werror() to debug().
	(start_background_poll): Changed werror() to verbose().

	* src/tcpforward.c (do_tcpip_eof): Removed channel close logic,
	now in channel.c, channel_of_handler.

	* src/ssh-conv: Don't look for lsh-decode-key in the current
	directory. Added command line options --help, --usage,
	--decode-with. 

	* src/server_session.c (do_eof): Removed channel close logic, now
	in channel.c, channel_of_handler.
	(do_exit_shell): Added a verbose() message.

	* src/lsh-decode-key.c: Include rsa.h. Added program name prefix
	to the diagnostic messages.

	* src/io.c (do_buffered_read, do_consuming_read): Don't call
	read() if fd->hanged_up is set.
	(init_file): Initialize hanged_up.

2001-01-30  Niels Möller  <nisse@cuckoo.localdomain>

	* src/io.c (io_iter): Improved handling of POLLHUP. Set the
	fd->hanged_up flag before calling FD_READ().

	* src/io.h (lsh_fd): New attribute hanged_up.

	* src/client.c (do_exit_status): Added a verbose() message.

	* src/channel.c (channel_read_close_callback): Call channel_eof, not
	channel_close. 
	(channel_eof_handler): Moved the channel close decision here.

2001-01-29  Niels Möller  <nisse@cuckoo.localdomain>

	* src/ssh-conv: Support ssh-rsa keys.

	* src/lsh-decode-key.c (do_decode_key): Support ssh-rsa keys.

2001-01-24  Niels Möller  <nisse@cuckoo.localdomain>

	* src/spki_commands.c (parse_private_key): Generate keypairs with
	algorithms ATOM_SSH_RSA, ATOM_SPKI_SIGN_RSA and ATOM_SPKI_SIGN_DSS.

	* src/rsa.c (do_rsa_verify): Replaced ATOM_RSA_PKCS1_SHA1 with
	ATOM_SSH_RSA, and replaced ATOM_SPKI with ATOM_SPKI_SIGN_RSA and
	ATOM_SPKI_SIGN_DSS.
	(do_rsa_sign): Likewise.
	(parse_ssh_rsa_public): New function.
	(make_ssh_rsa_verifier): New function.

	* src/pkcs5-test.c: Include both unistd.h and stdlib.h, do get a
	declaration of getopt().

	* src/lsh.c (do_lsh_lookup): Handle ATOM_SSH_RSA.
	(do_lsh_lookup): Replace ATOM_SPKI with ATOM_SPKI_SIGN_RSA and
	ATOM_SPKI_SIGN_DSS.

	* src/dsa.c (do_dsa_verify): Check that there's no trailing
	garbage.
	(do_dsa_verify): Replace ATOM_SPKI with ATOM_SPKI_SIGN_RSA and
	ATOM_SPKI_SIGN_DSS.
	(do_dsa_sign): Likewise.

	* src/atoms.in: Updated algorithm names to match
	draft-ietf-secsh-transport-09.txt. 

	* src/algorithms.c (algorithms_argp_parser): Replace ATOM_SPKI
	with ATOM_SPKI_SIGN_RSA and ATOM_SPKI_SIGN_DSS.
	(lookup_hostkey_algorithm): Likewise.

	* src/Makefile.am.in: Removed $(srcdir) prefixes from targets.
	* src/testsuite/Makefile.am (%.c): Likewise.

	* configure.in (PREFIX): Replace NONE with $ac_default_prefix.
	(SBINDIR): MAke a #define from sbindin. Currently broken. 

	* acconfig.h: Added SBINDIR.

2001-01-23  Niels Möller  <nisse@ehand.com>

	* src/tcpforward.c (do_tcpip_eof): Call shutdown(socket, SHUT_WR),
	to signal to the local peer that there's no more data.

2001-01-18  Niels Möller  <nisse@cuckoo.localdomain>

	* src/lshd.c (KERBEROS_HELPER): Added /sbin/ between PREFIX and the
	program name. Note that PREFIX seems to get a bogus value "NONE"
	if the default prefix is used.

	* src/sftp: New directory. Not compiled or used by default.

2001-01-17  Niels Möller  <nisse@cuckoo.localdomain>

	* src/lsh_types.h: Improved formatting.

	* src/channel.c (alloc_channel): Use UINT32, not int, for
	new_size. 

2001-01-15  Niels Möller  <nisse@ehand.com>

	* misc/bootstrap.sh: Fixed comment.

	* src/argp/argp.h: #define PRINTF_STYLE, and use it instead of
	using __attribute__ directly.

	* src/lsh-keygen.c (main_argp_parser): Don't use optarg (reported
	by jps).

	* Added Markus Friedl's sftp-server.c to contrib, for some random
	hacking. 

2001-01-10  Niels Möller  <nisse@lysator.liu.se>

	* src/pkcs5-test.c: Include stdlib.h instead of getopt.h. 

2001-01-10  Niels Möller  <nisse@cuckoo.localdomain>

	* Released lsh-1.1.5.

	* configure.in: Bumped version to 1.1.5.

2001-01-09  Niels Möller  <nisse@cuckoo.localdomain>

	* src/rsync/send.c: Deleted old code.

	* src/rsync/send.c (rsync_send_init): Rewrote. Allocates a
	slightly larger buffer.
	(rsync_send_eof): New function.
	(rsync_send_copy_in): Deleted th dst argument. Update sum_md5 and
	size.
	(rsync_send_read): New function.
	(rsync_send_search): New function.
	(rsync_send_flush): New function.
	(rsync_send_write): New function.
	(rsync_send): Rewrote and simplified. Now uses fewer states,
	simpler eof handling, and calls several smaller functions.

	* src/rsync/rsync.h (RSYNC_SUM_SIZE): Rename RSYNC_SUM_LENGTH.
	(rsync_result_t): New enum for return types.
	(struct rsync_receive_state): Renamed attribute full_sum to
	sum_md5. 
	(struct rsync_receive_state): Made the state attribute an enum.
	Moved the constants from receive.c, and renamed them to use a
	RSYNC_RECIEVE_-prefix. 
	(struct rsync_send_state): Changed state and buffering.

	* src/rsync/generate.c, src/rsync/receive.c, src/rsync/send.c,
	src/rsync/rsync.h: Changed return types from int to enum
	rsync_result_t.

	* src/rsync/checksum.c (rsync_search): Renamed argument FOUND to
	DONE, and set it properly for both successful and unsuccessful
	searches.

	* src/rsync/receive.c (rsync_receive_mode): Use an enum instead of
	defines.
	(rsync_update): Hash data on output.
	(rsync_receive) STATE_LITERAL: Update avail_in and next_in after calling rsync_update.

2001-01-07  Niels Möller  <nisse@cuckoo.localdomain>

	* src/argp/argp.h: Added _argp_short_program_name and
	__argp_short_program_name. 

	* src/argp/argp-parse.c (parser_init): Use
	argp_short_program_name. 
	(parser_parse_next): Removed old permutation handling code. 

2001-01-06  Niels Möller  <nisse@cuckoo.localdomain>

	* src/argp/argp-namefrob.h: Added _argp_short_program_name.

2001-01-02  Niels Möller  <nisse@cuckoo.localdomain>

	* src/argp/argp-help.c (hol_entry_help): Avoid using a
	non-constant struct initializer.
	(UNUSED): Define as a macro expanding to __attribute__ ..., if
	compiling with gcc.

	* src/argp/argp-fmtstream.h (PRINTF_STYLE): Define this macro,
	to expand to __attribute__ ... if compiling with gcc.

	* src/argp/argp-fmtstream.c (__argp_fmtstream_write,
	__argp_fmtstream_puts, __argp_fmtstream_putc): Duplicate the
	inline definitions in argp-fmtstream.h, for compilers that don't
	do inlining.

	* src/unix_random.c (random_sources): Fixed bug in initialization
	of the HAS_ALTERNATIVE fields. Noted by jps.

2000-12-28  Niels Möller  <nisse@cuckoo.localdomain>

	* src/lsh.c: Don't include unistd.h.
	(main_argp_parser): Fixed bogus references to optarg (reported by
	jps). 

	* src/argp/argp-help.c (fill_in_uparams): Use unsigned char * for
	VAR and ARG. Fixed calls of isalnum, isspace and friends, reported
	by Kalle Olavi Niemitalo.
	(canon_doc_option): Fixed calls of isalnum, isspace and friends,
	reported by Kalle Olavi Niemitalo.
	(hol_entry_cmp): Fixed calls of tolower, reported by Kalle Olavi
	Niemitalo.

2000-12-23  Niels Möller  <nisse@cuckoo.localdomain>

	* Released lsh-1.1.4.

2000-12-23  Niels Möller  <nisse@lysator.liu.se>

	* src/argp/acinclude.m4: New file. 
	* src/argp/acinclude.m4: Reverted the definition of AC_CHECK_VAR
	to take includes as argument, and renamed it to ARGP_CHECK_VAR.

2000-12-23  Niels Möller  <nisse@cuckoo.localdomain>

	* src/Makefile.am.in (EXTRA_DIST): Removed references to the
	getopt files getopt.c, getopt.h and getopt1.c.

	* configure.in: Removed getopt-related tests (previously just
	commented out).

2000-12-23  Niels Möller  <nisse@lysator.liu.se>

	* src/getopt.c, src/getopt1.c, src/getopt.h: Removed.

2000-12-22  Niels Möller  <nisse@lysator.liu.se>

	* src/testsuite/Makefile.am (LDADD): Link with libargp.
	($(srcdir)/%.c): Fix $(srcdir)-handling.

	* src/Makefile.am.in (bootstrap): New target, replaces the
	post-configure work previously done by misc/bootstrap.sh

	* Makefile.am.in (bootstrap): New target.

2000-12-11  Niels Möller  <nisse@cuckoo.localdomain>

	* Removed getopt.c, getopt.h and getopt1.c from the src/argp
	directory. 

	* src/lsh.c (do_options2identities): Pass two alists to
	make_spki_read_userkeys (reported by jps).

	* src/spki_commands.c (make_spki_read_userkeys): Use separate
	alists for symmetric algorithms and signature algorithms (reported
	by jps).

	* src/abstract_crypto.c (crypt_string_unpad): Adjust length
	properly (reported by jps).

	* src/argp/argp-parse.c (match_option, ARGP_COMPLETE): #if:ed out
	completion code for long options.

2000-12-09  Niels Möller  <nisse@cuckoo.localdomain>

	* src/Makefile.am.in (LDADD, lshg_LDADD): Use @LIBARGP@

	* misc/bootstrap.sh: Use set -e. Bootstrap in the src/argp
	subdirectory. 

2000-11-30  Niels Möller  <nisse@cuckoo.localdomain>

	* src/argp/argp-parse.c (match_option): Better abbreviations.
	Replaced try_getopt with args_only, changed calling convention for
	parser_parse_arg. 

	* src/argp/configure.in: Don't check for getopt.

	* src/argp/argp.h: Don't include getopt.h.

	* src/argp/argp-parse.c (calc_sizes): Updated comment.

2000-11-29  Niels Möller  <nisse@cuckoo.localdomain>

	* src/argp/configure.in: Use AC_REPLACE_FUNCS for mempcpy, strndup
	and strchrnul.
	(AC_CHECK_VAR): Changed second argument to take the type of the
	variable. 

	* src/argp/argp-parse.c (struct parser): New fields
	posixly_correct and ordering.
	(parser_init): Choose ordering.
	(enum arg_type): New value ARG_LONG_ONLY.
	(parser_parse_next): Added error messages similar to getopt's. 

	* src/argp/argp-help.c (STRNDUP): New macro to refer to strndup
	or __strndup, as appropriate.
	(STRERROR): Define this macro as a wrapper for strerror or
	sys_errlist. 
	(__argp_basename): New function.

	* src/argp/argp-namefrob.h (__argp_basename): Added
	__argp_basename. 

	* src/argp/Makefile.am (libargp_a_LIBADD): Include LIBOBJS in
	libargp.a. 

	* src/argp/argp.h: Added prototype for _argp_basename and
	__argp_basename. 

	* src/argp/strndup.c, src/argp/strchrnul.c src/argp/mempcpy.c:
	Moved replacement functions to separate files.

2000-11-28  Niels Möller  <nisse@cuckoo.localdomain>

	* src/argp/argp-parse.c: Deleted getopt-related code.
	(struct parser): New field nextchar. Deleted fields try_getotp and long_opts.
	(find_short_option): New function.
	(match_option): New function.
	(find_long_option): New function.
	(struct parser_convert_state): Deleted field long_end.
	(convert_options): Don't build getopt_long-style option array. 
	(parser_convert): Deleted FLAGS arument.
	(struct parser_sizes): Deleted field long_len.
	(parser_init): Set short_opts to NULL, unless ARGP_LONG_ONLY is
	used. 
	(classify_arg): New function.
	(parser_parse_next): Don't use getopt_long().

2000-11-27  Niels Möller  <nisse@cuckoo.localdomain>

	* configure.in: Use AC_LIB_ARGP.

	* acinclude.m4 (AC_LIB_ARGP): New test.

	* src/argp/argp-help.c (argp_doc): Use the name strndup, not
	__strndup. That probably breaks glibc builds.

2000-11-27  Niels Möller  <nisse@lysator.liu.se>

	* src/argp/argp-test.c (asprintf): Bug fix.

	* src/argp/argp.h: Dummy definition of __THROW.

	* src/argp/argp-test.c: Fixed asprintf implementation.

	* src/argp/argp-parse.c (__argp_usage, __option_is_short,
	__option_is_end): Define these function, in case the user isn't
	inlining them.

	* src/argp/argp-help.c: #define __mempcpy if needed. Use unsigned
	arguments to the ctype macros. Handle systems where
	program_invocation_name and program_invocation_short_name doesn't
	exist.
	* src/argp/argp-help.c (short_program_name): New function.

	* src/argp/Makefile.am: Use @LIBOBJS@ when building test program. 

	* src/argp/configure.in: Check for getopt_long. Substitute
	LIBOBJS. Add -I$srcdir to CPPFLAGS.

	* src/argp: Added getopt.h, getopt.c and getopt1.c, which are
	needed for separate compilation of argp.

2000-11-27  Niels Möller  <nisse@cuckoo.localdomain>

	* Updated argp from glibc-2.2.

	* Released lsh-1.1.3.

	* src/client.c (client_argp_parser): Handle remote_forward
	properly, and install a channel_open_forwarded_tcpip handler if
	needed (recovered from an earlier lsh.c). Some other cleanup.

	* src/abstract_crypto.h: Some cleanup.
	* src/abstract_io.h: Likewise.
	* src/channel.c: Likewise.
	* src/channel.h: Likewise.
	* src/channel_commands.h: Likewise.
	* src/connection.h: Likewise.
	* src/connection_commands.c: Likewise.
	* src/dh_exchange.c: Likewise.
	* src/exception.h: Likewise.
	* src/gateway.c: Likewise.
	* src/gateway_channel.c: Likewise.
	* src/gateway_commands.c: Likewise.
	* src/handshake.c: Likewise.
	* src/handshake.h: Likewise.
	* src/io.h: Likewise.
	* src/io_commands.c: Likewise.
	* src/io_commands.h: Likewise.
	* src/keyexchange.h: Likewise.
	* src/lsh.c: Likewise.
	* src/lsh_proxy.c: Likewise.
	* src/lshg.c: Likewise.
	* src/publickey_crypto.h: Likewise.
	* src/randomness.c: Likewise.
	* src/randomness.h: Likewise.
	* src/read_packet.c: Likewise.
	* src/rsa.c: Likewise.
	* src/server_pty.h: Likewise.
	* src/server_session.c: Likewise.
	* src/sexp.h: Likewise.
	* src/sexp_parser.c: Likewise.
	* src/sexp_streamed_parser.c: Likewise.
	* src/sexp_test.c: Likewise.
	* src/spki_commands.c: Likewise.
	* src/spki_commands.h: Likewise.
	* src/ssh1_fallback.c: Likewise.
	* src/tcpforward.c: Likewise.
	* src/unix_random.c: Likewise.
	* src/zlib.c: Likewise.

2000-11-26  Niels Möller  <nisse@cuckoo.localdomain>

	* src/parse.c (parse_rest, parse_rest_copy): Renamed parse_rest to
	parse_rest_copy. New function parse_rest.

	* src/gateway_channel.c (do_gateway_channel_request): Use
	format_channel_request_i(). 
	(gateway_channel_open_continuation): New attribute fallback.
	(do_gateway_channel_open_continuation): Set the target channel's
	request_fallback pointer.
	(do_channel_open_forward): Set the origin channel's
	request_fallback pointer.

	* src/channel.h (ssh_channel): Added request_fallback attribute.
	(channel_request_info): New struct.
	(channel_request): Use a channel_request_info argument.

	* src/channel.c (parse_channel_request): New function.
	(DEFINE_PACKET_HANDLER): Use parse_channel_request. Invoke request
	fallback if appropriate.
	(init_channel): Initialize request_fallback = NULL.
	(format_channel_open_s): Use a struct lsh_string for the type
	argument. 
	(format_channel_request_i): New function.

	* src/spki_commands.c (spki_read_userkeys): Try to decrypt the key.
	(make_spki_read_userkeys): New argument tty. If supplied, try to
	decrypt password protected keys.

	* src/proxy_agentforward.c (do_proxy_open_auth_agent): Updated to
	use struct channel_open_info.
	* src/proxy_x11forward.c (do_proxy_open_x11): Likewise.
	* src/proxy_tcpforward.c (do_proxy_open_direct_tcpip): Likewise.
	* src/proxy_session.c (do_proxy_open_session): Likewise.
	* src/server_session.c (do_open_session): Likewise.
	* src/tcpforward.c: Likewise.

	* src/parse.c (parse_rest): New function.

	* src/lshg.c: Use new client.c option parsing.

	* src/lsh_proxy.c: Adapted to stricter alist typing.
	* src/lshd.c: Likewise.
	* src/reaper.c: Likewise.
	* src/server_publickey.c: Likewise.
	* src/spki.c: Likewise.

	* src/lsh.c: Moved some of the option parsing to client.c.

	* src/gateway_commands.c (gateway_make_connection): Install an
	open_fallback. 

	* src/gateway_channel.c (gateway_channel_open_command): Use a
	string instead of an atom to represent the chennel type. 
	(do_gateway_channel_open): Use format_channel_opn_s(). 
	(make_gateway_channel_open_command): Take an struct
	channel_open_info * as argument.
	(do_channel_open_forward): New function.
	(gateway_channel_open_forward): Channel open handler that forwards
	any channel open request, of any type. 

	* src/client_session.c (client_session_channel): Renamed the
	class client_session.

	* src/client.h (CLIENT_ARGP_ACTION_GROUP): New constant.
	(CLIENT_ARGP_MODIFIER_GROUP): New constant.
	(client_options): New class.

	* src/client.c: Moved most of the option parsing from lsh.c to
	this file.

	* src/channel.c (make_channel_table): Initialize open_fallback =
	NULL; 
	(global_request_handler): Prepared for using a fallback handler.
	(channel_request_handler): Likewise.
	(channel_open_continuation): Renamed attributes to
	send_window_size and send_max_packet.
	(parse_channel_open): New function.
	(DEFINE_PACKET_HANDLER): Use parse_channel_open. Invoke
	open_fallback if there's no more specific handler for the channel
	type. 
	(format_channel_open_s): New function.
	(format_channel_open_a): New function (currently #if:ed out).

	* src/channel.h (struct channel_open_info): New struct to
	represent the common information in SSH_MSH_CHANNEL_OPEN.
	(channel_table): New attribute open_fallback.
	(channel_open): Use a channel_open_info for the arguments.

	* src/alist.h (alist): Use struct lsh_object *, not void *, to
	pass values.

	* src/alist.c (alist_select): New function.

	* src/algorithms.c (make_algorithms_options): New function.

	* doc/TODO: Some updates.

	* configure.in: Bumped version to 1.1.3.

2000-11-20  Niels Möller  <nisse@cuckoo.localdomain>

	* src/algorithms.h, src/client.h, src/client_keyexchange.c,
	src/client_userauth.c, src/connection.c, src/format.h,
	src/interact.c, src/interact.h, src/io.c, src/io.h,
	src/lsh-writekey.c, src/lsh.c, src/lshd.c, src/reaper.c,
	src/reaper.h, src/server_session.c, src/spki.c,
	src/spki_commands.c, src/srp-gen.c, src/tty.c, src/tty.h: Removed
	old #if:ed out code.

	* ChangeLog: Rotated ChangeLog, creating ChangeLog.2. 

