Tue Feb 27 17:55:25 2001,  Damion Parry <damion.parry@idaya.co.uk>

	* vsdadm.c: forgot to check that argv[1] was valid before passing
	  it to strrchr. Fixed.

Tue Feb 27 13:23:42 2001,  Damion Parry  <damion.parry@idaya.co.uk>

        * vsdadm.c (main): Added checks for 'operation' command line argument

Thu Feb  8 15:40:04 2001  Nick Burrett  <nick@dsvr.net>

	* vsd.c (process_requests): Fix thinko in last change.

Tue Feb  6 17:08:20 2001  Nick Burrett  <nick@dsvr.net>

	* vsd.c (process_requests): Allow a client connecting with
	the `<root>' certificate access to all virtual servers.

Tue Dec 19 11:28:00 2000  Tim Sellar <tim@idaya.net>

	* vsdadm.c (vsd_send_vcommand): remove extra va_end (ap).

Thu Nov  9 14:12:37 2000  Nick Burrett  <nick@dsvr.net>

	* vsdadm.c (main): Always use <root> cert if command is ADMIN_HOST.

Tue Nov  7 15:33:16 2000  Nick Burrett  <nick@dsvr.net>

	* vsdadm.c (main): The minimum number of arguments to supply is
	two.

Tue Nov  7 10:21:39 2000  Nick Burrett  <nick@dsvr.net>

	* mod_quota/mod_quota.c (clist): Change syntax description of
	QUOTA_VSSET.
	* mod_quota/quota.c (vs_user_stats): Return if vsd_passwd_load fails.
	(quota_userget): Report error if vsd_passwd_load fails.
	(quota_stats): Likewise.
	(quota_usetset): Likewise.  Remove new-lines from error strings.
	(quota_vsset): Fix quota off-by-1024 miscalculation.  Report error
	if vs_user_stats fails.

	* mod_raw/mod_raw.c (clist): Add vs argument to RAW_IO.
	(mod_raw_cmd): Adjust argv position due to the above.

	* mod_vs/mod_vs.c (mod_vs_cmd): Fix error introduced by last change.
	Reverse vsd_set_level logic, and don't pass argument to VS_DETAILS.
	
Mon Nov  6 16:57:58 2000  Nick Burrett  <nick@dsvr.net>

	* io.c (io_initialise [WITH_OPENSSL]): Accept certificates that
	have no email address field.

Mon Nov  6 14:07:38 2000  Nick Burrett  <nick@dsvr.net>

	* vsdadm.c (main): Fix off-by-one error in argc value
	passed to module_command.

Mon Nov  6 12:33:04 2000  Nick Burrett  <nick@dsvr.net>

	* vsd.c (signalhandler): Fix spelling mistake.

Mon Nov  6 10:53:31 2000  Nick Burrett  <nick@dsvr.net>

	* module.c (module_command): Add argc parameter.  Call
	command_function with argc parameter.
	(module_help): Increase command field to 20 characters.
	* module.h (command_func): Add argc parameter.
	(module_command): Likewise.
	* vsd_lib.h (vsd_send_vcommand): Add declaration.
	* vsdadm.c (vsd_send_vcommand): New function.
	Improve descriptions of all functions.
	(main): Add argc to module_command call.
	* mod_apache/mod_apache.c (mod_apache_cmd): Add argc parameter.
	* mod_priv/mod_priv.c (mod_priv_cmd): Likewise.
	* mod_quota/mod_quota.c (mod_quota_cmd): Likewise.
	* mod_raw/mod_raw.c (mod_raw_cmd): Likewise.
	* mod_sendmail/mod_sendmail.c (mod_sendmail_cmd): Likewise.
	* mod_user/mod_user.c (mod_user_cmd): Likewise.
	* mod_vs/mod_vs.c (mod_vs_cmd): Likewise.

	* mod_vs/mod_vs.c (mod_vs_cmd): Set appropriate level according
	to VS_DETAILS parameter.
	
Sun Nov 05 14:40:03 2000  Tim Sellar  <tim@idaya.net>

	* configure.in: Correct definition of WITH_OPENSSL.

Wed Oct 25 14:05:48 2000  Nick Burrett  <nick@dsvr.net>

	* vsd_lib.h (vsd_raw_reply): Add declaration.
	* vsdadm.c (vsd_raw_reply): New function.
	* mod_raw: New module. 	Expose protocol to a remote application.
	Effectively this tunnels a connection to VSD, which is useful for
	apps that don't support SSL connections.
	* mod_raw/mod_raw.c: New file.
	* mod_raw/mod_raw.h: New file.
	* mod_raw/raw.c: New file.
	* mod_raw/raw.h: New file.
	* mod_raw/Makefile.in: New file.
	* mod_raw/configure.in: New file.
	* mod_raw/config.h.in: New file.
	
Wed Oct 25 09:18:05 2000  Nick Burrett  <nick@dsvr.net>

	* io.c (io_initialise): Set alarm so that we don't get stuck waiting
	for an SSL negotiation.
	(output [SSL]): Allow an unencrypted string to be output, even
	if the SSL layer has not been initialised.
	* module.c: Minor comments.
	* vsd.c (clkint, trmint): Delete functions.
	(signalhandler): New function - an amalgamation of clkint and trmint
	with extra handling for SIGKILL and SIGSEGV.
	(main): Setup signal handlers for SIGKILL and SIGSEGV and change
	all to use `signalhandler'.  Change sign-off message.
	(process_requests): Remove debug code.
	* vsdadm.c: Turn off debugging.

Mon Oct 23 14:32:27 2000  Nick Burrett  <nick@dsvr.net>

	Remove code duplication within VSD modules and support SSL
	connections from vsdadm.
	* vsd_lib.h (struct _vsd_server): Delete struct definition.
	(vsd_open, vsd_close): Delete function declarations.
	(vsd_close, vsd_replay_success): Replace vsd_server parameter
	with an abstracted parameter given as a void pointer.
	(vsd_send_line, vsd_read_file, vsd_send_command): LIkewise.
	(vsd_send_command_file): Likewise.
	(vsd_set_level): Declare function.
	* vsdadm.c (struct io_svr): Add struct definition - this is a
	relocation of struct _vsd_server from vsd_lib.h.
	(adm_io_read): New function. An abstraction to provide a common
	interface for SSL and non-SSL operations.
	(adm_io_write): Likewise.
	(adm_io_initialise): Likewise. This is a combination of code from
	client.c, vsd_open and establish_connection.
	(adm_io_finalise): Renamed from vsd_close.  Add code for SSL
	connection cleanup.
	(vsd_get_line): Rename argument from `vsd' to `io'.  Fixup all
	references.  Use adm_io_read to read data from socket.
	(vsd_send_line): Likewise, but use adm_io_write.
	(vsd_open): Delete function.
	(vsd_close): Delete function.
	(vsd_reply_success): Rename argument from `vsd' to `io' and change
	it to void*.
	(vsd_process_reply): Likewise.
	(vsd_read_file): Likewise.
	(vsd_send_command, vsd_send_command_file): Likewise.
	(vsd_set_level): New function.
	(main): Fixup to use new adm_io* functions.  module_syntax has
	been replaced by the more versatile module_check_cmd.
	* module.c (module_command): Change `server' parameter to void* io.
	(module_help): Do all work here, rather than relying on each
	module to implement a function.
	(module_check_cmd): New function - the replacement of module_syntax.
	(module_syntax): Delete function.
	* module.h (struct module): Delete help_func.
	(syntax_func, command_func): Change definitions to use void* io rather
	than a vsd_server type.
	* mod_apache/mod_apache.c (mod_apache_check_cmd): New function.
	(mod_apache_syntax, mod_apache_list_help): Delete functions.
	(apache_module): Delete mod_apache_list_help reference.
	* mod_priv/mod_priv.c (mod_priv_check_cmd): New function.
	(mod_priv_syntax, mod_priv_list_help): Delete functions.
	(priv_module): Delete mod_priv_list_help reference.
	* mod_quota/mod_quota.c (mod_quota_check_cmd): New function.
	(mod_quota_syntax, mod_quota_list_help): Delete functions.
	(quota_module): Delete mod_quota_list_help reference.
	* mod_sendmail/mod_sendmail.c (mod_sendmail_check_cmd): New function.
	(mod_sendmail_syntax, mod_sendmail_list_help): Delete functions.
	(sendmail_module): Delete mod_sendmail_list_help reference.
	* mod_user/mod_user.c (mod_user_check_cmd): New function.
	(mod_user_syntax, mod_user_list_help): Delete functions.
	(user_module): Delete mod_user_list_help reference.
	* mod_vs/mod_vs.c (mod_vs_check_cmd): New function.
	(mod_vs_syntax, mod_vs_list_help): Delete functions.
	(vs_module): Delete mod_vs_list_help reference.
	* Makefile.in (vsdadm.o): Add -DSSL_BASE to $(CC) line.
	* vsd.c (process_requests): Replace call to module_syntax with
	a call to module_check_cmd.  Fix typo in io_collect_output call
	in SSL connections.
	* mod_vs/mod_vs.c (mod_vs_cmd, case CMD_VS_DETAILS): If a VS
	argument is given, then connect as the virtual server.
	* client.c: Delete file.
	* Makefile.in (all): Remove @ssl_client@.
	(client.o, client): Delete dependencies and targets.
	(clean): Delete 
	* configure.in (AC_CHECK_FUNCS): Remove check for _syscall1.
	(ssl_client): Delete variable and all references to it.

Wed Oct 18 10:57:33 2000  Nick Burrett  <nick@dsvr.net>

	* mod_quota/quota.c (quota_vsset): Fix bug that set quota to the
	relative value rather than the calculated value.

Fri Sep 15 12:59:59 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in (AC_CHECK_HEADERS): Remove endian.h, machine/endian.h,
	asm/unistd.h and sys/syscall.h.
	* vsd_lib.h (vsd_send_file): Delete decl.
	(vsd_read_file): Add decl.
	* vsdadm.c: Don't include asm/unistd.h or sys/syscall.h.  Include
	sys/stat.h.
	(vsd_send_file): Delete function.  Obsoleted through protocol changes
	done months ago.
	(vsd_read_file): Add function.  The alternative to vsd_send_file.
	* mod_sendmail/mod_sendmail.c (mod_sendmail_cmd): Change
	CMD_SENDMAIL_VMODIFY to use new vsd_read_file and pass the buffer
	to vsd_send_command.

Thu Sep 14 14:33:20 2000  Nick Burrett  <nick@dsvr.net>

	* vsd.c (malloc_options): Define, but #if 0 out - useful for
	debugging.
	(process_requests): Don't strdup vsd_map_server_root.
	Don't free memory allocated to vc->server_root.

Thu Sep 14 14:30:08 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in: Check for libkvm, for compiling on FreeBSD.

Mon Sep 11 15:27:02 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_account_enable): Don't send a SIGHUP to vsd-inetd.
	(vs_account_disable): Likewise.

Mon Sep  4 14:23:49 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/mod_vs.c (mod_apache_cmd [VSD_LIB]): Initialise `status'.
	* mod_priv/mod_priv.c (mod_priv_cmd [VSD_LIB]): Likewise.
	* mod_quota/mod_quota.c (mod_quota_cmd [VSD_LIB]): Likewise.
	* mod_sendmail/mod_sendmail.c (mod_sendmail_cmd [VSD_LIB]): Likewise.
	* mod_user/mod_user.c (mod_user_cmd [VSD_LIB]): Likewise.
	* mod_vs/mod_vs.c (mod_vs_cmd [VSD_LIB]): Likewise.
	
Wed Aug 30 12:28:59 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/mod_user.c (mod_user_check_syntax): Allow for a variable
	number of arguments.
	* mod_priv/mod_priv.c (mod_priv_check_syntax): Likewise.
	* mod_quota/mod_quota.c (mod_quota_check_syntax): Likewise.
	* mod_sendmail/mod_sendmail.c (mod_sendmail_check_syntax): Likewise.
	* mod_user/mod_user.c (mod_user_check_syntax): Likewise.
	* mod_vs/mod_vs.c (mod_vs_check_syntax): Likewise.

Wed Aug 30 09:45:46 2000  Nick Burrett  <nick@dsvr.net>

	* mod_quota/Makefile.in (mod_quota_lib.o): Add libvsd to the
	search path.

