Wed Dec 12 10:03:28 2001 Martin Knight * modules/mod_ca/ca.c: Corrected argument being sent to vsd_openssl_ca_vsdkey by ca_keyput. * modules/mod_ca/ca.c: Corrected argument sent to vsd_openssl_ca_vsdcrt by ca_certput. Sun Nov 11 17:39:49 2001 Damion Parry * modules/mod_vd/vd.c: Added check that minimum domain name is greater the 5 chars. Wed Nov 7 13:37:24 2001 Damion Parry * Merged in 1.4.10-2 Bug fixes. Mon Oct 29 19:26:23 2001 Tim Sellar * io.c: Reduce severity of common logging Wed Sep 12 13:48:29 2001 Damion Parry * modules/mod_vuser/vuser.c [vuser_mbxpass]: Removed confirmation of old passwd string, because if it has been forgotten, then no-one will know it. Thu Sep 6 04:48:11 2001 Martin Knight * modules/mod_vd/vd.c: Fixed typo. Wed Sep 5 18:05:03 2001 Damion Parry * modules/mod_vd/vd.c: Fixed problem that arose from the change in the domain level check. Wed Sep 5 12:53:18 2001 Damion Parry * modules/mod_vd/vd.c: Removed some debugging printf's I left in. Wed Sep 5 12:48:37 2001 Damion Parry * vsdadm.c: Added extra bit on syslog logging to cope with vd_add, it has 9 arguments. * modules/mod_vd/vd.c: Changed test for unregistered domains, so that it will test even if there are no domains registered. Tue Sep 4 16:23:84 2001 Tim Sellar * mod_ca/ca.c: Support hash referencing of certificates. * mod_ca/mod_ca.c: Support hash referencing of certificates. Mon Sep 3 13:29:52 2001 Damion Parry * modules/mod_bind/domain.c: Changed all occurrences of writing to vs->quota, to vs->maxip, preventing the use of the quota field. Mon Sep 3 13:22:40 2001 Damion Parry * modules/mod_user/user.c: (user_add) If the homedir is not set, a copy of line is assigned homedir, rather than making the two equal each other. Solves the problem of failing to create users home directory. Mon Sep 3 10:10:65 2001 Tim Sellar * mod_vs/vs.c: Support CertifcateAuthorityServer directive. Sat Sep 1 14:54:15 2001 Tim Sellar * mod_ca/mod_ca.c: Added CA_CERTLIST. * mod_ca/mod_ca.h: Added CA_CERTLIST. * mod_ca/ca.c: Added CA_CERTLIST. * mod_ca/ca.h: Added CA_CERTLIST. Sat Sep 1 10:08:93 2001 Tim Sellar * mod_ca/ca.c: Fix the CA_*PUT commands for sub VSD CAs. Fri Aug 31 11:25:66 2001 Tim Sellar * mod_ca/ca.c: Fix the CA_*PUT commands. * vsdadm.c: Support virtualised ssl.crt/ssl.key directories. * io.c: Support virtualised ssl.crt/ssl.key directories. Wed Aug 29 16:26:29 2001 Tim Sellar * mod_ca/ca.c: Support rename and report duplicate certs. Tue Aug 28 14:30:15 2001 Tim Sellar * mod_bind/dbase.c: Move storage to /var/named/virtual. * mod_bind/dir.c: Move storage to /var/named/virtual. * mod_bind/domain.c: Move storage to /var/named/virtual. * mod_sendmail/sendmail.c: Correct hard-coded call to newaliases. Fri Aug 24 09:29:54 2001 Damion Parry * modules/mod_ca/ca.c: Changes submitted by Tim Sellar: Removal of ca_svrroot sub, and replaced by #define CA_ROOT. Thu Aug 23 16:08:19 2001 Martin knight * modules/mod_vd/vd.c: added sub vd_chmod_run_command, called from vd_config_domain to set the permissions on pm.rc to 664. Thu Aug 23 12:27:15 2001 Tim Sellar * mod_ca/mod_ca.c: Added CA_VSLIST. * mod_ca/mod_ca.h: Added CA_VSLIST. * mod_ca/ca.c: Added CA_VSLIST. * mod_ca/ca.h: Added CA_VSLIST. * vsdadm.c: Reflect libvsd openssl changes. * vsd.c: Fix bug with authentication beneath ADMIN_HOST level. * io.c: Implement sub VSD CA authentication. Tue Aug 21 17:06:19 2001 Damion Parry * modules/mod_part/part.c: Added '.' to the list of valid chars for a skel name. Mon Aug 20 16:20:52 2001 Damion Parry * modules/mod_vd/mod_vd.c: Chenged the protocol for vd_modify. * modules/mod_vd/protocol.txt: documented protocol change. * modules/mod_vd/vd.c: Implemented vd_modify so that the various attribute limits can be changed. Added a small extra bit of checking in vd_account_create so that the vs's real user limit can't be exceeded. Sun Aug 19 20:03:74 2001 Tim Sellar * vsdadm.c: Default to highest authority certificate available. * vsd.c: Accept higher authority certificates in lieu of exact match. Sun Aug 19 19:12:26 2001 Tim Sellar * configure.in: Default to with_openssl=yes. * mod_ca/configure.in: Default to with_openssl=yes. Fri Aug 17 18:40:21 2001 Tim Sellar * mod_ca/mod_ca.c: Improved error reporting. * mod_ca/mod_ca.h: Improved error reporting. * mod_ca/ca.c: Improved error reporting. * mod_ca/ca.h: Improved error reporting. Fri Aug 17 18:03:00 2001 Damion Parry * Makefile.in: Hacked makefiles so that both a SSL enabled and non version of vsd and vsdadm are built. * acconfig.h: Changed varibales so that they can be specified at compile time. * configure.in: Changed varibales so that they can be specified at compile time. * io.h: Changed HAVE_OPENSSL to WITH_OPENSSL. * vsdadm.c: Changed the definityion of VSD_PORT to be within vsdadm.c instead of in config.h. Wed Aug 15 11:40:44 2001 Tim Sellar * mod_ca/mod_ca.c: Implement sub VSD CA support. * mod_ca/mod_ca.h: Implement sub VSD CA support. * mod_ca/ca.c: Implement sub VSD CA support. * mod_ca/ca.h: Implement sub VSD CA support. * vsdadm.c: Implement sub VSD CA support. * io.c: Implement sub VSD CA support. Fri Aug 10 10:54:30 2001 Martin Knight * vd_getvdalias: Changed for loop. now the first vd alias on the second(+) virtual domains can be deleted. Thu Aug 9 17:35:12 2001 Damion Parry * modules/mod_vuser/vuser.c: Added check so that a default forwarder will not be deleted in the fwd arg does not match the actual forwarder. Thu Aug 9 17:01:16 2001 Damion Parry * modules/mod_vuser/vuser.c: Added check to make sure that ony one default forwarder can be added to a vuser. Added a check to make sure that a mailbox will not be deleted if a vuser has a forwarder entry to it. Thu Aug 9 12:16:11 2001 Damion Parry * modules/mod_vs/vs.c: Modified the conditions looking for nameservers supplied as args in vs_account_create. Wed Aug 8 14:23:02 2001 Damion Parry * modules/mod_vuser/vuser.c (vuser_add): Removed statement setting the fwd string, on occassion argv[1] was not NULL, but also not set, so attempts to set fwd were causing vuser_add to fall over. The fwd pointer was not used anywhere in the subroutine. Fri Aug 3 16:15:42 2001 Damion Parry * modules/mod_quota/configure.in: Added section to detect kernel 2.4 style quotas. Contributed by jumpline.com. * modules/mod_quota/quota.c: Added support for kernel 2.4 style quotas based on the work done by jumpline.com. Tue Jul 31 14:08:55 2001 Damion Parry * modules/mod_vd/vd.c: Added a '\n' to the passwd string fprintf(). Tue Jul 31 12:02:44 2001 Damion Parry * module.c: Changed level checks, so that permissions are propogated through the levels: eg: with an ADMN_HOST cert, you can now execute operations on all levels. * vsdadm.c: Made vsdadm look for commands at ADMON_HOST level. * modules/mod_part/mod_part.c: Dropped subroutines that had optional levels to the lower level. * modules/mod_vd/mod_vd.c: Dropped subroutines that had optional levels to the lower level. * modules/mod_vs/mod_vs.c: Dropped subroutines that had optional levels to the lower level. Mon Jul 30 16:24:15 2001 Damion Parry * modules/mod_vd/protocol.txt: Updated. Mon Jul 30 15:39:03 2001 Damion Parry * modules/mod_vd/vd.c: Changed the passwd string for the admin user of a virtual domain, so that it is the string up to the first ".". Sat Jul 28 20:34:31 2001 Damion Parry * modules/mod_vd/mod_vd.c: Added MaxVD to list of args being passed. * modules/mod_vd/vd.c: Added check to make sure that the max number of virtual domains has not been exceeded before adding a new one. * modules/mod_vd/vd.h: Added protoype for vd_check_limit (). * modules/mod_vs/mod_vs.c: Added max num of vd's to vs_create. * modules/mod_vs/vs.c: Added scope for a limit on the number of virtual domains. * modules/mod_vuser/vuser.c: Added checks to make sure the max number of vusers, mbx's and msg's has not been exceeded before adding a new one. Wed Jul 25 12:03:44 2001 Tim Sellar * mod_vuser/vuser.c: Improve dflt forwarder handling. Tue Jul 24 18:36:34 2001 Tim Sellar * mod_vuser/vuser.c: Tidy up. Tue Jul 24 16:36:71 2001 Tim Sellar * mod_vd/vd.c: Ensure a single '\n' is in the .index file for admin user. Mon Jul 23 16:49:55 2001 Damion Parry * modules/mod_vd/vd.c: Removed extra '/' from the begining of the path to the domain's procmailrc file, and changed the ownership of the mailertable file to admin.admin from mail.admin. Fri Jul 20 14:27:07 2001 Damion Parry * modules/mod_vd/vd.c (vd_details): Corrected small problem printing vd_alias details. Fri Jul 20 10:56:02 2001 Damion Parry * modules/mod_vuser/vuser.c (mbx_del): Added errno check so that if the mbox file does not exist when trying to remove it, the error is not reported. Fri Jul 13 11:22:21 2001 Damion Parry * modules/mod_vd/vd.c: Changed the ownership of the pm.rc file to admin.admin instead of mail.admin. Thu Jul 12 17:09:23 2001 Damion Parry * modules/mod_vd/vd.c: Cheange the ownership of the var/spool/virtual/ directory to admin.admin instead of mail.admin. Wed Jul 4 15:09:46 2001 Damion Parry * modules/mod_tz/mod_tz.c: Corrected the argument being sent as protocol. Fri Jun 29 14:30:21 2001 Damion Parry * modules/mod_vd/mod_vd.c: Changed the help description for vd_add from: create virtual server, to virtual domain. Fri Jun 29 13:34:12 2001 Damion Parry * modules/mod_vuser/mod_vuser.c: Dropped the level from ADMIN_VS to ADMIN_VD, hacked the vsdadm cmd args, so that vsdadm works (removed the need for the vs name to be supplied, sorry). * modules/mod_vuser/vuser.c: Dropped the level for ADMIN_VS to ADMIN_VD and changed each subroutine to obtain the domain from the vc structure. Fri Jun 29 12:38:18 2001 Damion Parry * modules/mod_vd/vd.c (vd_map_add_alias): Added a check to make sure that the alias name isn't defined as a domain elsewhere. Thu Jun 28 13:56:30 2001 Damion Parry * modules/mod_vd/vd.c: Corrected name for amilertable.db Thu Jun 28 12:44:05 2001 Damion Parry * modules/mod_vd/vd.c: The full path (including vs mountpoint) was being added to the /etc/mailertable file. Wed Jun 27 13:01:32 2001 Damion Parry * modules/mod_vd/vd.c: Added vd_detvdalias sub to retrieve any aliases with the given name, plus a few other minor corrections. Tue Jun 26 18:34:40 2001 Damion Parry * modules/mod_vuser/vuser.c: Added vuser_chown subroutine to change the perms of the users recipe to mail.admin. Tue Jun 26 18:04:09 2001 Damion Parry * modules/mod_vd/vd.c: Major tidy up, and added sections to add an admin directory & recipe in the etc/procmailrcs directory. * modules/mod_vd/vd.h: changes made to match the tody up. Mon Jun 25 15:16:45 2001 Damion Parry * modules/mod_vd/vd.c: Added vd_dir_files_link & vd_dir_files_unlink to cope ith the fact that the various domain specific directories will [need to] contain an unknown quantity of files created/deleted. * modules/mod_vd/vd.h: Added prototypes for vd_dir_files_link & vd_dir_files_unlink. Mon Jun 25 12:27:71 2001 Tim Sellar * mod_vuser/vuser.c: Restrict 'internal' forwarders to mailboxes. Sun Jun 24 15:44:37 2001 Tim Sellar * mod_vuser/vuser.c: Default forwarder support. * mod_vuser/vuser.h: Default forwarder support. * mod_vuser/mod_vuser.c: Default forwarder support. * mod_vuser/mod_vuser.h: Default forwarder support. Fri Jun 22 16:57:13 2001 Damion Parry * modules/mod_vd/mod_vd.c: Added support for domain aliasing. * modules/mod_vd/mod_vd.h: Added support for domain aliasing. * modules/mod_vd/vd.c: Added support for domain aliasing. * modules/mod_vd/vd.h: Added support for domain aliasing. Fri Jun 22 10:35:78 2001 Tim Sellar * mod_ca/ca.c: Correct non-SSL compilation. Thu Jun 21 11:03:23 2001 Tim Sellar * mod_ca/ca.c: Enforce single exit points and improve CA_LIST functionality. * mod_ca/mod_ca.c: Improve CA_LIST functionality. Wed Jun 20 18:05:29 2001 Tim Sellar * mod_sendmail/sendmail.c: Looser checking of RHS to allow for piping to programs. Wed Jun 20 09:55:26 2001 Tim Sellar * mod_ca/ca.c: Roll-back to SSLv2. * vsdadm.c: Roll-back to SSLv2. * io.c: Roll-back to SSLv2. Mon Jun 18 16:34:87 2001 Tim Sellar * mod_vuser/vuser.c: Support recipe file per vuser. * mod_vuser/vuser.h: Support recipe file per vuser. * mod_vuser/mod_vuser.c: Support recipe file per vuser. * mod_vuser/mod_vuser.h: Support recipe file per vuser. Fri Jun 15 15:57:40 2001 Damion Parry * module.h: Changed ADMIN_DN to ADMIN_VD to reflect the change in name of the module. * vsd.c: Changed all occurences of ADMIN_DN to ADMIN_VD to reflect the change in the name of the module. * modules/mod_part/mod_part.c: Changed the vsd_send_command for PART_SKELLIST so that all partitions are listed. * modules/mod_vd/Makefile.in: Moved from mod_dn to mod_vd. * modules/mod_vd/configure.in: Moved from mod_dn to mod_vd. * modules/mod_vd/mod_vd.c: Moved from mod_dn to mod_vd. * modules/mod_vd/mod_vd.h: Moved from mod_dn to mod_vd. * modules/mod_vd/protocol.txt: Moved from mod_dn to mod_vd. * modules/mod_vd/vd.c: Moved from mod_dn to mod_vd. * modules/mod_vd/vd.h: Moved from mod_dn to mod_vd. * modules/mod_dn/Makefile.in: Moved to mod_vd. * modules/mod_dn/configure.in: Moved to mod_vd. * modules/mod_dn/dn.c: Moved to mod_vd. * modules/mod_dn/dn.h: Moved to mod_vd. * modules/mod_dn/mod_dn.c: Moved to mod_vd. * modules/mod_dn/mod_dn.h: Moved to mod_vd. * modules/mod_dn/protocol.txt: Moved to mod_vd Fri Jun 15 12:17:28 2001 Tim Sellar * mod_vuser/vuser.c: New directory structure. * mod_dn/config.status: Removed (tidy up). Thu Jun 14 15:22:43 2001 Damion Parry * modules/mod_ca/configure.in: Modified to support --with-openssl * modules/mod_ca/mod_ca.c: Added '#include "config.h"' so that it can 'see' the defined produced by --with-openssl. * modules/mod_vs/acconfig.h: Added an Idaya header. * modules/mod_ca/acconfig.h: New file, for --with-openssl support. Thu Jun 14 13:51:10 2001 Damion Parry * acconfig.h: Added support for a --with-posixcmdline switch with configure. * configure.in: Added support for a --with-posixcmdline switch which #define POSIX_CMDLINE 1. * modules/mod_vs/acconfig.h: New file, added for the support of POSIX_CMDLINE * modules/mod_vs/configure.in: Added support for a --with-posixcmdline switch which #define POSIX_CMDLINE 1. * modules/mod_vs/mod_vs.c: Placed the syntax message & send_command statments withing #ifdef POSIX_CMDLINE, to enable switching between the two formats for vs_create. * modules/mod_vs/vs.c(vs_account_create): Placed the command line option processind section with #ifdef POSIX_CMDLINE, to enable switching between the two formats. * modules/mod_dn/config.status: Removed unecessary file. Thu Jun 14 09:54:08 2001 Damion Parry * configure.in: Updated version number to 1.4.9 for new release. Thu Jun 14 01:05:28 2001 Tim Sellar * mod_vuser/mod_vuser.c: Added functionality. * mod_vuser/mod_vuser.h: Added functionality. * mod_vuser/vuser.c: Added functionality. * mod_vuser/vuser.h: Added functionality. Wed Jun 13 17:19:10 2001 Damion Parry * vsd.c (process_requests): When determining the appropriate level, removed the error message & replaced with a statement: vc->vs = NULL. * vsdadm.c: Added ADMIN_DN level to all of the mod_command* calls. * modules/mod_dn/dn.c: Fixed DN_DETAILS. * modules/mod_dn/mod_dn.c: Changed the send_command calls for DN_DETAILS to reflect the changes made to the code. Wed Jun 13 14:31:49 2001 Damion Parry * vsd.c: Corrected minor problem introduced byt he addidtion of ADMIN_DN support (host server not being properly set). Wed Jun 13 11:52:36 2001 Damion Parry * module.h: ADMIN_HOST changed to 4 from 3, we bitwise-OR the levels (DOH!). Wed Jun 13 11:14:25 2001 Damion Parry * vsd.c (proces_requests): Added support for the use of a ADMIN_DN level. * module.h: Added a definition for an ADMIN_DN level, for use with managed domains. Mon Jun 11 11:45:77 2001 Tim Sellar * mod_vuser/mod_vuser.c: Enable/Disable vuser support. * mod_vuser/mod_vuser.h: Enable/Disable vuser support. * mod_vuser/vuser.c: Enable/Disabl vuser support. * mod_vuser/vuser.h: Enable/Disbale vuser support. Sat Jun 9 11:10:25 2001 Tim Sellar * mod_vuser/configure.in: Added. * mod_vuser/Makefile.in: Added. * mod_vuser/mod_vuser.c: Added. * mod_vuser/mod_vuser.h: Added. * mod_vuser/vuser.c: Added. * mod_vuser/vuser.h: Added. Fri Jun 8 13:42:39 2001 Damion Parry * protocol.txt: New file documenting the mod_dn protocol. * mod_dn: new module for creation/deletion/modification of managed domains. * mod_dn/Makefile.in: New file. * mod_dn/config.status: New file. * mod_dn/configure.in: New file. * mod_dn/dn.c: New file. * mod_dn/dn.h: New file. * mod_dn/mod_dn.c: New file. * mod_dn/mod_dn.h: New file. Thu Jun 7 10:27:89 2001 Tim Sellar * mod_ca/configure.in: Tidy up. * mod_ca/mod_ca.c: Correct compilation without OpenSSL. * mod_ca/mod_ca.h: Correct compilation without OpenSSL. * mod_ca/ca.c: Correct compilation without OpenSSL. * mod_ca/ca.h: Correct compilation wihtout OpenSSL. Tue Jun 5 09:46:21 2001 Damion Parry * mod_vs/vs.c: Added the ip address to the list of items printed to vsd.accounts by vs_create & vs_detele (to allow the removal of iptables rules when deleting a virtual server). Mon Jun 4 12:45:49 2001 Tim Sellar * mod_ca/mod_ca.c: Clearer command usage. Sun Jun 3 19:40:29 2001 Tim Sellar * io.c: SSL enhancements + SSLv3. * vsdadm.c: SSL enhancements + SSLv3. * mod_ca/mod_ca.c: SSL enhancements. * mod_ca/mod_ca.h: SSL enhancements. * mod_ca/ca.c: SSL enhancements. * mod_ca/ca.h: SSL enhancements. Fri Jun 1 18:40:29 2001 Tim Sellar * io.c: Clearer openssl fn names. * vsdadm.c: Clearer openssl fn names. Fri Jun 1 18:10:29 2001 Tim Sellar * io.c: Get OpenSSL configuration from openssl.cnf. * vsdadm.c: Get OpenSSL configuration from openssl.cnf. Thu May 31 18:38:55 2001 Tim Sellar * vsdadm.c: Get OpenSSL configuration from openssl.cnf. Thu May 31 14:07:08 2001 Damion Parry * vsdadm.c: Added a few extra command checks to prevent a core dump if an unknown/mis-spelled command is provided. Fri May 25 14:10:00 2001 Tim Sellar * io.c: Remove dependencies on ca directoty. Wed May 23 16:19:11 2001 Damion Parry * mod_part/Makefile.in: Added * mod_part/configure.in: Added * mod_part/mod_part.c: Added * mod_part/mod_part.h: Added * mod_part/part.c: Added * mod_part/part.h: Added * mod_part/protocol.txt: Added * mod_vs/vs.c: Integreted skel and hosting server changes from pre_1_4_8 branch. * mod_priv/mod_priv.c: merged bug-fixes in from pre_1_4_8 branch. * mod_bind/protocol.txt: merged protocol changes in from pre_1_4_8 branch. Tue May 21 11:40:00 2001 Tim Sellar * Integrating enhancements from 1.4.8 branch... * mod_ca/Makefile.in: Added. * mod_ca/configure.in: Added. * mod_ca/ca.c: Added. * mod_ca/ca.h: Added. * mod_ca/mod_ca.c: Added. * mod_ca/mod_ca.h: Added. Tue May 21 11:10:00 2001 Tim Sellar * Integrating enhancements from 1.4.8 branch... * configure.in: Default to port 1725 non-SSL, port 1726 SSL. --with-vsdport temporarily disabled. * io.c: Support crl * vsd.c: Improved cert handling. * vsdadm.c: Improved cert handling. Fri Apr 6 17:07:16 2001 Nick Burrett * module.h: Make C++ friendly. Thu Apr 5 10:33:17 2001 Nick Burrett * mod_bind/domain.c (domain_add): The change from the DSVR branch of Mon Jan 29 14:25:42 2001 never actually made it into the tree. Re-merged. Thu Apr 5 10:18:24 2001 Nick Burrett * mod_bind/ChangeLog.DSVR: Renamed from ChangeLog. This prevents Emacs confusion and signifies that all mod_bind changes should be entered in here. * mod_bind/domain.c (domain_add): Use BIND_DB rather than WEBDNS_DB. * mod_bind/config.log: Remove from CVS tree. * mod_bind/config.h: Likewise. * mod_bind/config.h.in: Likewise. Thu Apr 5 10:09:32 2001 Nick Burrett Bring in line with Fri Jun 30 10:23:09 2000 change. * mod_bind/config.guess: Delete file. * mod_bind/config.sub: Delete file. * mod_bind/install-sh: Delete file. Thu Apr 5 09:15:29 2001 Nick Burrett DSVR branch merge Tue Jan 30 15:17:53 2001 Nick Burrett * mod_bind/domain.c (add_record): Flag error when CNAME is used with an @. Mon Jan 29 14:25:42 2001 Nick Burrett * mod_bind/domain.c (domain_add): Remove primary/secondary distinction. Should fix problems registering .it and .ie domains. Mon Jan 8 10:28:35 2001 Nick Burrett * mod_bind/domain.c (check_domain_name): Check for 63 characters inbetween dots, rather than the full domain. (check_origin): Log an error if we couldn't open WEBDNS_DB. Thu Apr 5 09:12:34 2001 Nick Burrett DSVR branch merge Thu Jan 4 14:28:32 2001 Nick Burrett Support remote modification of a virtual server timezone. * mod_tz/Makefile.in: New file. * mod_tz/configure.in: New file. * mod_tz/tz.c: New file. * mod_tz/mod_tz.c: New file. * mod_tz/mod_tz.h: New file. Thu Apr 5 08:59:37 2001 Nick Burrett DSVR branch merge Fri Feb 2 10:08:38 2001 Nick Burrett * mod_apache/apache.c (delete_decl): If token is NULL then assume we are deleting a VirtualHost. Minor comment changes. Wed Jan 31 13:22:55 2001 Nick Burrett * mod_sendmail/sendmail.c (read_sendmail_cf): Try an alternative location of sendmail.cf. Wed Dec 20 11:34:21 2000 Nick Burrett * Makefile.in (all-clean): Terminate immediately if an error occurs in the sub-target. (all-modules): Likewise. Tue Dec 19 16:24:57 2000 Nick Burrett Add support for manipulating Directory declataions and .htpasswd files in Apache config. * mod_apache/apache.c (scan_directive): Make more generic. Add prefix parameter. Fix all callers. (delete_decl): Renamed from delete_virtual_host. Add parameters token and token_param, which will help make the code not just specific to VirtualHost decls. Fix all callers. (add_decl): Renamed from add_virtual_host. Add token parameter. Fix all callers. (find_definition): New function. (apache_htp_grplist): New function. (apache_htp_grpadd): New function. (apache_htp_grpdel): New function. (apache_htp_grpget): New function. (apache_dir_list): New function. (apache_dir_add): New function. (apache_dir_del): New function. (apache_dir_get): New function. * mod_apache/apache.h (apache_htp_grplist): Add declaration. (apache_htp_grpadd, apache_htp_grpdel): Likewise. (apache_htp_grpget, apache_dir_list): Likewise. (apache_dir_add, apache_dir_del): Likewise. (apache_dir_get): Likewise. * mod_apache/mod_apache.c (clist): Add commands APACHE_HTP_GRPLIST, APACHE_HTP_GRPADD, APACHE_HTP_GRPDEL, APACHE_HTP_GRPGET, APACHE_DIR_LIST, APACHE_DIR_ADD, APACHE_DIR_DEL, APACHE_DIR_GET. (mod_apache_cmd): Add handlers for these commands. * mod_apache/mod_apache.h: Add CMD_* macros for the above commands. Tue Apr 3 13:33:00 2001 Nick Burrett Support multiple skels. * mod_vs/mod_vs.c (clist): VS_CREATE syntax has changed. (mod_vs_cmd): Pass VS_CREATE arguments unchanged. Now handled by getopt in the function. * mod_vs/vs.c (vs_account_create): Re-work. Syntax checking is now done by getopt. Build arguments into a struct vsd_vs for vsd_map_add_server argument change. Add support for an alternative skel. * mod_bind/domain.c (domain_addvs): Build arguments into a struct vsd_vs for vsd_map_add_server argument change. Get error message from vsd_log. (domain_restorevs): Likewise. Tue Mar 13 22:09:34 2001 Tim Sellar * vsdadm.c: Introduce heirarchy within client directory of CA based on supplied host server name/ip. Tue Feb 27 17:55:25 2001 Damion Parry * 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 * vsdadm.c (main): Added checks for 'operation' command line argument Thu Feb 8 15:40:04 2001 Nick Burrett * vsd.c (process_requests): Fix thinko in last change. Tue Feb 6 17:08:20 2001 Nick Burrett * vsd.c (process_requests): Allow a client connecting with the `' certificate access to all virtual servers. Tue Dec 19 11:28:00 2000 Tim Sellar * vsdadm.c (vsd_send_vcommand): remove extra va_end (ap). Thu Nov 9 14:12:37 2000 Nick Burrett * vsdadm.c (main): Always use cert if command is ADMIN_HOST. Tue Nov 7 15:33:16 2000 Nick Burrett * vsdadm.c (main): The minimum number of arguments to supply is two. Tue Nov 7 10:21:39 2000 Nick Burrett * 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 * io.c (io_initialise [WITH_OPENSSL]): Accept certificates that have no email address field. Mon Nov 6 14:07:38 2000 Nick Burrett * vsdadm.c (main): Fix off-by-one error in argc value passed to module_command. Mon Nov 6 12:33:04 2000 Nick Burrett * vsd.c (signalhandler): Fix spelling mistake. Mon Nov 6 10:53:31 2000 Nick Burrett * 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 * configure.in: Correct definition of WITH_OPENSSL. Wed Oct 25 14:05:48 2000 Nick Burrett * 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 * 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 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 * 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 * 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 * 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 * configure.in: Check for libkvm, for compiling on FreeBSD. Mon Sep 11 15:27:02 2000 Nick Burrett * 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 * 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 * 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 * mod_quota/Makefile.in (mod_quota_lib.o): Add libvsd to the search path. Wed Aug 30 08:57:04 2000 Nick Burrett 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 * 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 * configure.in: Bump to version 1.4.5. Wed Aug 16 14:00:31 2000 Nick Burrett * 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 * 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 * configure.in: Bump to version 1.4.4. Mon Aug 7 12:53:49 2000 Nick Burrett * 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 * 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 * 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 * 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 * 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 * mod_apache/apache.c (check_syntax_with_httpd): Look in several locations for httpd binary. Fri Aug 4 14:18:23 2000 Nick Burrett * 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 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * vsdadm.c (vsd_gethostservername): Delete function. * vsd_lib.h (vsd_gethostservername): Delete prototype. Fri Jun 30 10:23:09 2000 Nick Burrett 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 * Version 1.4.2 released. Wed Jun 28 13:41:04 2000 Nick Burrett * configure.in: Bump version to 1.4.2. Wed Jun 21 10:36:37 2000 Nick Burrett * Version 1.4.1 released. Fri Jun 9 17:16:44 2000 Nick Burrett * Makefile.in (all): Remove vsclients. Fri Jun 9 11:32:37 2000 Nick Burrett * 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 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 * io.c (output): If vc is NULL, then write to stderr. Thu Jun 8 16:59:53 2000 Nick Burrett 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 * 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 * configure.in: Only recognise modules that being mod_. Wed May 31 15:51:08 2000 Nick Burrett * 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 or not. (main): Use virtual server 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 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 * All files: Change copyright ownership from Designer Servers Ltd to Idaya Ltd. Fri May 26 12:55:19 2000 Nick Burrett 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 * 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 * 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 * mod_user/user.c (user_add): Pass NULL for additional_groups argument in vsd_useradd. Tue May 16 16:22:44 2000 Nick Burrett * 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 * 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 * error.c: Delete file. Tue May 9 10:03:31 2000 Nick Burrett * crypto/blowfish.c: Delete file. * crypto/crypto.h: Delete file. Tue May 9 09:36:49 2000 Nick Burrett * 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 * 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 * 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 * 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 * 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 * vsd.c (process_requests): Only free memory for server_root if memory has been allocated. Mon Mar 27 11:10:04 2000 Nick Burrett * 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 * mod_user/user.c (user_list): vsd_passwd_load server root argument was plainly incorrect. Wed Mar 22 16:58:56 2000 Nick Burrett * 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 * webadmclients.c (main): Tidy syslog messages. * webclients.c (main): Likewise. Wed Mar 22 13:58:20 2000 Nick Burrett * acconfig.h (HAVE_OPENSSL): Define. (HAVE_SSL): Define. (ssldir): Define. Wed Mar 22 13:52:08 2000 Nick Burrett * 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 * client.c: New file. Forgot to commit in the Mar 16 change. Tue Mar 21 12:57:19 2000 Nick Burrett * io.h: New file. Forgot to commit this during the last change. Thu Mar 16 15:52:09 2000 Nick Burrett * 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 * 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 * 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 * mod_user/user.c (user_mod): Fixup vsd_usermod call for additional_groups parameter. Fri Feb 4 07:06:50 2000 Nick Burrett * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * configure.in: Bump to version 1.3.1. Wed Dec 22 12:12:47 1999 Nick Burrett * 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 * 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 * 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 * io.c (io_buffer_store): Re-calculate io_bufferp after reallocating the buffer. Thu Dec 16 16:44:22 1999 Nick Burrett * 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 * 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 * All files: Add GPL copyright notice. Mon Dec 13 18:19:57 1999 Nick Burrett * mod_sendmail/sendmail.c (sendmail_virt_modify_table): Delete a obscene debug message. Mon Dec 13 18:15:27 1999 Nick Burrett * 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 * 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 * 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 * 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 * 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 * Makefile.in: Re-write. Remove old automake rubbish. Thu Dec 9 17:17:06 1999 Nick Burrett * 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 * 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 * 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 * mod_sendmail/mod_sendmail.c (mod_sendmail_command_table): Change help text for SENDMAIL_VMODIFY. Tue Nov 30 09:28:35 1999 Nick Burrett * 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 * 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 * mod_quota/quota.c (quota_userset): Prevent user setting quota to 0K. Wed Nov 17 16:13:51 1999 Nick Burrett * 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 * Makefile.in (vsd_OBJECTS): Remove user.o. Thu Nov 16 10:29:49 1999 Nick Burrett 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 `' 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 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 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 * 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 * mod_vs/vs.c (vs_details): Fix off-by-one error when outputting IP aliases. Mon Oct 4 10:54:50 1999 Nick Burrett * vsclients.c (main, case user_add): Set a default quota of 1000K. Fri Oct 1 14:41:13 1999 Nick Burrett * mod_vs/vs.c (vs_details): Output IP aliases. Wed Sep 29 16:06:12 1999 Nick Burrett * 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 . * mod_vs/mod_vs.c: Include "vsd.h" and "vs.h". Mon Sep 27 16:11:31 1999 Nick Burrett * mod_quota/quota.c (quota_userset): Prevent users from setting the quota to unlimited. Fri Sep 24 16:28:10 1999 Nick Burrett * 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 * 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 * 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 * mod_webdns/domain.c (check_domain_name): Comment out 26 character limit check. Wed Aug 25 11:04:10 1999 Nick Burrett * 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 * 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 * mod_webdns/mod_webdns.c (mod_webdns_command_table): Fix argument could for WEBDNS_ADDSEC. Thu Aug 19 18:46:14 1999 Nick Burrett * mod_webdns/Makefile.in (clean): Delete generated parse.c. Tue Aug 17 17:57:38 1999 Nick Burrett * 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 * 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 * 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 * 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 * 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 * 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 * mod_webdns/parse.y (resource_record): Support SOA lines with no parentheses. Tue Aug 10 15:34:43 1999 Nick Burrett * 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 * 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 * mod_webdns/domain.c (sec_named_conf): Should be `masters' not `master'. Tue Aug 10 09:53:30 1999 Nick Burrett * mod_webdns/domain.c (domain_add_secondary): Add missing indirection on `h_addr_list'. Tue Aug 10 09:24:21 1999 Nick Burrett * 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 * vsclients.c (main): Remove check that virtual server name is similar to host server name. Tue Aug 3 14:08:29 1999 Nick Burrett * Makefile.in (Makefile): Remove target to prevent Makefile attempting to re-build itself. Mon Aug 2 11:37:41 1999 Nick Burrett * vsd.c (process_command): Check virtual server exists before determining server root. Thu Jul 29 08:49:48 1999 Nick Burrett * 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 * mod_vs/vs.c (vs_details): Output virtual server name. Tue Jul 20 10:20:48 1999 Nick Burrett * 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 * 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 * vsd.c (input): Stop alarm timeout when complete message received. Wed Jul 14 15:57:23 1999 Nick Burrett * 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 * vsd.h (struct vsd_connection): Add `input_buffer' and `input_bufsiz'. Fix prototype for `input'. Wed Jul 14 15:16:42 1999 Nick Burrett * 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 * vsd_lib.c (vsd_send_line): Remove 256 character transmission limit. Wed Jul 14 14:03:41 1999 Nick Burrett * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * vsclients.c (main): Fix a silly mistake: change `vec' to type char **. Wed Jun 23 18:42:12 1999 Nick Burrett * 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 * 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 * 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 * 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'.