diff -r 000000000000 -r 6f7a81934006 doc/ChangeLog-pre-0.70 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/ChangeLog-pre-0.70 Wed Jan 16 22:39:43 2008 +0100 @@ -0,0 +1,517 @@ +1998-03-19 Bruce Guenter + + * vmailmgrd.pod: Documented the -d and -D options for logging. + + * daemon/log.cc (finish): It is not correct to un-freeze a string + stream while a character pointer to its contents is still in use. + Moved the "out.freeze(0)" call to after the contents were used. + +1998-03-15 Bruce Guenter + + * lib/config.h: Added explanations of the various definitions, and + added the definitions DO_SHADOW and MAILDIR_ARG_STR. + + * lib/pwentry_getpw.cc: #include the config.h file, which may + define DO_SHADOW. + + * commands/checkvpw.cc (find_maildir): Use the configuration macro + MAILDIR_ARG_STR instead of the hard coded string "maildir". + +1998-03-14 Bruce Guenter + + * commands/checkvpw.cc (getdata): Wrote some small modifications + here to make it more correct and slightly more efficient. + +1998-03-12 Bruce Guenter + + * commands/checkvpw.cc (authenticate): Coded the server call to + use the convenience constructor. + + * commands/vdeliver.cc (main): Coded the server call to use the + convenience constructor. + + * lib/server.cc (server_call): Added several convenience + constructors, taking 0-4 string arguments. + +1998-03-12 Bruce Guenter + + * Released version 0.69pre9 + + * commands/vadduser.cc (setup): Initialize the random number + generator. + + * commands/vpasswd.cc (main): Initialize the random number + generator before changing passwords. This helps to prevent + identical "salt"s in the passwords. + + * commands/vadduser.cc (setup): Added a check for the + '.qmail-default' file, and print a short message explaining how to + create it if it does not exist. + +1998-03-11 Bruce Guenter + + * commands/vdeliver.cc (exit_msg): Forgot to write a trailing + newline in the exit messages. Fixed. + +1998-03-10 Bruce Guenter + + * commands/vdeluser.cc (main): Changed the response messages to + look more like the other command programs. + + * lib/Makefile: Added rules to build the common library as a + shared object, libvmailmgr.so.$(libversion), to which all the + other programs link. + + * version: Added new version variables: libversion and soversion, + used for building versioned shared objects. + + * lib/passwdfn.cc (getpasswd): Fixed the problem that would cause + an error message about an empty password to be printed if the + passwords were different. + + * commands/vpasswd.cc (main): Removed the server call in this + program and made it use vuser_chpass instead. + + * lib/vuser_chpass.cc (vuser_chpass): Wrote this pair of routines + which change the password of a user in a virtual password table. + + * daemon/chpass.cc (CMD(chpass)): Modified to use vuser_chpass. + +1998-03-09 Bruce Guenter + + * daemon/chpass.cc (CMD(chpass)): Converted to use autodelete. + + * daemon/adduser.cc (CMD(adduser)): Converted to use autodelete. + +1998-03-08 Bruce Guenter + + * Released version 0.69pre8 + + * lib/vuser_lookup.cc (vuser_lookup): Converted to use autodelete. + + * lib/vuser_delalias.cc (vuser_delalias): Converted to use autodelete. + + * lib/vuser_deluser.cc (vuser_deluser): Converted to use autodelete. + + * lib/pwentry_delpw.cc (delpw): Fixed the same problem as in putpw. + (delpw): Fixed the typo in creating the output file (output file + name is in variable 'copyfile', not 'file'). + + * lib/pwentry_putpw.cc (putpw): istream.getline should be used + instead of istream.get which doesn't discard the newline. + + * lib/vuser_add.cc (bad_chars): Removed the check for the + directory separator in this routine, as '/' is a valid character + in both password fields and e-mail addresses. + +1998-03-04 Bruce Guenter + + * vaddalias.pod: Updated the document to reflect the below change. + + * commands/vaddalias.cc (main): Modified the user lookup code to + skip looking up a local user if the address contains a hostname + (preceeded by an at sign (@)). + + * lib/mystring.cc (find): Modified this routine to add an "offset" + parameter at which to start the search. + +1998-02-26 Bruce Guenter + + * released version 0.69pre7 + + * commands/checkvpw.cc (main): If the environment variable + TCPLOCALHOST is not set, get the host name from gethostname(3). + + * daemon/main.cc (abortreq): Now generates a temporary response + (with code=bad) and calls finishreq. + (finishreq): Wrote this routine which logs a response and closes + the connection. + (main): Print out a message regarding the status of logging. + (parse_options): Added code to parse the command line options. + + * daemon/log.cc (logresponse): Added this routine that optionally + logs both the command and the response if either the response + indicates an error or the program is logging all responses. + Also set up all the other routines to log to a string which is + only optionally logged given the above conditions. + +1998-02-22 Bruce Guenter + + * daemon/log.cc: Wrote various 'logcommand' routines into this file. + +1998-02-21 Bruce Guenter + + * daemon/main.cc (handle_connection): Removed command logging from + this central location and distributed it to all the command + modules, so that sensitive information (passwords) can be sensibly + omitted. + + * commands/checkvpw.cc (strcasestr): Fixed bug that failed to + match 'needle' in the 'haystack' if the occurrence of 'needle' was + followed by non-nul characters. + + * commands/vdeliver.cc (main): Now reports error messages to + stdout, so that bounce messages will contain some description of + what goes wrong. + + * commands/checkvpw.cc (main): Fixed bug in setting maildir for + virtual users: argument maildirarg+1 was being set, but maildirarg + is already incremented. + +1998-02-19 Bruce Guenter + + * lib/qmail.cc (find_virtual): Converted to fstream I/O. + + * lib/pwentry_putpw.cc (putpw): Converted to fstream I/O. + + * lib/pwentry_getpw.cc (getpw_byname): Converted to fstream I/O. + + * lib/pwentry_delpw.cc (delpw): Converted to fstream I/O. + + * lib/passwdfn.cc: Removed a pile of unused code. + + * lib/mystring.h (operator<<): Added this operator which provides + ostream support for class mystring. + +1998-02-18 Bruce Guenter + + * After much thought and time spent developing the fdio classes, I + discovered that I was just re-developing the standard C++ iostream + classes. So, all further I/O will be based on iostreams, and all + use of the fdio classes will be converted. + + * vmailmgr.pod: Pulled this manual page, describing the general + overview of the vmailmgr package, from the vmailmgr.texi + file. There is now no content in the vmailmgr.texi file, and it + is removed from the package. + + * vdelalias.pod: Pulled this manual page for vdelalias. + + * vaddalias.pod: Pulled this manual page for vaddalias. + + * vdeluser.pod: Pulled this manual page for vdeluser. + + * vadduser.pod: Pulled this manual page for vadduser. + + * vpasswd.pod: Pulled this manual page for vpasswd. + +1998-02-17 Bruce Guenter + + * checkvpw.pod: Pulled this manual page for checkvpw from + vmailmgr.texi. + + * vmailmgrd.pod: Wrote this manual page for vmailmgrd. + + * vdeliver.pod: Wrote this manual page for vdeliver and removed + the section for vmailmgr.texi pertaining to vdeliver. + +1998-02-16 Bruce Guenter + + * daemon/lookup.cc (CMD(lookup)): Removed the code to check the + arguments. + (CMD(lookup)): Fixed a logic flaw that reported virtual users with + an erroneously empty destination field as valid users. + + * daemon/check.cc (CMD(check)): Removed the code to check the + arguments. + + * daemon/daemon.h (class command): The array of arguments is now + an array of pointers to mystring instead of an array of mystring's. + + * daemon/dispatch.cc (dispatch_cmd): Added code to handle virtual + domain parsing and argument counting. + + * daemon/command.cc (replace_first_two): Wrote this routine to + help consolidate the virtual-domain parsing routines into + dispatch_cmd. + + * released version 0.69pre6 + + * daemon/main.cc (abortreq): Removed the abortreq/0 routine. + + * commands/vadduser.cc: Adapted this program to use the fdio library. + + * commands/vaddalias.cc (main): Adapted this program to use the + fdio library, and fixed the logic problem that prevented any alias + from being added. + + * lib/pwentry_delpw.cc (delpw): Added this routine to delete a + password entry. + + * lib/pwentry.h: turned the addpw/setpw macros into inline routines. + + * commands/vdeluser.cc (main): Adapted this program to use the + vuser_deluser routine and fdio. + + * commands/vdelalias.cc (main): Adapted this program to use the + vuser_delalias routine and fdio. + + * lib/vuser_delalias.cc (vuser_delalias): Wrote this routine to + delete an alias. + + * lib/vuser_deluser.cc (vuser_deluser): Adapted this routine from + vdeluser.cc to delete a user and its maildir. + + * lib/vuser_add.cc (bad_chars): Added the directory separator + ('/') to the list of bad characters. + + * daemon/dispatch.cc (struct dispatch ): Started to add support + for a unified parameter decoder. + + * lib/qmail.cc: Removed the 'dot_qmail_name' and 'valid_name' + routines, which are no longer necessary. + +1998-02-12 Bruce Guenter + + * lib/fdio_base.cc (fdstream): Remove the trigger character + argument to the constructors, set the trigger to '\n' if the file + descriptor is a tty. + +1998-02-11 Bruce Guenter + + * lib/fdio.h (class fdistream): Started writing the input class. + + * daemon/main.cc (logcommand): Added a special case to blank out + the last argument (the password) for "check" commands. + + * daemon/lookup.cc (lookup_maildir): Converted to use autodelete. + + * daemon/main.cc (main): Added a handler for SIGHUP (currently + does nothing, will eventually signal to clear all cached tables). + + * commands/checkvpw.cc (find_maildir): Fixed logic negation problem. + (main): Fixed problem in call to lookup_maildir (hostname/username + arguments were out of order). + +1998-02-10 Bruce Guenter + + * commands/checkvpw.cc (lookup_maildir): Wrote this routine to + explicitly lookup the maildir of a user. + (authenticate): Removed the code to parse the maildir field out of + the response message from "check". + (main): Recoded to find the maildir argument, use it as the + default maildir, and only replace that argument in the case of + authenticating a virtual user. + + * daemon/lookup.cc (CMD): The main command now takes similar + arguments to all the other commands which handle virtual domains, + and returns either the "destination" field for a virtual user or + an empty string for a real user. + + * daemon/check.cc (check): Removed the code to lookup the + maildir. The check command no longer reports maildir + information. This happens to make this routine a great deal + simpler. + (check): Use autodelete for basepw and virtpw. + (CMD): Recoded the main command routine to check is_local before + find_virtual. + + * lib/autodelete.h (class autodelete ): Wrote this (template) + class to automatically delete a pointer when it is goes out of + scope. + + * lib/config.h: Added new define, DEFAULT_MAILDIR, that represents + the default maildir to use if none is given. + +1998-02-08 Bruce Guenter + + * released version 0.69pre5 + + * lib/fdio_out.cc (write): Handle unbuffered reads/writes. + (write): Corrected handling of triggerchar. + + * lib/fdio.h (class fdstream): Add setbuffer and settrigger + methods to setup or reset the buffering and trigger characters. + + * daemon/main.cc (msg): Rewrote these routines to use the new fdio + classes. + + * lib/fdio_out.cc: Wrote this file, containing the output class + fdostream. + + * lib/fdio_base.cc: Wrote this file, containing the base I/O class + fdstream. + +1998-02-07 Bruce Guenter + + * lib/pwentry_getpw.cc (getpw_byname): Fixed shadow password + support (password field is sp_pwdp, not spw_pwdp). + + * lib/response_message.cc (codestr): Wrote this function that + returns a string version of the response code. + + * daemon/main.cc (handle_connection): Modified to print out more + useful information for logging: request contents and responses. + + * commands/vadduser.cc (add_user,add_alias): Check to make sure + the user or alias does not exist before adding it. + + * commands/vaddalias.cc (main): Rewrote this program to use the + vuser_* routines. + + * daemon/lookup.cc (lookup_maildir): Rewrote this function to use + vuser_lookup. + + * lib/vuser_lookup.cc (vuser_lookup): Moved this function out of + daemon/lookup.cc. + +1998-02-06 Bruce Guenter + + * released version 0.69pre4 + + * commands/vadduser.cc (add_user): Completed rewriting this + program to use the vuser_* routines. + + * lib/pwentry_getpw.cc (getpw_byname): Added support for shadow + passwords (untested). + + * lib/pwentry_setpw.cc (putpw): Fixed bug in string comparison: + when the name to add is longer than the name in the password file, + the extra characters are not compared. + + * lib/vuser_add.cc (vuser_addalias): Wrote this routine, adds an + alias to a password file. + (vuser_add): Modified this routine to create a maildir only if the + maildir parameter is not empty. Also, check if the name and + password contain invalid characters (currently only checks for ':' + and whitespace). + + * commands/testclient.cc (main): Rewrote to use the new + response::message routine. + + * lib/response_message.cc (message): Wrote this routine which + returns the msg field with a prefix tag corresponding to the code + field. + + * lib/response.h (struct response): Added operator!, returns true + if the response is not ok. + + * lib/vuser_add.cc (vuser_add): Added new vuser_add routine which + builds the vpwentry and passes it to the other vuser_add routine. + +1998-01-29 Bruce Guenter + + * lib/vuser_add.cc (vuser_add): Modified this routine to call + addpw instead of setpw. + + * lib/pwentry.h: Renamed setpw to putpw and made two new macros, + setpw and addpw, that call it. + + * lib/pwentry_setpw.cc (putpw): Added support to setpw to only add + (no overwrite) new entries, and renamed it to putpw. + +1998-01-28 Bruce Guenter + + * lib/vuser_add.cc (vuser_add): Moved part of adduser from + daemon/adduser.cc here, with the name vuser_add. + + * daemon/chpass.cc (chpass): Rewrote to use the new saved_uidgid + class. + + * commands/vpasswd.cc (main): Rewrote to use the new response + class. + + * commands/vdeliver.cc (main): Rewrote to use the new response + class. + + * commands/testclient.cc (main): Rewrote to use the new response + class. + + * commands/checkvpw.cc (authenticate): Rewrote to use new response + class. + + * lib/server.h: Removed the class server_response, which was + functionally identical to class response. + + * lib/pwentry_getpw.cc (getpw_byname): Moved the implementation of + this routine into a separate file. + + * lib/pwentry_setpw.cc (setpw): Moved the implementation of this + routine into a separate file. + (setpw_pass): Commented out this routine, for now. + + * Moved pwcrypt.h, pwcrypt.cc, pwentry.h, pwentry.cc into lib. + + * lib/response_write.cc (write): Moved the implementation of + response::write into this file. + + * lib/response.h (struct response ): Moved this class from + daemon/daemon.h into this file, as I plan to use it in some + non-daemon applications. + + * daemon/uidgid.h (class saved_uidgid): Moved the + push_uidgid/pop_uidgid behavior into this class, which allows me + to let C++ automatically "pop" the uid/gid state when a routine + exits. + +1998-01-27 Bruce Guenter + + * commands/vadduser.cc: Started modifying this program to call the + server. + + * daemon/adduser.cc (adduser): Finished implementing this function. + + * daemon/lookup.cc (lookup_maildir): Modified the lookup logic + such that an empty destination field is invalid. + + * daemon/pwentry.cc (putpw): Fixed to add a newline at the end of + the entry. + (setpw): Fixed logic error with the final return code. + + * daemon/pwcrypt.cc (encrypt): Wrote this routine which generates + a random salt and encrypts the password using this new random + salt. + + * daemon/chpass.cc (chpass): Simplify matters by resetting the + password in the vpw structure and calling setpw instead of + setpw_pass. + + * daemon/pwentry.cc: Moved the crypt_cmp routine into its own + file, pwcrypt.cc. + +1998-01-26 Bruce Guenter + + * daemon/dispatch.cc (CMD(statall)): Wrote this routine to return + stats on all the routines in the dispatch table. + + * daemon/adduser.cc (adduser): Started to write this module which + adds a virtual account to a domain. + + * daemon/chpass.cc (chpass): modified to use the new userlookup + and pwentry functions. + + * daemon/check.cc (check): modified to use the new userlookup. + + * daemon/lookup.cc (userlookup): modified to get the virtual + password table entry if it exists, using the new pwentry + functions. + (lookup_maildir): modified to use the new pwentry functions. + + * daemon/pwentry.cc (getpw_byname/2): Written, looks up a global + password entry. + (getpw_byname/3): Written, looks up a virtual password entry. + Note that the return value from all the 'getpw*' functions must be + deleted. + (setpw): Written, sets an entry in a virtual password file. + (setpw_pass): Written, sets the password in a virtual password + file. + + * daemon/pwentry.h (struct pwentry, vpwentry): Wrote this header + to encapsulate global and virtual password file lookups. + + * lib/passwdfn.cc: Commented out all the password file + manipulation functions. + + * lib/passwdfn.h: Commented out all the password file manipulation + functions. + +1998-01-25 Bruce Guenter + + * commands/vdeliver.cc: Remove the duplicate definitions of + functions provided in the "stat_fns" header file. + + * Changed the package's name to 'vmailmgr' (Virtual MAIL + ManaGeR). It is quite readily apparent that this package has + evolved into something much larger than just a password checking + program. +