Wed Aug 30 08:57:04 2000  Nick Burrett  <nick@dsvr.net>

	Clean up module interface.
	* module.h (ADMIN_CLIENT): Delete macro.
	(struct command_tag): Delete client_command, client_command_args,
	client_command_syntax, syntax and num_args.  Add vsd_tag, vsd_args,
	vsd_syntax, vsdadm_tag, vsdadm_args, vsdadm_syntax.
	* module.c (module_lookup_command): Support new command_tag struct.
	Create a VSD_LIB specific search.
	* vsd_lib.h (vsd_open): Remove virtual_server, username and password
	arguments.
	* vsdadm.c (vsd_open): Likewise.  Remove all username code.  Don't
	set server->virtual_server.
	(main): Check length of virtual server argument.  Set
	server->virtual_server here.
	* mod_apache/Makefile.in (mod_apache_lib.o): Built from mod_apache.c.
	(mod_apache.o, mod_apache_lib.o): Combine into one dependency.
	* mod_priv/Makefile.in (mod_priv_lib.o): Likewise
	(mod_priv.o, mod_priv_lib.o): Combine.
	* mod_quota/Makefile.in (mod_quota_lib.o): Likewise
	(mod_quota.o, mod_quota_lib.o): Combine.
	* mod_sendmail/Makefile.in (mod_sendmail_lib.o): Likewise
	(mod_sendmail.o, mod_sendmail_lib.o): Combine.
	* mod_user/Makefile.in (mod_user_lib.o): Likewise
	(mod_user.o, mod_user_lib.o): Combine.
	* mod_vs/Makefile.in (mod_vs_lib.o): Likewise
	(mod_vs.o, mod_vs_lib.o): Combine.
	* mod_apache/mod_apache_lib.c: Delete file.
	* mod_priv/mod_priv_lib.c: Delete file.
	* mod_quota/mod_quota_lib.c: Delete file.
	* mod_sendmail/mod_sendmail_lib.c: Delete file.
	* mod_user/mod_user_lib.c: Delete file.
	* mod_vs/mod_vs_lib.c: Delete file.
	* mod_apache/mod_apache.c (clist): New command_tag struct.  This is
	a combined version of mod_apache_command_table and
	mod_apache_command_list.
	(mod_apache_command_table): Delete struct.
	(mod_apache_check_syntax): Support VSD and VSDADM versions.
	(mod_apache_list_help [VSD_LIB]): Taken from mod_apache_lib.c.
	(mod_apache_cmd [VSD_LIB]): From mod_apache_lib.c::mod_apache_do_cmd.
	(mod_apache_cmd [! VSD_LIB]): Renamed from mod_apache_transaction.
	(apache_module): Call mod_apache_cmd.
	* mod_priv/mod_priv.c (clist): New command_tag struct.  This is
	a combined version of mod_priv_command_table and
	mod_priv_command_list.
	(mod_priv_command_table): Delete struct.
	(mod_priv_check_syntax): Support VSD and VSDADM versions.
	(mod_priv_list_help [VSD_LIB]): Taken from mod_priv_lib.c.
	(mod_priv_cmd [VSD_LIB]): From mod_priv_lib.c::mod_priv_do_cmd.
	(mod_priv_cmd [! VSD_LIB]): Renamed from mod_priv_transaction.
	(priv_module): Call mod_priv_cmd.
	* mod_quota/mod_quota.c (clist): New command_tag struct.  This is
	a combined version of mod_quota_command_table and
	mod_quota_command_list.
	(mod_quota_command_table): Delete struct.
	(mod_quota_check_syntax): Support VSD and VSDADM versions.
	(mod_quota_list_help [VSD_LIB]): Taken from mod_quota_lib.c.
	(mod_quota_cmd [VSD_LIB]): From mod_quota_lib.c::mod_quota_do_cmd.
	(mod_quota_cmd [! VSD_LIB]): Renamed from mod_quota_transaction.
	(quota_module): Call mod_quota_cmd.
	* mod_sendmail/mod_sendmail.c (clist): New command_tag struct.  This is
	a combined version of mod_sendmail_command_table and
	mod_sendmail_command_list.
	(mod_sendmail_command_table): Delete struct.
	(mod_sendmail_check_syntax): Support VSD and VSDADM versions.
	(mod_sendmail_list_help [VSD_LIB]): Taken from mod_sendmail_lib.c.
	(mod_sendmail_cmd [VSD_LIB]): From
	mod_sendmail_lib.c::mod_sendmail_do_cmd.
	(mod_sendmail_cmd [! VSD_LIB]): Renamed from mod_sendmail_transaction.
	(sendmail_module): Call mod_sendmail_cmd.
	* mod_user/mod_user.c (clist): New command_tag struct.  This is
	a combined version of mod_user_command_table and
	mod_user_command_list.
	(mod_user_command_table): Delete struct.
	(mod_user_check_syntax): Support VSD and VSDADM versions.
	(mod_user_list_help [VSD_LIB]): Taken from mod_user_lib.c.
	(mod_user_cmd [VSD_LIB]): From mod_user_lib.c::mod_user_do_cmd.
	(mod_user_cmd [! VSD_LIB]): Renamed from mod_user_transaction.
	(user_module): Call mod_user_cmd.
	* mod_vs/mod_vs.c (clist): New command_tag struct.  This is
	a combined version of mod_vs_command_table and
	mod_vs_command_list.
	(mod_vs_command_table): Delete struct.
	(mod_vs_check_syntax): Support VSD and VSDADM versions.
	(mod_vs_list_help [VSD_LIB]): Taken from mod_vs_lib.c.
	(mod_vs_cmd [VSD_LIB]): From mod_vs_lib.c::mod_vs_do_cmd.
	(mod_vs_cmd [! VSD_LIB]): Renamed from mod_vs_transaction.
	(vs_module): Call mod_vs_cmd.
	
Mon Aug 21 10:24:03 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/mod_vs_lib.c (mod_vs_command_list): vs_modify was
	set to call vs_signal.

Thu Aug 17 15:31:24 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in: Bump to version 1.4.5.

Wed Aug 16 14:00:31 2000  Nick Burrett  <nick@dsvr.net>

	* io.c (io_parse_input): Accept any virtual server.
	* vsd.c (process_requests): Filter out bogus virtual servers
	here so that we can return an appropriate error message.

Fri Aug 11 14:40:17 2000  Nick Burrett  <nick@dsvr.net>

	* mod_apache/apache.c (check_syntax_with_httpd): Run the
	webserver syntax check as user web.

Thu Aug 10 07:40:38 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in: Bump to version 1.4.4.

Mon Aug  7 12:53:49 2000  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (virt_add_entry): Spot `..' sequence
	and addresses with two `@' characters.
	(load_virtusertable): Alter error message to better explain
	the errors returned by virt_add_entry.

Mon Aug  7 09:29:33 2000  Nick Burrett  <nick@dsvr.net>

	* mod_apache/apache.c (scan_directive): Return NULL if the directive
	argument doesn't exist.  Take into account that we might find the
	end of the line before we find the terminator.

Sat Aug  5 15:04:14 2000  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (virt_add_entry): Also report empty
	if the alias or pop is of zero length.
	(load_virtusertable): Cope with spaces at the end of a line.
	Be more descriptive about the offending line.

Sat Aug  5 14:32:41 2000  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (sendmail_cw_add_domain): Ensure all
	domains added are in lower case. Report an error if the domain
	contains non-printable characters or ends with a dot.

Sat Aug  5 14:21:40 2000  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (virt_add_entry): Return a descriptive
	error message rather than status codes.  Check that LHS and RHS
	end with an alphanumeric.
	(virt_delete_entry): Likewise.
	(load_virtusertable): If virt_add_entry fails, then abort.  What
	we consider a broken virtusertable might actually work.  Aborting
	will save on data loss.
	(sendmail_virt_list_domain): Cope with an abort from
	load_virtusertable.
	(sendmail_virt_modify_table): Likewise.  Fixup error reporting for
	new return codes from virt_add_entry and virt_delete_entry.

Fri Aug  4 16:25:25 2000  Nick Burrett  <nick@dsvr.net>

	* mod_apache/apache.c (check_syntax_with_httpd): Look in several
	locations for httpd binary.

Fri Aug  4 14:18:23 2000  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (sendmail_virt_modify_table): Prevent
	the user from adding multiple targets on a single line, seperated
	by commas.

Fri Aug  4 14:08:00 2000  Nick Burrett  <nick@dsvr.net>

	Add extra checking to safeguard configuration files from user
	error.
	* vsd.c (run_command): Add /usr/sbin to new_environ.
	If command fails, don't log error in the protocol result.
	* mod_apache/apache.c (check_syntax_with_httpd): New function.
	(httpd_delete_virtual_host): Call it.  Only save httpd.conf if
	the check returns successfully.
	(httpd_add_virtual_host): Likewise.
	(httpd_modify_virtual_host): Likewise.
	* mod_sendmail/sendmail.c (save_virtusertable): Change return
	status to include a wider variety of results.
	(rebuild_virtusertable_db): Safeguard against makemap failing
	by keeping a backup copy of virtusertable.db.  Report makemap
	errors in the protocol.
	(sendmail_virt_modify_table): Support the case where virtusertable
	does not exist.  Only rebuild virtusertable.db if virtusertable
	was saved successfully.  Report more error conditions.
	
Thu Aug  3 15:34:26 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_account_create): Check ipaddr, ns1, ns2 and
	numuid arguments for validity.
	(vs_modify): Check old and new IP addresses for validity.
	(vsd_add_ipalias): Check IP address argument is valid.
	(vsd_del_ipalias): Likewise.
	
Thu Aug  3 14:55:07 2000  Nick Burrett  <nick@dsvr.net>

	* io.c (output): Log protocol output to VSD_LOG_PROTOCOL only
	if vsd_log_level is set high enough.
	(io_parse_input): Likewise but for protocol input.
	* vsd.c: Define SYSLOG_NAMES to expose some code in sys/syslog.h.
	(vsd_log_level): Define global.
	(facility_decode): Decode `name' into a syslog facility number.
	(main): Add command line argument parsing, through getopt.  Accept
	switched `-p' and `-l' for defining the syslog facility name to
	log to, and the logging level.
	(process_requests): Log to VSD_LOG_PROTOCOL but only if vsd_log_level
	is set to 3.
	* vsd.h (username_reject_chars): Delete extern decl.
	(pathname_reject_chars): Delete extern decl.
	(vsd_log_level): Declare extern.

Thu Aug  3 14:07:36 2000  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (virt_add_entry): Syntax check the
	alias and pop arguments.  Check alias doesn't exist before trying
	to add it.  Return more error codes.  Make alias and pop lowercase.
	(virt_delete_entry): Likewise, but check alias does exist before
	trying to delete it.  Do all comparisons case-insensitive.
	(virt_compare): Use a case-insensitive comparison.
	(sort_virtusertable): If the sort fails, it is not a serious error.
	(sendmail_virt_list_domain): Use strcasecmp to better match against
	aliases in the file.
	(sendmail_virt_modify_table): Return appropriate errors if
	virt_add_entry or virt_delete_entry fail.  Don't save virtusertable
	if a serious error occurs.
	(sendmaiL_cw_add_domain): Error if the domain to be added already
	exists.
	(sendmail_cw_delete_domain): Cope when all lines in sendmail.cw have
	gone.

Thu Aug  3 10:40:01 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_add_ipalias): New function.
	(vs_del_ipalias): New function.
	* mod_vs/vs.h (vs_add_ipalias): Add declaration.
	(vs_del_ipalias): Add declaration.
	* mod_vs/mod_vs.c (mod_vs_command_table): Add VS_ADDIPALIAS
	and VS_DELIPALIAS.
	(mod_vs_transaction): Likewise.
	* mod_vs/mod_vs.h (CMD_VS_ADDIPALIAS, CMD_VS_DELIPALIAS): Define.
	* mod_vs/mod_vs_lib.c (mod_vs_command_list): Add vs_addipalias
	and vs_delipalias.
	(mod_vs_do_cmd): Add CMD_VS_ADDIPALIAS, CMD_VS_DELIPALIAS.
	Fix arguments to VS_SIGNAL.
	
Tue Aug  1 12:28:42 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (is_homedir_valid): Accept underscores.
	* mod_vs/vs.c (vs_account_enable): Send SIGHUP to vsd-inetd.
	(vsd_account_disable): Likewise.

Mon Jul 10 15:47:45 2000  Nick Burrett  <nick@dsvr.net>

	* mod_apache/apache.c (simplify_pathname): Delete function.
	(check_vh_config): Move path checking code into libvsd/user.c and
	call it.

Mon Jul 10 12:59:45 2000  Nick Burrett  <nick@dsvr.net>

	* mod_quota/quota.c (quota_userset): Don't allow quota limit to be
	set less than current quota use.

	* configure.in: Bump version to 1.4.3.
	
Fri Jun 30 11:42:47 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_account_create): Flag an error if we can't write
	to vsd.accounts.
	(vs_account_delete): Likewise.

Fri Jun 30 11:03:10 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (all): Prevent `client' being built when OpenSSL
	support has not been turned on by replacing `client' with @ssl_client@.
	* configure.in: Define ssl_client when --with-openssl.

Fri Jun 30 10:49:35 2000  Nick Burrett  <nick@dsvr.net>

	* vsdadm.c (vsd_gethostservername): Delete function.
	* vsd_lib.h (vsd_gethostservername): Delete prototype.

Fri Jun 30 10:23:09 2000  Nick Burrett  <nick@dsvr.net>

	Fixes for building on Alpha.  Tidy up autoconf build structure.
	* config.guess: New file.
	* config.sub: New file.
	* install-sh: New file.
	* mod_apache/config.guess: Delete file.
	* mod_apache/config.sub: Delete file.
	* mod_apache/install-sh: Delete file.
	* mod_priv/config.guess: Delete file.
	* mod_priv/config.sub: Delete file.
	* mod_priv/install-sh: Delete file.
	* mod_quota/config.guess: Delete file.
	* mod_quota/config.sub: Delete file.
	* mod_quota/install-sh: Delete file.
	* mod_sendmail/config.guess: Delete file.
	* mod_sendmail/config.sub: Delete file.
	* mod_sendmail/install-sh: Delete file.
	* mod_user/config.guess: Delete file.
	* mod_user/config.sub: Delete file.
	* mod_user/install-sh: Delete file.
	* mod_vs/config.guess: Delete file.
	* mod_vs/config.sub: Delete file.
	* mod_vs/install-sh: Delete file.

Wed Jun 28 17:23:47 2000  Nick Burrett  <nick@dsvr.net>

	* Version 1.4.2 released.

Wed Jun 28 13:41:04 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in: Bump version to 1.4.2.

Wed Jun 21 10:36:37 2000  Nick Burrett  <nick@dsvr.net>

	* Version 1.4.1 released.

Fri Jun  9 17:16:44 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (all): Remove vsclients.

Fri Jun  9 11:32:37 2000  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (sendmail_cw_add_domain): Save to
	fname - MAILCW no longer exists.
	(sendmail_cw_delete_domain): Likewise.

Fri Jun  9 11:30:27 2000  Nick Burrett  <nick@dsvr.net>

	Source tidy-up.
	* vsd.c (localhost): Delete function.
	(find_hostname): Renamed from tcp_serverhost.  Integrate localhost
	into it.  Don't allocate memory for the hostname, use caller passed
	buffer instead.
	(main): Add some comments.  Call find_hostname.  Change greeting
	and sign-off messages.
	(process_requests): Neaten protocol debug output.

	* vsd.c (run_command): Use %m as shorthand for the strerror call.
	* mod_priv/priv.c (common_set_rights, priv_avail): Likewise.
	* mod_user/user.c (user_del, user_mod): Likewise.
	* mod_vs/vs.c (vs_account_enable, vs_account_disable): Likewise.
	* mod_apache/apache.c (httpd_enumerate_virtual_hosts): Likewise.
	Fix stupid error messsages.
	(httpd_delete_virtual_host): Likewise.
	(httpd_add_virtual_host): Likewise.
	(httpd_modify_virtual_host): Likewise.
	(httpd_get_virtual_host): Likewise.

Fri Jun  9 09:14:29 2000  Nick Burrett  <nick@dsvr.net>

	* io.c (output): If vc is NULL, then write to stderr.

Thu Jun  8 16:59:53 2000  Nick Burrett  <nick@dsvr.net>

	Obtain paths for various sendmail configuration files from
	sendmail.cf rather than assuming their location at compile time.
	* sendmail/sendmail.c (read_sendmail_cf): New function.
	(load_virtusertable): Get virtusertable path from read_sendmail_cf.
	Use %m in io_buffer_store as shorthand for translating errno.
	(save_virtusertable): Likewise.
	(rebuild_virtusertable_db): Likewise.
	(sendmail_virt_list_domain): Likewise.
	(sendmail_virt_modify_table): Likewise.
	(sendmail_cw_list_domain): Likewise.
	(sendmail_cw_add_domain): Likewise.
	(sendmail_cw_delete_domain): Likewise.

	* Makefile.in (TFLAGS): Delete.
	(.c.o): Remove $(TFLAGS).
	(path_aliases): Delete.
	(path_virtusertable): Delete.
	(path_sendmailcw): Delete.
	* configure.in: Remove AC_CHECK_FILE for /etc/aliases,
	/etc/virtusertable and /etc/sendmail.cw.
	
Thu Jun  8 13:22:27 2000  Nick Burrett  <nick@dsvr.net>

	* vsd.c (process_requests): Log protocol commands to syslog.

	* mod_sendmail/sendmail.c (load_virtusertable): Don't free
	alias and pop_account - these were never malloc'ed in the first
	place.
	(rebuild_virtusertable_db): Use VIRTUSERTABLE macro.
	(sendmail_virt_list_domain): Likewise.
	(sendmail_virt_modify_table): Likewise.

Wed Jun  7 17:25:49 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in: Only recognise modules that being mod_.

Wed May 31 15:51:08 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (clean): Delete binaries.
	* vsd_lib.h (struct _vsd_server): Add `level'.
	* vsdadm.c (vsd_send_command): Use server->level to determine
	whether we connect as <root> or not.
	(main): Use virtual server <root> if no virtual server arg is passed.
	* mod_apache/mod_apache_lib.c (mod_apache_do_cmd): Set server->level.
	* mod_priv/mod_priv_lib.c (mod_priv_do_cmd): Likewise.
	* mod_quota/mod_quota_lib.c (mod_priv_do_cmd): Likewise.
	* mod_sendmail/mod_sendmail_lib.c (mod_priv_do_cmd): Likewise.
	* mod_user/mod_user_lib.c (mod_priv_do_cmd): Likewise.
	* mod_vs/mod_vs_lib.c (mod_priv_do_cmd): Likewise.

Wed May 31 10:21:06 2000  Nick Burrett  <nick@dsvr.net>

	Support alternative build root for RPM packaging.
	* Makefile.in (install): Add $(ROOT)/ to all paths.
	(uninstall): Likewise.

Fri May 26 13:33:26 2000  Nick Burrett  <nick@dsvr.net>

	* All files: Change copyright ownership from Designer Servers Ltd
	to Idaya Ltd.

Fri May 26 12:55:19 2000  Nick Burrett  <nick@dsvr.net>

	Integrate webclients and webadmclients into one application - vsdadm.
	* Makefile.in (all): Remove webclients, webadmclients.  Add vsdadm.
	(webclients): Delete target.
	(webclients.o): Delete target and dependencies.
	(webadmclients): Delete target.
	(webadmclients.o): Delete target and dependencies.
	(vsdadm): Add target.
	(vsdadm.o): Add target and dependencies.
	(install): Don't install webclients and webadmcleints. Install vsdadm.
	(uninstall): Likewise but for remove.
	* vsd_lib.h: Remove all code in WITH_OPENSSL.
	(vsd_response_ptr): Delete decl.
	(vsd_set_interface, vsd_interface): Delete decls.
	(vsd_set_error, vsd_set_response): Delete decls.
	(vsd_user_list, vsd_user_control, vsd_group_control): Delete decls.
	(vsd_set_password, vsd_mod_rights, vsd_geterror): Delete decls.
	(vsd_list_rights, vsd_virt_list_domain): Delete decls.
	(vsd_virt_modify_table, vsd_httpd_vh_enum): Delete decls.
	(vsd_httpd_vh_delete, vsd_httpd_vh_get): Delete decls.
	(vsd_httpd_vh_mod, vsd_sendmail_cw): Delete decls.
	* vsdadm.c: New file.
	* vsd_lib.c: Delete file. Incorporated into vsdadm.c.
	* webadmclients.c: Delete file.
	* webclients.c: Delete file.

Fri May 26 10:05:14 2000  Nick Burrett  <nick@dsvr.net>

	* proftpd.c: Delete file.
	* vsclients.c: Delete file.
	* Makefile.in (VSD_OBJS): Remove proftpd.o.
	(vsclients): Delete target.
	(install): Don't install vsclients or rebootvs.
	(uninstall): Likewise, but don't uninstall.
	(vsclients.o): Delete target.

Thu May 25 16:51:40 2000  Nick Burrett  <nick@dsvr.net>

	* mod_quota/mod_quota_lib.c (mod_quota_do_cmd): Remove code
	specific to the `vsclients' CLI_INTERFACE.
	* mod_quota/quota.c (diskquota): Determine disk device from
	the location of the server root and create a temporary node
	from which to access the kernel.  Fix all callers to pass
	the server root path rather than a device name.
	(vs_user_stats): Remove server_name and device parameters.  Fix
	all callers.  Both are obtainable from somewhere else.
	(quota_vsset): Call vsd_quota_set to set the VS quota in a file
	on the VS.
	* Makefile.in (install): Don't make soft-links for quotastats
	and setquota.  These are now implemented in ../userutil.
	(uninstall): Don't delete quotastats and setquota since we
	don't install them anymore.

Wed May 17 09:43:27 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (user_add): Pass NULL for additional_groups
	argument in vsd_useradd.

Tue May 16 16:22:44 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/Makefile.in (sbindir): New.
	(TFLAGS): New.
	(.c.o): Add TFLAGS to compiler command line.
	(mod_vs.o): Add config.h as a dependency.
	(mod_vs_lib.o): Likewise.
	(vs.o): Likewise.
	* mod_vs/vs.c (vs_reboot): Use VSBOOT rather than a hard coded
	vsboot path.
	(vs_account_enable): Likewise.
	(vs_account_disable): Likewise.
	(vs_account_delete): Likewise.

Tue May 16 15:26:55 2000  Nick Burrett  <nick@dsvr.net>

	* client.c (main): Take a protocol file as a command line argument.
	Read more than one line of output.  Fix pathnames for
	SSL keys.
	
	* io.c (rsa_cb): Don't compile.
	(verify_callback): Print diagnostic information.
	(io_initialise): Fix pathnames for SSL keys.  Replace calls to
	error_log with vsd_log_error.  Add code to extract the CN field
	from a certificate - this is used to determine the virtual server
	to connect to.
	(output): Replace calls to error_log with vsd_log_error.
	* io.h (struct io): Add certificate_vs.
	* vsd.c (main): Turn off that root running check.
	(process_requests): If using SSL ensure the CN field in the
	certificate matches the virtual server name given in the protocol
	exchange.

	* mod_vs/mod_vs.c (mod_vs_command_table): Change VS_DETAILS
	privilege level.
	(mod_vs_transaction): Pass level to vs_details.
	* mod_vs/vs.c (vs_details): Take level as an extra parameter.
	Ensure we can only retrieve details of our virtual server if we
	specify our VS in the protocol.
	* mod_vs/vs.h (vs_details): Add level argument.

Tue May  9 10:05:06 2000  Nick Burrett  <nick@dsvr.net>

	* error.c: Delete file.

Tue May  9 10:03:31 2000  Nick Burrett  <nick@dsvr.net>

	* crypto/blowfish.c: Delete file.
	* crypto/crypto.h: Delete file.

Tue May  9 09:36:49 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (VSD_OBJS): Remove error.o and $(CRYPTO_LIB).
	(CRYPTO_LIB): Delete.
	(INCLUDE): Add @includes@.
	(client.o): Add -DSSL_BASE.
	(io.o): Define.
	(install): Don't install softlinks for quotastats, rebootvs
	and setquota if they are already installed.
	(client.o, error.o, io.o, module.o): Add dependencies.
	(util.o, vsclients.o, vsd.o): Add dependencies.
	(vsd_lib.o, webadmclents.o, webclients.o): Add dependencies.
	* acconfig.h: Add comments for all #undefs.
	* client.c (main): Use SSL_BASE as the base element of pathnames.
	* configure.in (includes): New.  Add SSL include path to this
	rather than to CFLAGS.
	Delete --enable-encryption and --enable-authentication.
	Add --enable-testing.
	* io.c (io_initialise): Use SSL_BASE as the base element of paths.
	(input): Remove unused variable `p'.
	* vsd.h (SEVERITY_ERROR): Delete macro.
	(SEVERITY_DEBUG): Delete macro.
	(error_log): Delete declaration.

	* vsd_lib.c (establish_connection): Remove #if 0 code.
	(vsd_send_command_file): Remove unused variable `stream'.
	(vsd_user_control): Delete function.
	(vsd_list_rights): Delete function.
	
	* mod_apache/mod_apache_lib.c (mod_apache_do_cmd): Add default
	case statement.
	* mod_priv/mod_priv_lib.c (mod_priv_do_cmd): Likewise.
	* mod_sendmail/mod_sendmail_lib.c (mod_sendmail_do_cmd): Likewise.
	* mod_user/mod_user_lib.c (mod_user_do_cmd): Likewise.
	* mod_vs/mod_vs_lib.c (mod_vs_do_cmd): Likewise.
	* mod_quota/mod_quota_lib.c (mod_quota_do_cmd): Likewise. Remove
	unused variable `data' and fix type casting in io_getline.
	* mod_quota/quota.c (vs_user_stats): Remove unused variable
	`stream'.
	(quota_userset): Remove unused variable `user_uid'.
	(quota_stats): Remove unused variable `stream'.

	* mod_sendmail/Makefile.in (path_aliases): Define.
	(path_virtusertable): Define.
	(path_mailcw): Define.
	(TFLAGS): Define.
	(.c.o): Add $(TFLAGS).
	(mod_sendmail.o): Add config.h to dependencies.
	(mod_sendmail_lib.o): Likewise.
	(sendmail.o): Likewise.
	* mod_sendmail/configure.in: Add AC_CHECK_FILE lines for
	/etc/aliases, /etc/virtusertable and /etc/sendmail.cw.
	Add AC_SUBST lines for aliases, virtusertable and mailcw.
	* mod_sendmail/mod_sendmail.c (mod_sendmail_command_table): Add
	SENDMAIL_ALISTLHS, SENDMAIL_AGETRHS, SENDMAIL_AADD,
	SENDMAIL_ADELETE.
	(mod_sendmail_translation): Add case statements for above
	commands.
	* mod_sendmail/mod_sendmail.h (CMD_SENDMAIL_ALISTLHS): Define.
	(CMD_SENDMAIL_AGETRHS): Define.
	(CMD_SENDMAIL_AADD): Define.
	(CMD_SENDMAIL_ADELETE): Define.
	* mod_sendmail/sendmail.c (VIRTUSERTABLE): Delete macro.
	(SENDMAIL_CW): Delete macro.
	(sendmail_cw_list_domain): Replace SENDMAIL_CW with MAILCW.
	(sendmail_cw_add_domain): Likewise.
	(sendmail_cw_delete_domain): Likewise.
	(sendmail_alistlhs): New function. Currently a placeholder.
	(sendmail_agetrhs): Likewise.
	(sendmail_aadd): Likewise.
	(sendmail_adelete): Likewise.
	* mod_sendmail/sendmail.h (sendmail_alistlhs): Add declaration.
	(sendmail_agetrhs): Add declaration.
	(sendmail_aadd): Add declaration.
	(sendmail_adelete): Add declaration.

	* mod_vs/mod_vs.c (Mod_vs_command_table): Add ns1 and ns2.
	* mod_vs/vs.c (vs_account_create): Add support for new optional
	arguments ns1 and ns2.  Use `mount' rather than `pathname'
	in partition reference.
	(vs_details): Re-write according to new vsd_vs_map structure.

Wed May  3 09:42:14 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (datadir, includedir, infodir): Add.
	(libdir, libexecdir, localstatedir): Add.
	(oldincludedir, sbindir, sharedstatedir, sysconfdir): Add.
	(LN_S): Add.
	(INSTALL): Renamed from INSTALLCMD.
	(skelrepo): Add.
	(install): New target.
	(uninstall): New target.

Wed May  3 09:06:32 2000  Nick Burrett  <nick@dsvr.net>

	* io.c (WITH_OPENSSL): Renamed from ENABLE_OPENSSL.
	(rsa_cb): New function.
	(verify_callback): New function.
	(io_initialise): Set SSL paths to something a bit more sensible.
	Set verify_callback on SSL_CTX_set_verify.
	* io.h (HAVE_OPENSSL): Renamed from ENABLE_OPENSSL.
	* vsd_lib.c (WITH_OPENSSL): Renamed from ENABLE_OPENSSL.
	* vsd_lib.h: SSL headers are in subdirectory `openssl'.
	* client.c (main): Fix SSL paths.
	
Wed Apr 12 17:16:28 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (LIBS): Remove -lgdbm.
	(vsd): Remove -ldl from link step.
	* configure.in (AC_CHECK_HEADERS): Add endian.h and
	machine/endian.h.
	(AC_CHECK_LIB): Add check for libgdbm.
	Always add -lssl to LIBS.
	* io.c: Include time.h.
	* crypto/blowfish.c: Conditionally include endian.h and
	machine/endian.h.

Wed Mar 29 15:47:37 2000  Nick Burrett  <nick@dsvr.net>

	* mod_apache/Makefile.in: Make all object files depend on vsd.h.
	* mod_priv/Makefile.in: Likewise.
	* mod_quota/Makefile.in: Likewise.
	* mod_sendmail/Makefile.in: Likewise.
	* mod_user/Makefile.in: Likewise.
	* mod_vs/Makefile.in: Likewise.

Wed Mar 29 15:46:24 2000  Nick Burrett  <nick@dsvr.net>

	* vsd.c (process_requests): Only free memory for server_root if
	memory has been allocated.

Mon Mar 27 11:10:04 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (is_homedir_valid): Accept `/' as part of
	a pathname.
	(user_add): If home directory is not valid then return an error
	message.

Fri Mar 24 17:04:20 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (user_list): vsd_passwd_load server root
	argument was plainly incorrect.

Wed Mar 22 16:58:56 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in: Add check for libcrypt.  Check for libcrypto
	only if libssl detected.

	* io.c (input, [! ENABLE_OPENSSL]): Use io->in_fd rather than
	fileno (stdin).
	(output, [! ENABLE_OPENSSL]): Use io->out_fd rather than
	fileno (stdout).
	(io_buffer_free): Re-initialise input_buffer after freeing
	memory.
	* vsd.c (main): Zero-initialise io structure.

Wed Mar 22 14:33:10 2000  Nick Burrett  <nick@dsvr.net>

	* webadmclients.c (main): Tidy syslog messages.
	* webclients.c (main): Likewise.

Wed Mar 22 13:58:20 2000  Nick Burrett  <nick@dsvr.net>

	* acconfig.h (HAVE_OPENSSL): Define.
	(HAVE_SSL): Define.
	(ssldir): Define.

Wed Mar 22 13:52:08 2000  Nick Burrett  <nick@dsvr.net>

	* configure.in: Add check for OpenSSL.  Add check for libcypto.
	* Makefile.in (LDFLAGS): New.
	(LIBS): Add @LIBS@. Remove hardcoded paths for OpenSSL.
	(INCLUDE): Remove OpenSSL include path.
	(vsd, vsclients, client, webclients, webadmclients): Add $(LDFLAGS)
	to the link step.
	(vsd): Remove -lcrypto.

Wed Mar 22 13:45:26 2000  Nick Burrett  <nick@dsvr.net>

	* client.c: New file.  Forgot to commit in the Mar 16 change.

Tue Mar 21 12:57:19 2000  Nick Burrett  <nick@dsvr.net>

	* io.h: New file.  Forgot to commit this during the last change.

Thu Mar 16 15:52:09 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (VSD_OBJS): Remove passwd.o and auth.o.
	(LIBS): Add search path for OpenSSL.
	(INCLUDE): Add search path for OpenSSL.
	(all): Add new program `client' for SSL testing.
	(client.o): New target.
	(vsd, vsclients, webclients, webadmclients): Add libvsd as a
	dependency.

	Initial implementation of a SSL based communication layer for
	FreeVSD using OpenSSL.  Abstract the io structures to reduce
	the requirement of all source files including OpenSSL header files.
	* io.c (io_initialise [ENABLE_OPENSSL]): New function.
	(io_finalise [ENABLE_OPENSSL]): New function.
	(input [ENABLE_OPENSSL]): New function.
	(output [ENABLE_OPENSSL]): New function.
	(io_initialise [! ENABLE_OPENSSL]): New function.
	(io_finalise [! ENABLE_OPENSSL]): New function.
	(input [! ENABLE_OPENSSL]): Support abstracted io structure.
	Cope with CRLF end of line terminators.
	(io_parse_input): Support abstracted io structure.
	(io_generate_output): Likewise.
	(io_collect_output): Likewise.
	(io_buffer_free): Likewise.
	(io_buffer_store): Likewise. Abort if buffer memory allocation fails.
	* vsd.c: Include io.h.
	(main): Remove call to authenticate_server.  Claim memory for I/O
	and initialise.  Remove call to cleanup.  Call io_finalise.
	(free_connection): Remove reference to input_buffer.
	(process_requests): Add a descriptive comment.  Use io structure
	abstraction.
	* auth.c: Delete source file. Superceeded by SSL authentication.
	* vsd.h (struct io_requests): Delete. Moved to io.h.
	(struct io_results): Delete. Moved to io.h.
	(struct connection): Delete input_buffer, input_bufsiz,
	io_output_format, requests, requests_count, results, results_count,
	io_buffer, io_bufferp, io_buffer_size.  All moved to io.h.
	(authenticate_server): Delete declaration.
	(login): Delete declaration.
	(server_login): Delete declaration.
	(checkpw): Delete declaration.
	(checkpw_conv): Delete declaration.
	(io_initialise): Add decl.
	(io_finalise): Add decl.
	(SEVERITY_ERROR): Add macro.
	(SEVERITY_DEBUG): Add macro.
	(error_log): Add decl.
	* error.c: New file. Centralised error logging.
	
	Code tidy up.
	* util.c (MAX_USERNAME_LENGTH): Delete macro.
	(max_username_len): Delete function.
	(is_name_valid): Delete.  Replaced by vsd_valid_username in libvsd.
	(is_home_dir_valid): Delete function.
	(user_exists): Delete function.
	(group_exists): Delete function.
	* passwd.c: Delete source file. Superceeded by libvsd passwd functions.
	* vsd.c (username_reject_chars): Delete string.
	(pathname_reject_chars): Delete string.
	(hupint): Delete function.
	(trmint): Tidy function.
	(tcp_clienthost): Delete function.
	(cleanup [! WITH_OPENSSL]): Delete function.
	(cleanup [WITH_OPENSSL]): Delete function.
	(output): Delete function.
	(main): Die and error if we are not running as uid 0.
	Remove call to tcp_clienthost.  Don't initialise SIGHUP handler.
	(free_connection): Remove reference to client_host.
	* vsd.h: Remove code in HAVE_LIBPAM.
	(struct connection): Delete client_host.  Improve comment about
	server_root.  Add io.
	(SERVER): Delete macro.
	(tcp_clienthost): Delete decl.
	(vsd_getpwuid): Delete decl.
	(vsd_getpwnam): Delete decl.
	(vsd_openpw): Delete decl.
	(vsd_closepw): Delete decl.
	(max_username_len): Delete decl.
	(is_name_valid): Delete decl.
	(is_home_dir_valid): Delete decl.
	(user_exists): Delete decl.
	(group_exists): Delete decl.
	* mod_priv/priv.c (common_set_rights): Remove code used to obtain
	virtual server directory - replace with vc->server_root.
	Delete code defined in USE_WUFTPD.
	(priv_modify): Use libvsd passwd functions to determine whether
	virtual server user exists.  No need to check the username validity.
	(priv_list): Likewise.  Use libvsd passwd functions to get user name
	and uid translations rather than calling fgetpwent.
	* mod_quota/quota.c (vs_user_stats): Use libvsd passwd functions
	to get user name and uid translations rather than calling fgetpwent.
	(quota_stats): Likewise.
	(quota_userget): No need to check the username validity.  Use libvsd
	passwd functions to determine whether virtual server user exists.
	(quota_userset): Likewise.
	* mod_sendmail/sendmail.c (load_virtusertable): Use vc->server_root
	for virtual server directory rather than calling vsd_map_server_root.
	(save_virtusertable): Likewise.
	(rebuild_virtusertable_db): Likewise.
	* mod_user/user.c (user_list): Use libvsd passwd functions to get
	user name and uid translations rather than calling fgetpwent.
	(is_homedir_valid): New function.
	(user_add): Use vsd_valid_username and is_homedir_valid.  Use
	vc->server_root for virtual server directory rather than calling
	vsd_map_server_root.
	(user_del): Likewise.
	(user_mod): Likewise.
	(user_chpass): Likewise.
	(user_group_add): Use vsd_valid_username instead of is_name_valid.
	(user_group_del): Don't let the user delete the mail user.
	(user_group_mod): Add user name check.
	* mod_vs/vs.c (vs_reboot): Use vc->server_root rather than calling
	vsd_map_server_root.  Add protocol argument description.
	(vs_account_enable): Use vsd_valid_username.
	(vs_account_disable): Use vad_valid_username.
	(vs_account_create): Likewise.
	(vs_account_delete): Likewise.
	(vs_details): Use vsd_valid_username.

	New command to rename virtual server, change the IP address or
	change the FQDN.
	* mod_vs/mod_vs.c (mod_vs_command_table): Add VS_MODIFY.
	(mod_vs_transaction): Add CMD_VS_MODIFY.
	* mod_vs/mod_vs.h (CMD_VS_MODIFY): New macro.
	* mod_vs/mod_vs_lib.c (mod_vs_command_list): Add vs_modify.
	(mod_vs_do_cmd): Annotate each command argument.  Add CMD_VS_MODIFY.
	* mod_vs/vs.c (vs_modify): New function.
	* mod_vs/vs.h (vs_modify): Declare.
	
	* mod_sendmail/mod_sendmail_lib.c (mod_sendmail_command_lib): Cmd.
	sendmail_cwlist takes two arguments, not three.
	(mod_sendmail_do_cmd, case CMD_SENDMAIL_VMODIFY): Fix call to
	vsd_send_file.

	* mod_apache/apache.c: Include unistd.h.
	(add_virtual_host): Ensure only one VirtualHost decl. can be added
	in one operation.

Fri Mar 10 16:17:58 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (user_mod): Prevent modification of the login
	name for users admin, web, ftp and mail.

Mon Feb 28 10:07:37 2000  Nick Burrett  <nick@dsvr.net>

	* mod_apache/apache.c (scan_directive): Strip trailing spaces
	from result.
	(httpd_delete_virtual_host): Action only if delete_virtual_host
	completed successfully.
	(httpd_modify_virtual_host): Likewise.
	(httpd_get_virtual_host): Minor change to error message.

Wed Feb  9 10:59:59 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (user_mod): Fixup vsd_usermod call for
	additional_groups parameter.

Fri Feb  4 07:06:50 2000  Nick Burrett  <nick@dsvr.net>

	* mod_quota/mod_quota_lib.c (mod_quota_command_list): Set
	`quota_vsset' and `quota_vsget' to ADMIN_VS.
	(mod_quota_do_cmd, case CMD_QUOTA_VSSET): Don't pass virtual
	server argument.
	(mod_quota_do_cmd, case CMD_QUOTA_VSGET): Likewise.
	
Mon Jan 17 17:13:45 2000  Nick Burrett  <nick@dsvr.net>

	* mod_apache/apache.c (simplify_pathname): New function.
	(check_vh_config): Un-comment, fix and test.

	* user.c (user_group_list): Don't add a comma to the last username
	in the list.
	(user_mod): Don't pass initial group.

Fri Jan 14 12:36:47 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (user_group_list): New function.
	(user_mod): Fix vsd_priv_rename_user call.
	* mod_user/mod_user.c (mod_user_command_table): Add USER_GRLIST.
	(mod_user_transaction): Add CMD_USER_GRLIST.
	* mod_user/mod_user.h (CMD_USER_GRLIST): Define.
	* mod_user/mod_user_lib.c (mod_user_command_list): Add user_grlist.
	(mod_user_do_cmd): Add CMD_USER_GRLIST.

	* util.c (is_name_valid): Don't restrict the length of a virtual
	server name.

Thu Jan 13 15:57:09 2000  Nick Burrett  <nick@dsvr.net>

	* util.c (user_exists): Don't die if password database can't
	be opened.
	(group_exists): Likewise for the user group database.

Thu Jan 13 11:27:40 2000  Nick Burrett  <nick@dsvr.net>

	* mod_quota/quota.c (quota_vsget): Virtual server name is not
	passed as a command line argument.
	(quota_vsset): Likewise.
	* mod_quota/mod_quota.c (mod_quota_command_table): Make QUOTA_VSSET
	and QUOTA_VSGET ADMIN_VS commands.

Thu Jan 13 11:16:30 2000  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (user_del): Prevent the user from deleting the
	mail user.
	(user_list): Replace vsd_get_uid_range with vsd_get_uidgid.
	* mod_priv/priv.c (priv_list): Likewise.

	* mod_quota/mod_quota.c (mod_quota_command_table): Minor formatting
	change.

Wed Jan 12 11:28:24 2000  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_reboot): The arguments that vsboot accepts
	were changed; reflect those changes here.
	(vs_account_enable, vs_account_disable): Likewise.
	(vs_account_delete): Likewise.

	(vs_reboot): Output file is on root of host server rather than
	the virtual server as send_output was told.

Sun Jan  9 16:54:30 2000  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (webclients.o, webadmclients.o): Include
	$(CFLAGS) on compiler command line.
	(vsclients.o, mod_client.o, module_glue_lib.o): Likewise.

	* webclients.c (main): Fix typo in result check from module_command.
	* vsclients.c (main): Remove obsolete useradd check.

Wed Dec 22 13:21:33 1999  Nick Burrett  <nick@dsvr.net>

	* configure.in: Bump to version 1.3.1.

Wed Dec 22 12:12:47 1999  Nick Burrett  <nick@dsvr.net>

	* mod_quota/quota.c (quota_userset): Change output for io_buffer_store.
	* auth.c (login): Fix output call.

	* mod_sendmail/sendmail.c (sendmail_virt_modify_table): Don't fail
	if /etc/virtusertable is empty.
	
Wed Dec 22 11:36:35 1999  Nick Burrett  <nick@dsvr.net>

	* io.c (io_generate_output): Use `output' rather than fprintf.
	(input): Handle lines terminated by \r\n.quit
	* vsd.c (output): Implement using low-level write ops.
	* vsd.h (output): Add `vc' parameter.
	(VSD_UTILS_PATH): Delete.
	
Tue Dec 21 17:29:34 1999  Nick Burrett  <nick@dsvr.net>

	* configure.in: Add --with-vsdport.
	* acconfig.h (WITH_VSD_PORT): Declare.
	* vsd_lib.c (establish_connection): Use WITH_VSD_PORT.
	
Tue Dec 21 16:08:56 1999  Nick Burrett  <nick@dsvr.net>

	* io.c (io_buffer_store): Re-calculate io_bufferp after reallocating
	the buffer.

Thu Dec 16 16:44:22 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c (main): Increase timeout to 30 seconds (for debug purposes).

	* mod_user/user.c (usermod): Re-write to use vsd_usermod from libvsd.
	* mod_user/mod_user.c (mod_user_check_syntax): Allow a variable
	number of arguments.
	
Thu Dec 16 15:25:40 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c (main): Set a command timeout of 10 seconds.
	* io.c (input): Enforce the timeout set in the above function.

Wed Dec 15 13:06:36 1999  Nick Burrett  <nick@dsvr.net>

	* All files: Add GPL copyright notice.

Mon Dec 13 18:19:57 1999  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (sendmail_virt_modify_table): Delete a
	obscene debug message.

Mon Dec 13 18:15:27 1999  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/sendmail.c (sendmail_cw_list_domain): Add a newline
	after each domain name.

	* io.c (io_parse_input): Fix logic error on level 2, causing a
	splurious right brace to be output.

Mon Dec 13 13:12:02 1999  Nick Burrett  <nick@dsvr.net>

	* mod_priv/priv.c (priv_list): Send `[none]' rather than `[none set]'.
	* mod_priv/mod_priv_lib.c (mod_priv_do_cmd, case CMD_PRIV_SET): Delete.
	
Mon Dec 13 12:56:29 1999  Nick Burrett  <nick@dsvr.net>

	* mod_priv/priv.c (priv_set): Delete function.
	* mod_priv/priv.h (priv_set): Delete prototype.
	* mod_priv/mod_priv.c (mod_priv_command_table): Delete PRIV_SET.
	(mod_priv_transaction, case CMD_PRIV_SET): Delete.
	* mod_priv/mod_priv.h (CMD_PRIV_SET): Delete.
	* mod_priv/mod_priv_lib.c (mod_priv_command_List): Delete CMD_PRIV_SET.

Fri Dec 10 14:26:27 1999  Nick Burrett  <nick@dsvr.net>

	* mod_priv/priv.c (priv_avail): New function.
	* mod_priv/priv.h (priv_avail): Declare.
	* mod_priv/mod_priv.c (mod_priv_command_table): Add PRIV_AVAIL.
	(mod_priv_transaction): Handle CMD_PRIV_AVAIL.
	* mod_priv/mod_priv.h (CMD_PRIV_AVAIL): Define.
	* mod_priv/mod_priv_lib.c (mod_priv_command_list): Add priv_avail.
	(mod_priv_do_cmd): Handle CMD_PRIV_AVAIL.

	* mod_priv/mod_priv_lib.c (mod_priv_list_help): Update declaration.
	* mod_apache/mod_apache_lib.c (mod_apache_list_help): Likewise.
	
Fri Dec 10 14:04:41 1999  Nick Burrett  <nick@dsvr.net>

	* crypto/blowfish.c: New file.
	* crypto/crypto.h: New file.
	* Makefile.in (CRYPTO_LIB): New.
	(VSD_OBJS): Add CRYPTO_LIB.
	(.c.o): Make output filename explicit.
	
Fri Dec 10 13:27:22 1999  Nick Burrett  <nick@dsvr.net>

	* Makefile.in: Re-write. Remove old automake rubbish.

Thu Dec  9 17:17:06 1999  Nick Burrett  <nick@dsvr.net>

	* mod_quota/mod_quota_lib.c (mod_quota_do_cmd, case CMD_QUOTA_STATS):
	Fix protocol error.

	* io.c: Comment change.

Thu Dec  9 11:54:00 1999  Nick Burrett  <nick@dsvr.net>

	* mod_apache/apache.c (httpd_delete_virtual_host): Don't output
	+OK success message.
	(httpd_add_virtual_host): Likewise.
	(httpd_modify_virtual_host): Likewise.

	(httpd_get_virtual_host): Remove incoming argument check and perform
	a general tidy-up.
	(httpd_modify_virtual_host): Likewise.
	(httpd_add_virtual_host): Likewise.
	(httpd_delete_virtual_host): Likewise.
	(httpd_enumerate_virtual_hosts): Likewise.

Thu Dec  9 10:17:39 1999  Nick Burrett  <nick@dsvr.net>

	* mod_priv/mod_priv.c (mod_priv_command_table): Make PRIV_LIST
	argument optional.
	(mod_priv_transaction, case CMD_PRIV_LIST): Call priv_list rather
	than priv_set.
	(mod_priv_check_syntax): Allow a variable number of arguments.

Tue Nov 30 09:28:35 1999  Nick Burrett  <nick@dsvr.net>

	* mod_sendmail/mod_sendmail.c (mod_sendmail_command_table): Change
	help text for SENDMAIL_VMODIFY.

Tue Nov 30 09:28:35 1999  Nick Burrett  <nick@dsvr.net>

	* mod_priv/priv.c (priv_modify): Remove argument check.
	(priv_set): Likewise.
	(priv_list): Likewise. Change command output format.

	* mod_quota/quota.c (quota_userget): Change command output format.
	(quota_userset): Remove successful output.
	(quota_stats): Change command output format.

	* mod_sendmail/sendmail.c (sendmail_virt_list_domain): Don't report
	success. Change RHS to be address rather than pop. Change return
	type to void.
	(sendmail_virt_modify_table): Remove `change' keyword from input
	form - user should use `add' and `delete' instead. Change return
	type to void.
	(sendmail_cw_add_domain): Re-format and comment.
	(sendmail_cw_delete_domain): Likewise.
	* mod_sendmail/sendmail.h (sendmail_virt_list_domain): Change return
	type to void.
	(sendmail_virt_modify_table): Likewise.

	* mod_user/user.c (user_list): Change command output format.
	(user_group_del): Prevent deletion of group `ftp'.
	* mod_vs/vs.c (vs_details): Place quotes around file path in output.

	* mod_webdns/domain.c (list_domains): Don't report success.
	(domain_delete): Likewise.
	(domain_get): Likewise.
	(domain_add_primary): Likewise.
	(domain_add_secondary): Likewise.
	(domain_fix): Likewise.
	(domain_fixall): Likewise.
	(domain_ipmod): Likewise.
	(domain_ipmodall): Likewise.
	
Thu Nov 18 11:09:13 1999  Nick Burrett  <nick@dsvr.net>

	* mod_ipacct/scripts/acct-chains.sh: Remove file.
	* mod_ipacct/scripts/conv-mrtg.sh: Remove file.

Thu Nov 18 11:03:29 1999  Nick Burrett  <nick@dsvr.net>

	* mod_quota/quota.c (quota_userset): Prevent user setting quota
	to 0K.

Wed Nov 17 16:13:51 1999  Nick Burrett  <nick@dsvr.net>

	* mod_user/user.c (user_add): Add gecos parameter to
	vsd_useradd.
	(user_del): Remove unused variable `line'.
	
	* mod_priv/mod_priv_lib.c (mod_priv_command_list): Remove ADMIN_CLIENT
	flag.
	* mod_vs/mod_vs_lib.c (mod_vs_command_list): Remove ADMIN_CLIENT for
	vs_signal command.

	* mod_quota/mod_quota_lib.c (mod_quota_do_cmd): Compare return from
	strstr with NULL.
	* mod_quota/quota.c (quota_stats): Add a new line to each user
	string.
	
	* vsclients.c (main): module_command returns a string. Handle the
	status correctly.
	* webclients.c (main): Return an exit status of 1 or 0 on
	error/success.
	* webadmclients.c (main): Likewise.
	
Tue Nov 16 14:28:09 1999  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (vsd_OBJECTS): Remove user.o.

Thu Nov 16 10:29:49 1999  Nick Burrett  <nick@dsvr.net>

	Convert User and Privileges into modules. This obsoletes a lot of
	other code that can finally be deleted.
	* Makefile.in (vsd_SOURCES): Remove user.c.
	(vsd_OBJECTS): Likewise.
	* mod_user: New module.
	* mod_priv: New module.
	* mod_user/user.c: Moved apache.c to here.
	* mod_user/Makefile.in: New file.
	* mod_user/config.guess: New file.
	* mod_user/config.sub: New file.
	* mod_user/configure.in: New file.
	* mod_user/install-sh: New file.
	* mod_user/mod_user.h: New file.
	* mod_user/mod_user.c: New file.
	* mod_user/user.h: New file.
	* mod_user/mod_user_lib.c: New file.
	* mod_priv/priv.c: Moved sendmail.c to here.
	* mod_priv/Makefile.in: New file.
	* mod_priv/config.guess: New file.
	* mod_priv/config.sub: New file.
	* mod_priv/configure.in: New file.
	* mod_priv/install-sh: New file.
	* mod_priv/mod_priv.h: New file.
	* mod_priv/mod_priv.c: New file.
	* mod_priv/priv.h: New file.
	* mod_priv/mod_priv_lib.c: New file.
	* vsd.c (command_list): Delete.
	(TOKEN_USERADD, TOKEN_USERDEL, TOKEN_CHUSERPASS): Delete.
	(TOKEN_GROUPADD, TOKEN_GROUPDEL, TOKEN_MOD_RIGHTS): Delete.
	(TOKEN_LIST_RIGHTS, TOKEN_USEMOD, TOKEN_USERLIST): Delete.
	(struct old_command_tag): Delete.
	(lookup_command): Delete.
	(transaction_vs_admin): Delete.
	(transaction_host_admin): Delete.
	(process_requests): Delete references to the above.
	* webclients.c (command_list): Delete.
	(struct old_command_tag): Delete.
	(lookup_command): Delete.
	(main): Delete references to `command_list'. Delete `token' switch
	statement.
	* webadmclients.c (command_list): Delete.
	(struct old_command_tag): Delete.
	(lookup_command): Delete.
	(main): Delete references to `command_list'. Delete `token' switch
	statement.
	* vsclients.c (enum program_type): Delete.
	(main): No need to compare against the program names as `module_syntax'
	and `module_command' will now do this.
	* vsd_lib.c (vsd_open): Don't authenticate.
	
	* vsd_lib.c (vsd_sendmail_cw): Delete function.
	(vsd_httpd_vh_mod): Delete function.
	(vsd_httpd_vh_get): Delete function.
	(vsd_httpd_vh_delete): Delete function.
	(vsd_httpd_vh_enum): Delete function.
	(vsd_virt_modify_table): Delete function.
	(vsd_virt_list_domain): Delete function.
	(vsd_quota_user_get): Delete function.
	(vsd_set_password): Delete function.
	(vsd_adm_set_rights): Delete function.
	(vsd_mod_rights): Delete function.
	(vsd_user_list): Delete function.
	(vsd_group_control): Delete function.
	(vsd_send_command_file): New function.
	
	* io.c (io_parse_input): Accept `<root>' as the name of a virtual
	server.

	* mod_sendmail/mod_sendmail_lib.c (mod_sendmail_list_help): Change
	return type to `int'.
	* mod_sendmail/sendmail.c (sort_virtusertable): Return if there are
	no elements to sort.

	* module.h (command_func): Change return type to char*.
	(module_command): Likewise.
	* mod_apache/mod_apache_lib.c (mod_apache_do_cmd): Change return type
	to char* and replace all calls to `vsd_reply_success' with
	`vsd_process_reply'.
	* mod_ipacct/mod_ipacct_lib.c (mod_ipacct_do_cmd): Likewise.
	* mod_priv/mod_priv_lib.c (mod_priv_do_cmd): Likewise.
	* mod_quota/mod_quota_lib.c (mod_quota_do_cmd): Likewise.
	* mod_sendmail/mod_sendmail_lib.c (mod_sendmail_do_cmd): Likewise.
	* mod_user/mod_user_lib.c (mod_user_do_cmd): Likewise.
	* mod_vs/mod_vs_lib.c (mod_vs_do_cmd): Likewise.
	* mod_webdns/mod_webdns_lib.c (mod_webdns_do_cmd): Likewise.

	* mod_quota/mod_quota.c (mod_quota_command_table): QUOTA_VSGET
	takes no arguments. QUOTA_VSSET takes a disk quota as it's only
	argument.

	* mod_vs/mod_vs_lib.c (mod_vs_do_cmd): Replace `vsd_send_line'
	with `vsd_send_command'.
	* mod_ipacct/mod_ipacct_lib.c (mod_ipacct_do_cmd): Likewise.
	* mod_apache/mod_apache_lib.c (mod_apache_do_cmd): Likewise.
	* mod_priv/mod_priv_lib.c (mod_priv_do_cmd): Likewise.
	* mod_sendmail/mod_sendmail_lib.c (mod_sendmail_do_cmd): Likewise.
	* mod_webdns/mod_webdns_lib.c (mod_webdns_do_cmd): Likewise.
	* mod_vs/vs.c (vs_account_create): Alter error messages.

	Improve VSD portability.
	* mod_user/mod_user_lib.c (mod_user_comand_list): Remove vsclients
	commands. These are now implemented as standalone applications.
	* mod_user/user.c (user_add): Use new user/group interface in libvsd
	rather than running the binaries.
	
Thu Oct 14 13:46:49 1999  Nick Burrett  <nick@dsvr.net>

	Convert Sendmail and Apache interfaces into modules.
	* Makefile.in (vsd_SOURCES): Remove sendmail.c and apache.c.
	(vsd_OBJECTS): Likewise.
	* mod_apache: New module.
	* mod_sendmail: New module.
	* mod_apache/apache.c: Moved apache.c to here.
	* mod_apache/Makefile.in: New file.
	* mod_apache/config.guess: New file.
	* mod_apache/config.sub: New file.
	* mod_apache/configure.in: New file.
	* mod_apache/install-sh: New file.
	* mod_apache/mod_apache.h: New file.
	* mod_apache/mod_apache.c: New file.
	* mod_apache/apache.h: New file.
	* mod_apache/mod_apache_lib.c: New file.
	* mod_sendmail/sendmail.c: Moved sendmail.c to here.
	* mod_sendmail/Makefile.in: New file.
	* mod_sendmail/config.guess: New file.
	* mod_sendmail/config.sub: New file.
	* mod_sendmail/configure.in: New file.
	* mod_sendmail/install-sh: New file.
	* mod_sendmail/mod_sendmail.h: New file.
	* mod_sendmail/mod_sendmail.c: New file.
	* mod_sendmail/sendmail.h: New file.
	* mod_sendmail/mod_sendmail_lib.c: New file.
	* vsd.c (command_list): Delete commands VLIST_DOMAIN, VMOD_TABLE,
	VH_ENUM, VH_ADD, VH_DELETE, VH_GET, CW_LIST, CW_ADD, CW_DELETE.
	(transaction_vs_admin): Delete case statements for the above
	commands.
	* webclients.c (command_list): Likewise.
	(main): Likewise.
	
Thu Oct 14 10:59:47 1999  Nick Burrett  <nick@dsvr.net>

	Re-implement command i/o to allow multiple virtual servers and
	multiple operations to be performed in one session.
	* io.c: New file.
	* vsd.c (main): Let input and output processing be done by
	`io_parse_input', `process_requests' and `io_generate_output'.
	(free_connection): New function.
	(process_requests): New function.
	(process_command): Delete function. Obsoleted by `process_requests'.
	(output, input): Delete functions. Obsoleted by functions in io.c.
	* vsd.h: Declare prototypes for functions in io.c.
	(output, input): Delete prototypes.
	(struct connection): Add `requests', `requests_count', `results',
	`results_count', `io_buffer', `io_bufferp' and `io_buffer_size'.
	* Makefile.in (vsd_OBJECTS): Add io.o.
	(vsd_SOURCES): Add io.c.
	* All files: Replace all calls to `output' with a call to
	`io_buffer_store'.
	
	* user.c (change_password): Add parameter `vc'.
	* vsd.c (run_command): Likewise.
	* util.c (is_name_valid, is_home_dir_valid): Likewise.
	* mod_vs/vs.c (send_output): Likewise.
	* mod_webdns/webdns.c (list_domains, domain_delete): Likewise.
	(domain_get, domain_add_primary, domain_add_secondary): Likewise.
	(domain_fix, domain_fixall, domain_ipmod, domain_ipmodall): Likewise.
	* mod_webdns/webdns.h: Update prototypes.
	* mod_webdns/mod_webdns.c (mod_webdns_transaction): Fix calls.
	* All files: Fixed all occurrances.

	* mod_webdns/domain.c (domain_delete): Add missing arguments to
	error messages.
	(domain_get): Likewise.
	(domain_modify): Clarified an error message.

	* module.h (transaction_func): Add `data' argument to decl.
	* mod_quota/mod_quota.h (mod_quota_transaction): Likewise.
	* mod_webdns/mod_webdns.h (mod_webdns_transaction): Likewise.
	* module.c (module_transaction): Likewise and also add it to
	the transaction_function call.
	* mod_ipacct/mod_ipacct.c (mod_ipacct_transaction): Likewise.
	* mod_vs/mod_vs.c (mod_vs_transaction): Likewise.
	* mod_quota/mod_quota.c (mod_quota_transaction): Likewise.
	* mod_webdns/mod_webdns.c (mod_webdns_transaction): Likewise.
	* apache.c (add_virtual_host): Likewise.
	(httpd_add_virtual_host, httpd_modify_virtual_host): Likewise.
	* sendmail.c (virt_modify_table): Likewise.
	
Tue Oct  5 16:04:48 1999  Nick Burrett  <nick@dsvr.net>

	* webclients.c (main, case TOKEN_MODRIGHTS): Return code for
	`vsd_mod_rights' is now non-zero for failure.
	(main, case TOKEN_LISTRIGHTS): Likewise.

Tue Oct  5 14:04:08 1999  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_details): Fix off-by-one error when outputting
	IP aliases.

Mon Oct  4 10:54:50 1999  Nick Burrett  <nick@dsvr.net>

	* vsclients.c (main, case user_add): Set a default quota of 1000K.

Fri Oct  1 14:41:13 1999  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_details): Output IP aliases.

Wed Sep 29 16:06:12 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.h (struct connection): Add `login_timeout',
	`command_timeout', `client_host'.
	(login_timeout, command_timeout): Delete declarations.
	* vsd.c (hostname, username, password, initial): Remove.
	(login_timeout, command_timeout): Moved into `connection'
	structure.
	(virtual_servers, struct vs_map): Remove.
	(tcp_clienthost): Add `struct connection' parameter and
	put client host details in there rather than storing statically.
	(input): Add `struct connection' parameter.
	(process_command): Likewise. Replace all `vsd_connection' references
	with parameter `vc'. Use `vc->clienthost' instead of calling
	`tcp_clienthost'.
	(transaction_host_admin, transaction_vs_admin): Add parameter `vc'.
	Pass `vc' as the first argument to all child functions. Remove
	`virtual_server' parameter as this is superseeded by `vc'.
	* sendmail.c (virt_list_domain): Add parameter `vc'. Parameter
	`server' is now in connection structure - use it.
	(virt_modify_table): Likewise and use `vc' rather than global
	`vsd_connection'.
	(sendmail_cw_list_domain): Likewise.
	(sendmail_cw_add_domain): Likewise.
	(load_virtusertable, save_virtusertable): Likewise.
	(rebuild_virtusertable_db): Likewise.
	* auth.c (login): Likewise.
	(server_login): Likewise.
	* user.c (userlist): Likewise.
	(useradd, userdel, usermod, chuserpass): Likewise.
	(groupadd, groupdel): Likewise.
	(modify_user_rights, set_user_rights): Likewise.
	(common_set_rights, list_user_rights): Likewise.
	* apache.c (add_virtual_host, check_vh_config): Likewise.
	(httpd_enumerate_virtual_hosts): Likewise.
	(httpd_delete_virtual_host): Likewise.
	(httpd_modify_virtual_host): Likewise.
	(httpd_get_virtual_host): Likewise.
	* module.c (module_transaction): Likewise.
	* module.h (module_transaction): Adjust declaration.
	* mod_webdns/domain.c (domain_modify): Likewise.
	* passwd.c (vsd_openpw): Likewise.
	* util.c (user_exists, group_exists): Likewise.
	* proftpd.c (module_proftpd_check_chrt_priv): Likewise.
	(module_proftpd_add_chrt_priv): Likewise.
	* mod_ipacct/ipacct.c (ipacct_get_accounting): Likewise.
	(get_accounting): Likewise.
	* mod_ipacct/mod_ipacct.c (mod_ipacct_transaction): Likewise.
	* mod_quota/quota.c (quota_vsget, quota_vsset): Likewise.
	(quota_userget, quota_userset, quota_stats): Likewise.
	(vs_user_stats): Change `map' argument type to a connection
	structure.
	* mod_quota/mod_quota.c (mod_quota_transaction): Likewise (w.r.t.
	the use `vc' change).
	* mod_vs/vs.c (vs_reboot, vs_signal, vs_account_enable): Likewise.
	(vs_account_disable, vs_account_create): Likewise.
	(vs_account_delete, vs_details): Likewise.
	* mod_vs/mod_vs.c (mod_vs_transaction): Likewise.
	
	* mod_webdns/webdns.h (domain_modify): Add `vc' argument to decl.
	* mod_quota/quota.h (quota_userget): Likewise.
	(quota_userset, quota_stats, quota_vsset, quota_vsget): Likewise.
	* mod_quota/mod_quota.h (mod_quota_transaction): Likewise.
	* mod_vs/vs.h (vs_reboot, vs_signal, vs_account_enable): Likewise.
	(vs_account_disable, vs_account_create, vs_account_delete): Likewise.
	(vs_details): Likewise.
	
	* user.c (set_user_rights): No longer a requirement to pass virtual
	server as an argument - use `vc' connection structure information
	instead.
	* apache.c (httpd_delete_virtual_host): Likewise.
	(httpd_modify_virtual_host): Likewise.
	* vsd_lib.c (vsd_adm_set_rights): Don't pass virtual server as an
	argument.

	* mod_webdns/zone.c: Include "vsd.h".
	(zone_find_resource_record): Add default clause to switch statement
	to prevent gcc warnings.
	* mod_webdns/parse.y: Include "vsd.h" and <string.h>.
	* mod_vs/mod_vs.c: Include "vsd.h" and "vs.h".
	
Mon Sep 27 16:11:31 1999  Nick Burrett  <nick@dsvr.net>

	* mod_quota/quota.c (quota_userset): Prevent users from setting
	the quota to unlimited.

Fri Sep 24 16:28:10 1999  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_signal): New function.
	* mod_vs/mod_vs.c (mod_vs_command_table): Add `VS_SIGNAL'.
	* mod_vs/mod_vs.h (CMD_VS_SIGNAL): New define.
	* mod_vs/mod_vs_lib.c (mod_vs_command_list): Add `vs_signal'. 
	(mod_vs_do_cmd, case VS_SIGNAL): Add.
	* apache.c (add_virtual_host): Add syntax checking.
	(check_vh_config): New function.

Wed Sep 22 14:34:24 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (delete_record): New function.
	(domain_modify): Call it instead of `zone_del_resource_record'.
	* mod_webdns/webdns.h (zone_find_resource_record): Fix
	parameters for new calling convention.
	(zone_del_resource_record): Likewise.
	* mod_webdns/zone.c (zone_find_resource_record): Re-write.
	Be more picky about what the resource record that is to
	be found.	

Wed Sep 22 09:47:19 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (get_domains): Ignore `db.' files
	that contain a `~' as these are considered backups.

	(host_exists): Fix off-by-one error when looking for
	trailing dot.
	(add_dot): Likewise.
	(domain_modify): Exit with error if zone file not
	valid.

	(validate_zone_file): Find CNAME->CNAME cases that are
	referenced earlier in the zone file.

Fri Aug 27 08:02:45 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (check_domain_name): Comment out
	26 character limit check.

Wed Aug 25 11:04:10 1999  Nick Burrett  <nick@dsvr.net>

	* configure.in: Remove `-e' option from `echo' command
	that was used to help generate square brackets for
	module_glue.c. Replace with the alternative `[[]]' that
	is also compatible with FreeBSD.

Wed Aug 25 10:18:32 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c (process_command): Fix `vsd_argv_parse' call to
	use new `sep' parameter.
	* mod_webdns/domain.c (domain_modify): Likewise.

	* vsd.c (run_command): Generate our own environment rather
	that using the system's.

	* vsd_lib.c: Don't include alloca.h.
	(vsd_get_line): Use `strchr' to find newlines. Fix off-by-one
	errors in `malloc' buffer size and `read' call. Clear
	read buffer before the read to remove characters that might
	otherwise confuse the function.
	(vsd_gethostservername): Enclose linux specific code in
	preprocessor defines.

Fri Aug 20 16:49:55 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/mod_webdns.c (mod_webdns_command_table): Fix
	argument could for WEBDNS_ADDSEC.

Thu Aug 19 18:46:14 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/Makefile.in (clean): Delete generated parse.c.

Tue Aug 17 17:57:38 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/zone.c (zone_set_domain): Append the current
	origin if `new_domain' does not end with a dot.

Mon Aug 17 16:22:46 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/mod_webdns.h (CMD_WEBDNS_IPMOD): Define.
	(CMD_WEBDNS_IPMODALL): Define.
	(CMD_WEBDNS_FIX): Define.
	(CMD_WEBDNS_FIXALL): Define.

	* mod_webdns/webdns.h (domain_fix): Declare.
	(domain_fixall): Declare.
	(domain_ipmod): Declare.
	(domain_ipmodall): Declare.
	(zone_update_serial): Declare.

	* mod_webdns/mod_webdns_lib.c (mod_webdns_command_list): Add
	commands: webdns_ipmod, webdns_ipmodall, webdns_fix,
	webdns_fixall.	Fixed help text for `webdns_addpri' and
	`webdns_addsec'.
	(mod_webdns_do_cmd): Annotated `argv' references. Add case
	statements for the above commands.

	* mod_webdns/parse.y (yyerror): Comment out error message.

	* mod_webdns/mod_webdns.c (TOKEN_*): Replace with CMD_WEBDNS_*. Fix
	everywhere.
	(mod_webdns_command_table): Add commands: WEBDNS_IPMOD,
	WEBDNS_IPMODALL, WEBDNS_FIX, WEBDNS_FIXALL.
	(mod_webdns_transaction): Add case statements for the above.

	* mod_webdns/domain.c (check_domain_name): Initialise `error'.
	Move serial number fix out into it's own function.
	(fix_zone): New function.
	(domain_fix): New function.
	(domain_fixall): New function.
	(change_ip_addr): New function.
	(domain_ipmod): New function.
	(domain_ipmodall): New function.

	* mod_webdns/zone.c (yynerrs): Declare extern.
	(zone_read): Fail if there were parse errors.
	(zone_save): Fix problem where $ORIGIN would sometimes be emitted
	with extra dot.
	(zone_update_serial): New function, split out from
	`check_domain_name'.
	
Mon Aug 16 14:38:05 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c: Swap ordering of include files to get builds working
	on FreeBSD.
	* mod_ipacct/ipacct.c: Likewise.
	* mod_webdns/domain.c: Likewise.

	* mod_quota/quota.c: Fix include ufs/ufs/quota.h.

	* vsd.c (run_command): Declare __environ extern.

Mon Aug 16 14:09:09 1999  Nick Burrett  <nick@dsvr.net>

	* configure.in (module_count): Remove.
	* module.c (module_transaction): Replace use of `module_count'
	with a while loop until a NULL is reached.
	(module_command, module_help, module_syntax): Likewise.
	* module.h (module_count): Remove.

Sat Aug 14 11:02:46 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (list_domains): If `get_domains' fails
	with ENOENT, recognise it as a new account and return success.

Tue Aug 11 15:41:58 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (check_domain_name): Change return type
	to const char*. Return a more detailed description of why
	the domain name is incorrect. Remove some obsolete code that
	caused the check to always fail.
	(check_ip_address): Change return type to const char*. Return
	a more detailed description of why the IP address is incorrect.
	(add_record): Use new versions of `check_domain_name' and
	`check_ip_address'.
	(domain_modify): Set $ORIGIN to be the domain name to allow
	users to enter a domain without a dot.
	
	* mod_webdns/parse.y (yylex): Merge number, IP address and
	domain name code in order to correctly handle domain names
	that start with a number.

Tue Aug 11 10:42:04 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/parse.y (resource_record): Support SOA lines
	with no parentheses.

Tue Aug 10 15:34:43 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (domain_add_primary): Set `default_ttl'
	to -1.
	* mod_webdns/parse.y (domain_name): Remove `@' token check.
	(begin_statement): Set `default_ttl' in zone file.
	(yylex): Return `@' as a NAME token.
	* mod_webdns/webdns.h (struct zonefile): Add `default_ttl'.
	* mod_webdns/zone.c (current_ttl): Delete.
	(zone_set_origin): Concate origin when new origin is not
	absolute.
	(zone_set_default_ttl): Delete.
	(zone_fixup_domain): New parameter `set'.
	Fix off-by-one error when checking if a domain name ends with
	a dot.
	(zone_add_resource_record): Fix crash if `server' is NULL. Fix
	logic error on `strcspn'. Set a default TTL, based on the SOA
	TTL, if one hasn't already been defined.
	(zone_read): Initialise `default_ttl'.
	(strip_origin): Fix off-by-one error. Where `domain' and `origin'
	are the same, output an `@'.
	(zone_save): Output a $TTL (default ttl) for the zone.

Tue Aug 10 12:26:30 1999  Nick Burrett  <nick@dsvr.net>

	* All files: Origin is now referred to as domain. $ORIGIN
	does not feature as a resource record.
	* mod_webdns/domain.c (sec_named_conf): Add missing argument
	to `masters'.
	(domain_get): Remove support for rr_origin.
	(domain_add_primary): Set current origin, rather than adding
	a resource record. Add extra parameter for `zone_save'.
	(domain_modify): Add extra parameter for `zone_save'.
	* mod_webdns/parse.y: Add token TTL.
	(begin_statement): Set current origin, rather than adding a
	resource record for $ORIGIN, thus allowing multiple $ORIGIN
 	directives in a zone file.  Add $TTL support.
	(yylex): Recognise $TTL.
	* mod_webdns/webdns.h (resource_type): Remove `rr_origin'.
	(struct resource_rec): Rename `origin' to `domain'. Reorder
	fields in line with a proper resource record. Add `ttl'.
	(zone_save): Add `domain_name' parameter.
	(zone_set_origin, zone_set_domain): Add decls.
	(zone_set_default_ttl): Add decl.
	* mod_webdns/zone.c (current_origin): New static buffer.
	(current_domain): New.
	(current_ttl): New.
	(zone_set_origin): New function.
	(zone_Set_domain): New function.
	(zone_set_default_ttl): New function.
	(zone_fixup_domain): New function.
	(zone_add_resource_record): Convert server names into fully qualified
	equivalients, taking into account the current $ORIGIN setting and
  	the last domain name.  Call `zone_fixup_domain' for this.
	(strip_origin): New function.
	(zone_save): Reverse the effects of `zone_add_resource_record'
	simplifying zone files by stripping out the domain name and making
	it the $ORIGIN; call `strip_origin' on server names to provide
 	this feature.  Remove support for resource record origin.
	(zone_type_to_name, case rr_origin): Remove.
	(zone_name_to_type): Remove $ORIGIN check.

Tue Aug 10 09:58:26 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (sec_named_conf): Should be `masters'
	not `master'.

Tue Aug 10 09:53:30 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (domain_add_secondary): Add missing
	indirection on `h_addr_list'.

Tue Aug 10 09:24:21 1999  Nick Burrett <nick@dsvr.net>

	* mod_webdns/domain.c (check_dir_structure): New function.
	(pri_named_conf): Renamed from `regenerate_named_conf'. Fix all
	callers.  Fix pathname error on zone entries.
	(sec_named_conf): New function.
	(domain_add_primary): Renamed from `domain_add'.  Fix all
	callers.  Call `check_dir_structure'.
	(domain_add_secondary): New function.
	* mod_webdns/mod_webdns.c (TOKEN_ADDPRI): Renamed from TOKEN_ADD.
	(TOKEN_ADDSEC): New macro.
	(mod_webdns_command_table): Add WEBDNS_ADDSEC; rename WEBDNS_ADD
	to WEBDNS_ADDPRI.
	(mod_webdns_transactions, case TOKEN_ADDSEC): New case.
	* mod_webdns/mod_webdns.h (CMD_WEBDNS_ADDSEC): New macro.
	(CMD_WEBDNS_ADDPRI): Renamed from `CMD_WEBDNS_ADD'.
	* mod_webdns/mod_webdns_lib.c (mod_webdns_do_cmd): Command
	if now WEBDNS_ADDPRI. Add support for WEBDNS_ADDSEC.
	(mod_webdns_command_list): Likewise.
	* mod_webdns/webdns.h (domain_add): Rename to `domain_add_primary'.
	Add declaration for `domain_add_secondary'.

Thu Aug  5 14:13:16 1999  Nick Burrett  <nick@dsvr.net>

	* vsclients.c (main): Remove check that virtual server name
	is similar to host server name.

Tue Aug  3 14:08:29 1999  Nick Burrett  <nick@dsvr.net>

	* Makefile.in (Makefile): Remove target to prevent Makefile
	attempting to re-build itself.

Mon Aug  2 11:37:41 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c (process_command): Check virtual server exists before
	determining server root.

Thu Jul 29 08:49:48 1999  Nick Burrett  <nick@dsvr.net>

	* user.c (userdel): Don't check user name length when trying to
	delete it - we want to be able to clear out old user names that
	are too long.

Tue Jul 21 09:47:57 1999  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_details): Output virtual server name.

Tue Jul 20 10:20:48 1999  Nick Burrett  <nick@dsvr.net>

	* mod_vs/vs.c (vs_account_create): Report error and don't continue
	if account cannot be created.

Thu Jul 15 08:55:16 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c (input): Read input one character at a time to get around
	a buffering problem.
	* apache.c (add_virtual_host): No longer the need to zero terminate
	the input, which also fixes a bug that truncated the line.
	(httpd_modify_virtual_host): Output the virtual host search name
	when it isn't found.

	* webclients.c (main, case TOKEN_HTTPDVHMOD): Fix typo.

Wed Jul 14 18:12:26 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c (input): Stop alarm timeout when complete message
	received.  

Wed Jul 14 15:57:23 1999  Nick Burrett  <nick@dsvr.net>

	* mod_quota/Makefile.in (clean): Delete all object files.
	* mod_ipacct/Makefile.in (clean): Likewise.
	* mod_vs/Makefile.in (clean): Likewise.
	* mod_webdns/Makefile.in (clean): Likewise.

Wed Jul 14 15:51:36 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.h (struct vsd_connection): Add `input_buffer' and
	`input_bufsiz'.
	Fix prototype for `input'.

Wed Jul 14 15:16:42 1999  Nick Burrett  <nick@dsvr.net>

	* vsd.c (input): Re-write to remove arbitary limit on input
	buffer.
	(main): Initialise `vsd_connection'.
	Use new argument form for `input'.
	* sendmail.c (virt_modify_table): Use new argument form for `input'.
	* apache.c (add_virtual_host): Likewise.
	* mod_webdns/domain.c (domain_modify): Likewise.

	* vsclients.c: Include stdlib.h.

Wed Jul 14 14:27:48 1999  Nick Burrett  <nick@dsvr.net>

	* vsd_lib.c (vsd_send_line): Remove 256 character transmission
	limit.

Wed Jul 14 14:03:41 1999  Nick Burrett  <nick@dsvr.net>

	* apache.c (scan_directive): Return result in a dynamically
	allocated buffer, alter parameters accordingly.
	(scan_virtual_hosts): Remove arbitary limit of 256 characters
	on VirtualHost and ServerName directives by using new format
	`scan_directive'.
	(find_virtual_host): Likewise.
	* vsd_lib.c (vsd_get_line): Allow receive buffer to dynamically
	grow according to the size of input.
	(vsd_open): Initialise receive buffer to NULL.
	* vsd_lib.h (struct _vsd_server): Change `buffer' type to char*.
	Change `dp' to int.

Tue Jul 13 16:59:03 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (check_domain_name): New function.
	(check_ip_address): New function.
	(validate_zone_file): New function.
	(add_record): Add syntax checking.
	(domain_modify): Improve syntax checking support and call
	`validate_zone_file' before saving the zone.

Tue Jul 13 11:09:07 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (domain_modify): Rename local `vecv'
	to the more appropriate `vecc'.
	Check for `+END' line earlier.
	Replace `continue' statements with a check of the new
	`error' flag.
	Free argument vector after each `+DATA' line processed.

Tue Jul 13 10:22:03 1999  Nick Burrett  <nick@dsvr.net>

	* webadmclients.c (main): Send output to stdout rather than
	stderr so that PHP can capture it.

Mon Jul 12 13:24:06 1999  Nick Burrett  <nick@dsvr.net>

	* mod_ipacct/ipacct.c (add64): New function for 64-bit addition
	of two 32-bit numbers for fixing problems with buggy compilers.
	(struct acct_info): Store accounting information in a series
	of unsigned 32 bit integers.
	(get_accounting): Support this new structure format.
	(ipacct_get_accounting): Output bandwidth in 32-bit pairs.

Mon Jul 12 11:22:56 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/domain.c (domain_add): Add a CNAME record for ftp.
	(domain_modify): Add missing `zonename' parameter to zone file
	error message.
	
	* mod_webdns/zone.c (zone_add_resource_record): Add parameter `pos'.
	(zone_del_resource_record): Change meaning of return value to be -1
	on error, or the array position of the record on success.
	* mod_webdns/domain.c (domain_modify): Save return value of
	`zone_del_resource_record' and add new token `replace' that uses
	that value. Make `add' default to adding a resource record to the
	end of the file.
	(domain_add): Update with new parameter for `zone_add_resource_record'.
	* mod_webdns/webdns.h (zone_add_resource_record): Add parameter `pos'.
	* mod_webdns/parse.y (begin_statement): Use -1 for `pos' parameter
	in `zone_add_resource_record'.
	(resource_record): Likewise.
	(yylex): Return 0 by default and remove unused variable `value'.

Thu Jul  8 12:02:10 1999  Nick Burrett  <nick@dsvr.net>

	* mod_webdns/mod_webdns_lib.c (mod_webdns_check_syntax): Accept
	a variable number of arguments.
	(mod_webdns_command_list): `webdns_modify' takes a domain
	name as the third parameter.

	* vsclients.c (main): Allow the superuser to execute commands.
	
Tue Jul  6 08:47:26 1999  Nick Burrett  <nick@dsvr.net>

	* auth.c (authenticate_server): Don't log connection message.

	* mod_vs/mod_vs.c (vs_reboot): Remove login sanity check.
	Remove old system V style startup code check.
	(vs_shutdown, vs_startup): Likewise.
	(vs_account_enable): Use globally available virtual server map
	structure instead of loading our own private copy. Check virtual
	server existence in the map file rather than the passwd file.
	(vs_account_disable): Likewise.
	(vs_account_create, vs_account_delete): Likewise.

Thu Jul  1 13:37:35 1999  Nick Burrett  <nick@dsvr.net>

	* mod_ipacct/ipacct.c (get_accounting): Re-written to support
	IP aliases on a virtual server.
	(ipacct_get_accounting): Use pre-loaded server map file rather
	than loading our own local copy.

Thu Jul  1 10:52:43 1999  Nick Burrett  <nick@dsvr.net>

	* user.c (userdel): Place user privilege deletion code inline
	and look in virtual server root for etc/vsd/priv rather than
	host server root.

Thu Jul  1 10:34:19 1999  Nick Burrett  <nick@dsvr.net>

	* apache.c (httpd_add_virtual_host): Parameter to `vsd_save_file'
	should be the server root path and not the virtual server name.

Wed Jun 30 10:03:45 1999  Nick Burrett <nick@dsvr.net>

	* mod_vs/mod_vs_lib.c (mod_vs_do_cmd): `vs_details' now takes
	it's second parameter as an optional argument. Accept a
	multiline response from `VS_DETAILS'.
	* mod_vs/mod_vs.c (mod_vs_command_table): The argument for
	`VS_DETAILS' is now optional.
	(mod_vs_check_syntax): Support optional arguments.
	* mod_vs/vs.c (vs_details): List all virtual servers if no arguments
	are passed.

Mon Jun 28 15:48:07 1999  Nick Burrett <nick@dsvr.net>

	* module.c (module_help): Don't report error.

	* mod_vs/vs.c (vs_account_disable): Shutdown the server before
	setting the disabled flag.
	(vs_account_delete): Shutdown the server immediately rather
	than leaving it to the `vs-batch.pl' script.

Thu Jun 24 14:58:39 1999  Nick Burrett <nick@dsvr.net>

	* mod_vs/vs.c (vs_account_create): Replace hard coded 128Mb for
	the disk quota with a parameter.

Thu Jun 24 12:08:35 1999  Nick Burrett <nick@dsvr.net>

	* vsd.c (process_command): Return type from `module_syntax' is
	now const char *. Fix checking appropriately.
	(transaction_vs_admin): Replace old `hostname' use with new
	`vsd_connection->virtual_server'.

Wed Jun 23 18:46:52 1999  Nick Burrett <nick@dsvr.net>

	* vsclients.c (main): Fix a silly mistake: change `vec' to type
	char **.

Wed Jun 23 18:42:12 1999  Nick Burrett <nick@dsvr.net>

	* vsclients.c (main): Call `vsd_set_interface' to set interface type.
	* webadmclients.c (main): Likewise.

	* mod_quota/mod_quota_lib.c
	(mod_quota_do_cmd, case CMD_QUOTA_USERGET): User name is argv[2]
	rather than argv[1].
	* vsclients.c (main): When calling `module_command' create an
	argument vector that is similar in format to that passed by
	`webclients' and `webadmclients'.

Wed Jun 23 17:20:07 1999  Nick Burrett <nick@dsvr.net>

	* webclients.c (main): Update `status' error check to print an
	error when `status != 0'. Fix exit code (for program) appropriately.
	* webadmclients.c (main): Likewise.

Wed Jun 23 17:07:40 1999  Nick Burrett <nick@dsvr.net>

	* mod_quota/mod_quota.c (mod_quota_check_syntax): Change return type
	to const char *.
	(mod_quota_command_table): Add extra fields for new struct command_tag
	entries.
	* mod_ipacct/mod_ipacct.c (mod_ipacct_check_syntax): Likewise.
	(mod_ipacct_command_table): Likewise
	* mod_vs/mod_vs.c (mod_vs_check_syntax): Likewise.
	(mod_vs_command_table): Likewise.
	* mod_webdns/mod_webdns.c (mod_webdns_check_syntax): Likewise.
	(mod_webdns_command_table): Likewise.

Wed Jun 23 12:27:34 1999  Nick Burrett <nick@dsvr.net>

	* vsd.h (struct vsd_connection): New structure.
	(hostname, password, username, virtual_server_dir): Delete decls.
	* vsd.c (main): Create a `vsd_connection' instance.
	(hostname, password, username, virtual_server_dir): Replace all
	occurances with their equivalents in `vsd_connection'.
	(process_command): Likewise.
	(transaction_vs_admin): Remove `virtual_server_dir' check.
	(transaction_host_admin): Likewise.
	* auth.c (authenticate_server): Likewise.
	* user.c (useradd, userdel, usermod, chuserpass): Likewise.
	(groupadd, groupdel, modify_user_rights): Likewise.
	(set_user_rights, common_set_rights): Likewise.
	(list_user_rights): Likewise.
	
	* auth.c (server_login): Remove obsolete host server user check
	code.

	* module.h (ADMIN_VS, ADMIN_HOST): Redefine as bitwise macros.
	(ADMIN_CLIENT): New macro.
	(struct command_tag): Add fields `client_command',
	`client_command_args' and `client_command_syntax'.
	(syntax_func): Change return type to const char *.
	(module_syntax): Likewise.
	* module.c (module_lookup_command): Use new bitwise `level'
	field and support command lookups from `vsclients'.
	(module_syntax): Likewise.
	Change return type to const char *.
	* webadmclients.c: Fix call to `module_syntax'.
	* webclients.c: Likewise.

	(module_parse_argument_list): Removed. Function moved to `libvsd'.

	* passwd.c (vsd_openpw): Obtain virtual server root path from
	`vsd_map_server_root'.
	* sendmail.c (load_virtusertable): Likewise.
	(save_virtusertable): Likewise.
	(rebuild_virtusertable): Likewise.
	* user.c (useradd, userdel, usermod, chuserpass): Likewise.
	(groupadd, groupdel, common_set_rights): Likewise.
	
	* proftpd.c (module_proftp_check_chrt_priv): `vsd_load_file' and
	`vsd_save_file' now take the server root as s parameter rather
	than the virtual server name. Similarly `vsd_priv_load' and
	`vsd_priv_save' have also changed. Fix all occurances.
	(module_proftd_add_chrt_priv): Likewise.
	* apache.c (httpd_enumerate_virtual_hosts): Likewise.
	(httpd_delete_virtual_host): Likewise.
	(httpd_add_virtual_host): Likewise.
	(httpd_get_virtual_host): Likewise.
	* sendmail.c (sendmail_cw_list_domain): Likewise.
	(sendmail_cw_add_domain): Likewise.
	(sendmail_cw_delete_domain): Likewise.
	* user.c (common_set_rights, list_user_rights): Likewise 

	* user.c (userlist): Re-implement user scan to not rely on quota
	code.
	(list_user_rights): Likewise.

	* util.c (group_exists): `vsd_opengrp' takes the virtual server
	root directory has it's parameter.

	Modularise disk quota support and virtual server control routines.
	* vsd.c (TOKEN_QUOTA_*, TOKEN_*_VS, TOKEN_ACCOUNT_*): Delete macros.
	(command_list): Remove from here.
	(transaction_vs_admin, transaction_host_admin): Likewise.
	* vsd.h (*_quota, reboot_vs, shutdown_vs, startup_vs): Delete
	function declarations.
	(account_*): Likewise.
	* vsclients.c (enum program_type): Remove `quota_user_get',
	`quota_user_set', `quota_stats', `shutdown_vs', `startup_vs',
	`reboot_vs'. These are now implemented in a module
	(main): Fix appropriately - call `module_syntax' and `module_command'
	for unrecognised commands.
	(main): Strip pathname from `program_name'.
	* webclients.c: Remove commands `quotastats', `setquota',
	`getvsquota', `startvs', `shutdownvs', `rebootvs'.
	* webadmclients.c: Remove commands `setvsquota', `vscreate',
	`vsdelete', `vsenable', `vsdisable'.
	* vsd_lib.c (vsd_quota_user_set): Delete function.
	(vsd_quota_stats): Delete function.
	(vsd_quota_vs_get): Delete function.
	(vsd_quota_vs_set): Delete function.
	(vsd_control_vs): Delete function.
	(vsd_adm_account_state): Likewise.
	(vsd_adm_account_create): Likewise.
	(vsd_adm_account_delete): Likewise.
	* vsd_lib.h (struct vsd_server): Add `virtual_server'.
	Delete declarations of the above functions (from vsd_lib.c).
	
	* vsd_lib.c (vsd_set_error): Renamed from`set_error' and made global.
	(vsd_set_response): Renamed from `set_response' and made global.
	(vsd_get_line): Renamed from `get_line' and made global.
	(vsd_interface_type): Define.
	(vsd_response_ptr): New function.
	(vsd_set_interface): New function.
	(vsd_interface): New function.
	* vsd_lib.h: Adjust declarations in here.
	(vsd_reply_success): Change return conditions to 0 on success and
	1 on error.
	(vsd_process_reply): Likewise.
	(vsd_send_line): Adjust appropriately.
	(vsd_list_rights): Likewise.

	* webclients.c (main): Call `vsd_set_interface'.
