Numbers in square brackets ([]) are tracker items on SourceForge with patch
or info related to the entry.
5.4.20 - Released 21-Aug-2007
Bill Shupp/Rick Widmer
- add show_error function to vpopmaild
Rick Widmer
- Make vadduser check that domain exists and user does not exist
before prompting for password
- Add TODO file to record stuff I don't want to forget
- Add README.vdelivermail
- Add examples for delete and bounce-no-mailbox to help on vadddomain
Remo Mattei
- Change upgrade script to use pw_domain instead of domain in example code
to change domain name field lengths.
John Simpson, Joshua Megerman, Adam Sloan
- Fix bad exit if script exists but can not be executed
- Fix missing onchange on delete of alias domain
John Simpson
- Bug fix for vuserifo - vlimits
Harm van Tilborg
- Add support to vpopmaild to retrieve used storage sizes of domains or users
- mod_user did not respond +OK if command is valid
Vitali Malicky (coonardoo), Ismail Yenigul
- add ldap patch [1909348]
Ronnie Karstenberg (rkarstenberg)
- vdominfo crashes with a lot of aliased domains [1765534]
5.4.19 - released 21-May-2007
Rick Widmer
- update to aclocal 1.9.5, automake 1.9.5, autoconf 2.59 to match my system
- Don't set LocalPort to a real port number so the default case has a chance
to identify how vchkpw was called.
- ./configure tells status of onchange script setting
- Fix rights problem with alias commands. - thanks Alessio Cecchi
- Only report out of order entries when sorting files once per file
- make pop syslog ./configure setting report itself like the rest of the choices
- Make error messages more consistant (P/O checking Jonathan's bug report)
Harm van Tilborg, Quinn Comendant
- Do not allow delete of catchall address within account. [1511531]
Bill Shupp
- enable-onchange-script defaults to no.
NOTE: Still need to supress error message if file not found.
- Fix bug in output format of list_alias
- Remove unneeded AC_DEFINE_UNQUOTED from ONCHANGE_SCRIPT in configure
- Port remaining spamassassin code from 5.5 branch to stable-5_4.
- Add new --enable-maildrop option, and new NO_MAILDROP bit flag.
- New Documentation: README.maildrop, README.spamassassin
- Sample maildroprc files for both 1.x and 2.x (maildrop/*)
Fabio Busatto
- #include at top of vpopmail.h
blaze_cs
- Ldap back end reads config parms from a file at runtime. [1056529][1476647]
Stoyan Marinov (smarinov)
- add %m$t style for SQL queries format string [1236349]
- connect to mysql with a unix socket [1437085]
5.4.18 - released 30-Dec-06
Joshua Megerman (offsides)
- SQL backend fixes - NOTE: Requires database changes.
See UPGRADE for 5.4.18. [1619489]
- MySQL Tablename Backquotes - Add back quotes around table
names so MySQL will allow names that start with a digit.
[1619491]
Drew
- add .qmail-extension ability to vdelivermail
- mods to Delivered-To: header to support .qmail-extension
John Simpson
- onchange - call a script when users or domains are changed
see README.onchange.
- cslogin - Compact and silent login options for vpopmaild
note: don't blame John for problems in this, I changed a
lot to make it fit with other changes. rww
Tijs Zwinkels
- vmysql: add missing mysql_free_result to fix mem leak.
Tom Collins
- vdelivermail: Add missing loop check.
- vchangepw: Minor changes to Peter's error checking. [1573277]
Rick Widmer (rwidmer)
- Multiple changes to vpopmaild:
Add rename_file command.
Expert mode works in vmoduser.
Commands that are not yet implemented say so.
Blank input lines are not an error in vpopmaild.
Separate help before and after login in vpopmaild.
Allow 3 tries to login to vpopmaild.
Clean up if add_user fails because of bad user data.
Add termination code (.) to get_lastauth return.
Number the error messages (XXX) in vpopmaild
If invalid option is sent in set_limits, show warning
- Add various patches from others listed below:
Peter Pentchev (roamer)
- Various sanity checks and minor optimizations [1573292]
- Fix child handling - waitpid and sys/wait.h [1573288]
- Dynamicallly allocate sortdata[] in vpopmail.c [1573287][1596259]
- Include ctype.h in the PostgreSQL backend [1573284]
- Set SHELL in vdelivermail before executing external programs [1573280]
- Some more error checking in vchangepw [1573277]
- Improve the vpopmaild documentation [1573269]
- Clean cdb files in the distclean target [1573267]
- Optional building as non-root [1573266]
Trent Lloyd (lathiat)
- Add vailas add/delete/list support to vpopmaild [1555398]
- Refresh assign cache if a domain is deleted [1529744]
Bill Shupp
- Add user_count function to vpopmaild
- Add stat_file function to vpopmaild
5.4.17 - released 12-Jul-06
Rick Widmer
- vpopmaild: remove debug output from find_domain function.
- vpopmail: fix segfault in users/assign sorting code caused by
entries that don't contain a dot (.). [1514733]
Jeremy Kister
- vdelivermail: pass qmail-inject's error code instead of always
deferring. [1484105]
Ron Gage
- vmysql: reconnect to server if connection timed out.
Rolf Eike Beer
- vchangepw: add error checking and other code improvements.
[1371572]
- change API for vgetpasswd() to make more sense. [1371566]
- Update del_control() to properly handle remove_lines() return
value. [1514613]
- vpopmail: minor improvements to remove_lines(). [1371536]
secnetdk
- vmysql, vpgsql: remove entries from vlog when deleting a domain
or a user. [1099800, 995762]
Michael Krieger
- vcdb, vpopmail: pass mode to open() when creating files. Fixes
bug where lock files were created with 0000 permissions. [1499043]
- vpalias: set mydir to NULL after closing it. [1499045]
Tom Collins
- vpalias: don't trash alias name passed to valias_insert().
[1491087]
- vpopmaild: don't show last auth if auth-logging disabled.
[1511313]
- Only include err.h if it's present. [1484110]
- vpgsql: convert domain name to lower case when creating table
name. [1227383]
- vpopmail: fix minor error in remove_lines() when file locking
not defined.
5.4.16 - released 7-May-06
Michael Krieger
- vpalias: Properly handle some empty search results.
Ken Jones
- vpalias: wasn't allocating enough memory for alias name in
valias_select_names (missing one byte for NULL). [1479842]
Jianbin Xiao
- vmysql: reconnect to server if connection was dropped.
[1469731]
Rick Widmer
- vpgsql: fix queries to allow domains starting with digits.
John Simpson
- vpgsql: fix compile errors introduced in 5.4.14.
- vdominfo: undo change from 5.4.14 that displayed alias domains
incorrectly.
Toshihiko Kyoda
- vdelivermail: check for over quota when creating temp mail file.
Tom Collins
- vpalias: Fix double-free in code ported from 5.5 branch.
- valias: exit non-zero on error, send all errors to stderr.
- vchkpw: make sure we have cleartext pass before checking SMTP_AUTH
or APOP logins. [1453216]
- Remove vactivedir code since it's just a client for a non-existent
server.
5.4.15 - released 24-Feb-06
Tom Collins
- Add 'compile' script to distribution.
- If warn() isn't available, use fprintf() instead.
- vmysql.c: add missing valias_select_names, valias_select_names_next,
and valias_select_names_end from 5.5 branch.
- vpalias.c: #include "config.h" before we check if VALIAS defined.
5.4.14 - released 17-Jan-06
Tom Collins
- vmysql.c: Increase buffer size in vauth_adduser() and use
correct size when calling snprintf.
- Backport most of 5.5.1, including code required for vpopmaild.
- Allow --enable-valias option for Postgres backend (incorrectly
disabled in 5.4.13).
- Only check a domain's disk usage when a quota is set. [1396238]
Bill Shupp
- vpopmaild: store quota in proper format and update maildirsize
on quota change.
Gaetan Minet
- Remove lock file in open_smtp_relay() even if update_rules() fails.
Rick Morris
- vdelivermail.c: Fix problem where "# delete" in .qmail file was
being ignored. [1360346]
Robin Bowes
- Add vpopmaild (the vpopmail daemon) from 5.5 development series.
5.4.13 - released 16-Sep-05
Riccardo Bini
- vdelivermail.c: Use DOMAINS_DIR instead of hard-coded "domains".
Jory A. Pratt
- Compile libvpopmail with -fPIC option so amd64 users can compile
courier-authlib against libvpopmail.a.
Tom Collins
- hmac_md5.c: include for bzero and bcopy declarations.
- configure.in: fix checks to limit enable-valias to MySQL only.
- INSTALL: make clear that valias only applies to MySQL backend.
- vpopmail.c: modify get_remote_ip() to work with xinetd, not
just tcpserver from daemontools.
5.4.12 - released 4-Jul-05
Tom Collins
- vdelivermail: read full message, even on catchall delete/bounce
to avoid SIGPIPE error if maildrop is calling vdelivermail.
- vdelivermail: missing declaration when QMAIL_EXT defined.
- vpopmail.h: remove declaration of crypt() and use #include
crypt.h instead (if present).
- configure: remove enable-domainquotas option until the domain
quota code is fixed.
- maildirquota.c: fix bug from 5.4.11 that could accidentally
close stdin and result in a failed delivery in vdelivermail.
- vpopmail.c: better error checking in r_mkdir().
5.4.11 - released 20-Mar-05
Tom Collins
- vdelivermail: code cleanup (fix exit codes, improve reliability,
fix problems with quotas). [837146, 840749, 904155, 1111291,
1119741, 1145618]
5.4.10 - released 20-Mar-05
Stephan Tesch
- md5.h: fix related to segfaults in vchkpw on Sparc64. [1144851]
Peter Seiderer
- vcdb.c: vauth_getpw() didn't check for invalid domain.
Bill Shupp
- vuserinfo: display spamassassin info.
Anonymous
- vpopmail.c: Add missing ifdef that preventing modification of
one-character username accounts.
Niki Denev
- maildirquota.c: Remove double free() and fix use of free'd
memory in docheckquota(). [1101316]
- contrib/qmail-maildir++.patch: same fix as for maildirquota.c.
Tom Collins
- vlimits.c: print errors to stderr.
- vmoduser.c: add clarity to usage/help for bit flags.
- vcdb.c: be sure to close password file in vauth_getpw().
- md5.h: use cdb/uint32.h (built by configure) for defining
uint32. [1144851]
- vpopmail.c: fix vauth_user() to not clobber pw_uid and pw_gid.
- vpopmail.c: If setting user quota for new user fails because newly
created user does not exist, sleep 5 seconds and try again.
(This can happen on servers using MySQL replication.)
- Remove convert/vcalias.c and related files; vcalias was replaced
by dotqmail2valias.
Michael Bowe
- configure.in: fix typo of where the configure script says it
is checking for qmail-inject when in fact it was checking for
qmail-newmrh
- Documentation updates to README.roamingusers. Mention the
requirement of tcpserver for POP-before-SMTP. Also include
some documentation on IMAP-before-SMTP. [1110269]
5.4.9 - released 26-Dec-04
Jeremy Kister
- Makefile.am: fix install problem on Solaris. Some .h files
weren't being installed correctly.
Charles Boening
- Fix logging in PostgreSQL.
- Change ENABLE_{MY|PG}SQL_LOGGING to ENABLE_SQL_LOGGING.
- Replace --enable-{my|pg}sql-logging with --enable-sql-logging
in configure options.
Tom Collins
- Tweaking of Charles Boening's changes.
- vchkpw: Fix problem in md5.h causing segfault in SMTP AUTH on
amd64. [964843, 958799]
- vpopmail.h: Add new error and flag defines from 5.5 series.
- vchkpw: log webmail connections as 'vchkpw-webmail'.
- vpopmail.c: fix problem related to sending SIGHUP to qmail-send.
Original problem could cause "Signal 1 caught by ps" error.
5.4.8 - released 12-Nov-2004
Rick Widmer
- vadddomain: Check for existing domain before prompting for
password.
- vdeldomain: Fix uninitialized variable warning.
Tom Collins
- Fix problems with valias code in vmysql.c and vpgsql.c. Storing
aliases in Postgres should work now, and it should fix problems
with processing Maildir valias entries in vdelivermail. [985011,
1024706, 1033801]
- Fix bug in vmoddomlimits that wiped out the Domain Quota
when editing default limits.
- Change columns in Postgres valias table to varchar from char.
See README.pgsql for instructions on fixing existing tables.
- vmoduser: update maildirsize instead of just deleting it when
modifying quota.
- vchkpw: classify POP/IMAP connections from select IPs (defaults
to 127.0.0.1) as webmail and check NO_WEBMAIL user flag instead
of NO_POP and NO_IMAP.
- Update qmail-smtpd-auth patch in contrib to latest (0.5.6).
- Update README.quotas with note about domain quotas not working.
- vpopmail.c: remove unused sys/varargs.h include.
- vdominfo: fix broken -a option.
- vdominfo: better display of real name for alias domains. [981335]
- vpopmail.c: Improved maildir_to_email() function. [953439]
Gentoo Port
- Integrate vuserinfo patch to fix the -a option and to display
the comment/gecos field (used for "real name").
5.4.7 - released 23-Sep-04
Michael Bowe
- Mention in README.mysql that is is possible to create mailboxes
by inserting entries directly into the MySQL table.
Tom Collins
- Don't try to delete dir-control for domain unless users-big-dir
is enabled.
- Verify user exists before trying to set quota in vsetuserquota().
[984698]
- Update cdb/Makefile so you can 'make install' without doing
'make' first.
- Fix size comparisons to MAX_PW_X (should be ">", not ">=").
- Fix possible buffer overflows in vsybase.c.
- Have vconvert reset dir_control and increment it for each user
added when converting from cdb to MySQL.
- If crypt() doesn't support MD5 passwords, fall back to using
a valid, non-MD5 salt even if MD5 passwords are enabled.
- Fix format string vuln. in vactivedir.c (thanks D4rk Eagle).
- Added comment to vqmaillocal.c mentioning that it isn't
maintained and probably doesn't work. Makefile no longer
installs vqmaillocal.
5.4.6 - released 30-Jun-04
[backport from 5.5.0]
- Consolidate table creation code in vmysql.c and vpgsql.c.
- Increase SQL_BUF_SIZE from 600 to 2048 for Oracle, Postgres
and Sybase.
- Multiple fixes to vpgsql.c related to freeing PGresults and
attempting to access NULL PGresults when reporting errors.
* These changes address SQL Injection vulnerability documented in
* Bugtraq ID 10990
- Add qnprintf() to vpopmail.c for escaping strings in SQL queries.
- Use qnprintf() when building queries in vmysql.c, vpgsql.c,
voracle.pc, and vsybase.c.
5.4.5 - released 25-Jun-04
fernando (at) telemacro (dot) com (dot) br
- Patch for vpgsql.c fixes bug with Postgres and roaming users
(POP before SMTP). [895501]
Françoi Wautier
- Fix method used to open database in vauth_open_update of
vmysql.c. [967994, 946983]
Pit Palme
- Show 'delete' as valid option to vdelivermail in docs. [951245]
rstml
- Hide error message during POP3 auth with Postgres. [915485]
Tom Collins
- Fix `vuserinfo -l` output, based on Bill Shupp's patch
(moved code to a single function call). [961742]
5.4.4 - released 26-May-04
Tom Collins
- Link math lib when compiling for MySQL.
- Create ~vpopmail and ~vpopmail/etc in configure script. [930939]
Note that any code creating files in ~vpopmail should probably
be moved from configure and into Makefile (under make install).
- Use MAX_PW_DIR when checking max size of domain's directory.
Ken Jones
- vdelivermail.c: wait on pid for qmail-inject to finish
before continuing in deliver_mail function. [from 5.5.1]
Michael Bowe
- Minor documentation tweaks
- Fix for : If roaming users were enabled, and auth module was not
SQL based, and user's IP address was not available (eg being
called from Courier-IMAP with authdaemon enabled), then
open_smtp.tmp.pid files would be created for each auth
but never removed.
5.4.3 - released 11-Mar-04
Tom Collins
- Add missing link libs (m, nsl, socket) on Solaris installs.
- Fix vsetuserquota() to write properly formatted quota to
maildirsize file.
- Update vdominfo to ignore non-domains in users/assign.
- Update vconvert and dotqmail2valias to ignore non-domains in
users/assign.
5.4.2 - released 22-Feb-04
Tom Collins
- Remove attempts to free() static buffers in vpgsql.c. [888888]
- Fix problems with creating valias table in vpgsql.c. [892595]
- Remove unnecessary check for C++ from configure[.in].
- Don't include DESTDIR when building inc_deps and lib_deps.
[886988]
- Properly parse Maildir and mbox delivery lines in .qmail files
in vdelivermail (and exit(111) for mbox lines). [889756]
- Temporarily disable -s option to vadduser (since it's broken).
[895375]
Anders Brander
- Add contrib/checkpassword_debug.[README,c] for testing and
debugging problems with vchkpw. [862608]
5.4.1 - released 10-Feb-04
Tom Collins
- Add dotqmail2valias program for converting .qmail-alias files
to valias table entries.
5.4.0 - released 1-Feb-04
Tom Collins
- Update configure with correct location of vlimits.default.
- Fix typo (ammount) in vmoddomlimits. [882884]
- Don't include $(DESTDIR) when building vpopmailbindir. [884247]
- Mention compatability issues with older SMTP AUTH patches.
[882351]
5.4.0-rc2 - released 19-Jan-04
Michael Bowe
- Added some basic 5.4 upgrade notes to the UGPRADE file
- Fix typo's in configure.in that relate to the errors generated
when a discontinued configure option is used
- Fix bug when autocreating a user dir for a user who exists
in the auth backend, but does not yet have a user dir
allocated. [873007]
- Fix bug introduced in vpopmail-5.4.0-pre2 that was preventing
~vpopmail/etc/vpopmail.mysql from being installed [874776]
- vpopbull was failing to create userdirs in some cases
(when the user exists in the auth backend, but did not have
a dir allocated yet) [816942]
- clearopensmtp was using USE_MYSQL rather than USE_SQL to
determine where the roaming IPs were being stored [876016]
- Update INSTALL and other guides to mention that vchkpw group
does not need to be gid 89. [877154]
- Update README.pgsql to include security warning regarding
the postgres username/password [879124]
Ken Nonaka
- Fixes to vpgsql.c to clear compile errors when
--enable-ip-alias-domains is enabled. [874066]
Tom Collins
- Check for comments earlier in deliver_mail().
- Remove unused --enable-defaultquota and code related to it.
(Replaced by settings in vlimits.default.) [869411]
- Remove references to --eanble-defaultquota in documentation.
- vdelivermail.c: Consistent return values in deliver_mail().
- More updates to build files. [874831]
- Apply patch from http://www.fehcom.de/qmail/smtpauth.html
to fix CRAM-MD5 SMTP AUTH in vchkpw. [871493]
- Have vchkpw.c use get_remote_ip() to convert IPv6 to IPv4
(fixed problem with ::ffff: in relay file). [876019]
- Fix bug in vpalias where .qmailadmin-limits was incorrectly
thought to be alias for user 'dmin-limits'.
- Sort by alias in valias_select_all (needed for QmailAdmin).
- Add new valias_remove() command to remove a single line from
valias table. (not implemented for cdb backend yet)
- Fix incorrect buffer use in PQexec() calls.
- Convert '.' to ':' when building filename in valias_select()
in vpalias.c.
- Remove length check for 'alias' parameter in vpalias.c's
valias_select_all() and valias_select_all_next() since it's a
return value buffer.
- Remove duplicate code in valias_select_all_next() in vpalias.c.
- Fix configure.in to update cdb/conf-cc and cdb/conf-ld. [877166]
- Add /usr/local/mysql/include/mysql to search list for incdir,
and /usr/local/mysql/lib/mysql for libdir. [877168]
- Remove cdb/compile, cdb/load, cdb/conf-cc and cdb/conf-ld as
they are automatically generated during configure/make.
- Add missing $(DESTDIR) to some @vpopmaildir@ paths in Makefile.
[879103]
Bill Shupp
- Add -o option to vmoduser to set V_OVERRIDE flag. [875505]
- Contributed README.vlimits [855693]
- Updated README.quotas
Casey Zacek
- Create maildirsize file in vsetuserquota(). [869457]
Anders Brander
- Allow optional length for random passwords in vadduser and
vadddomain. [848228]
5.4.0-rc1 - released 1-Jan-04
Michael Bowe
- Code fixes and documentation work for LDAP module.
Incl updated README.ldap, vldap.c, vldap.h, ldap/slapd.conf,
ldap/vpopmail.ldif. [863881] [811000] [864643]
- Rewrote the README.mysql based on my web based guide.
- Documentation tweaks for README.pgsql, README.roamingusers.
Tom Collins
- Remove unused var (cp), change random/srandom to rand/srand in
vpopmail.c to remove compiler warnings.
- Fix Makefile to use correct owner/group/permissions for
install-strip.
- Fix configure to indicate that --enable-auth-logging is default.
5.4.0-pre2 - released 21-Dec-03
*** Note that the configure option for setting the authentication
*** module has changed. Instead of --enable-mysql, use
*** --enable-auth-module=mysql.
Casey Zacek
- Keep vlimits_setflags() in vlimits.c when mysql-limits is
enabled. [858109]
- Create maildirsize file when adding new user. [858994]
Tom Collins
- open_smtp_relay(): fix address conversion of '::ffff:127.0.0.1'
ip format, move code to function and replace calls to
getenv("TCPREMOTEIP"). [858586]
- When optimizing adddomain, rebuild users/cdb after each addition
instead of postponing. [859707, temporary fix]
- Move maildir_to_email() from vdelivermail.c into vpopmail.c,
replace dupe code that tries to do the same thing. [859098]
- Fix domain quota checks to work with hashed directories. [859098]
- Fix bug when calling format_maildirquota() with NOQUOTA.
- Document use of NOQUOTA in vadduser. [862315]
- Fix Makefile so `make install` works from checked out CVS. [863862]
Michael Bowe
- Revise configure script so choice of auth module is now "OR"
rather than "AND".
Auth module selection now uses the format :
--enable-auth-module=cdb|mysql|pgsql|ldap|sybase|oracle|activedir
Rather than :
--enable-mysql --enable-pgsql --enable-ldap etc
If the old style is used, then the configure script will output
and error and will advise the user of the updated syntax. [855691]
- Removed the code that created a vpopmail.config.sh file each
time the configure script is run. This file is never used,
and a more accurate result can be achieved by using
./config.status --recheck [860271]
- Update the vldap/qmailUser.schema so that it contains the
required definition for 'clearPassword' [810999]
- Modify vpopbull, so that within each domain, the users are
processed alphabetically. The idea behind this is to give the
operator some idea of "how far through" the mailout we are.
5.4.0-pre1 - released 10-Dec-03
Michael Bowe
- Updated README.xxxauthbackend files to include indication
of which auth systems are of production quality (cdb, mysql),
which ones are believed to be generally functional (ldap,
pgsql) and which ones are not recommended (oracle, sybase,
activedir) [832302]
- Review the assorted text files included in the source dir.
Remove out-of-date content / files as appropriate. Updated
some minor typos in the documentation [793659]
- Contributed the README.roamingusers file that provides some
explanation of how the vpopmail roaming users system works.
- Revised the configure.in script to try and improve logic,
formatting, and helpstrings. Also added tests for many new
functions/libraries as per suggestions from autoscan tool.
[828680]
- Contributed README.ipaliasdomains file that provices some
explanation of the how the vpopmail IP Alias Domains system
works
- Modified vdeldomain() so that it emits a warning rather than
aborting should any of the steps in the delete process fail.
The idea is to allow a partially installed domain to be
cleanly and easily removed from the vpopmail system [821972]
Tom Collins
- Update more files involved in the build process.
- Remove unused variable (fs) from vset_limits() in vlimits.c.
[846509]
- Change permissions on vpopmail.mysql to 0640. [848605]
- vuserinfo: indicate whether limit came from domain limits.
- Correctly apply domain limits to user accounts.
- Fix problem in maildirquota.c where off_t was assumed to be
long. Created wrapper function to do conversion. [797011]
- Fix double-printing of email address with vpopbull -V.
- vpopbull: Fix incorrect link building when file starts with '/'.
- vpopbull: Send errors to STDERR.
5.3.30 - 20-Nov-03
Michael Bowe
- Fixed logic error in update_rules(), to prevent "update_rules
failed" error being generated on the first attempt for a
roaming user to POP auth [833926]
- Remove "id" column in PostgeSQL's vpopmail table.
This column appears to serve no purpose, and causes errors
when you try to insert your first domain [822181]
- Added installation instructions for PostgreSQL to the
README.pgsql file [824088]
- Made the default ~vpopmail/etc/vpopmail.mysql file more
verbose/descriptive
- Cleared two bugs in the vauth_getall() funcion of vpgsql.c
These bugs were in particular causing qmailadmin not to be
able to display a list of users for a domain [837139]
- Modified ifdefs throughout suite to clear compile failures
with some of the auth backends if you configured with
--enable-auth-logging=n [842393]
Tom Collins
- Install a vlimits.default file if none exists (fixes "can't
read domain limits" errors). [828428,828658]
- Allow for comments in vlimits.default and .qmailadmin-limits.
- Ignore K/KB/M/MB modifiers on vmoddomlimits -Q. [821892]
- Update help for vmoddomlimits to indicate that -Q is MB.
Justin Heesemann
- Add -d option to vmoddomlimits to work with vlimits.default.
- Fix bitwise AND when setting pw_gid.
- Fix bug when setting NO_DIALUP. [833926]
Bill Shupp
- Set uid/gid when creating maildirsize in vuserinfo. [832588,832592]
Dmitry Vodennikov
- Save/restore current working directory before/after calling
vdelfiles() in vdeldomain(). [835724]
Rolf Eike Beer
- Fix some prototypes and typecasts in maildirquota.c to allow for
compilation with cc on HP-UX 11.00. [840001]
- Add vchangepw program to allow any user to change their password
(modified from vpasswd). [840001]
5.3.29 - 20-Oct-03
Michael Bowe
- Fix formatting error in tcp.smtp.tmp.pid filename
(was being created as tcp.smtptmp.pid).
Tom Collins
- Remove acconfig.h; update configure.in to work without it.
- Update 'missing' script with version from automake 1.6.
- Send errors to stderr instead of stdout (vpopmail, vchkpw).
- Add support for port 587 (submission) to vchkpw.
- Increase size of VchkpwLogName in vchkpw.c to eliminate a
buffer overflow.
- Improve seeding for rand() and random() in vpopmail.c
- Add -r (random password) option to vpasswd.
- Better detection of connection type in vchkpw.c. [818943]
- Remove extraneous calls to mysql_store_result(). [809472]
- Minor cleanup of make_user_dir() in vpopmail.c.
- Don't prompt for password in `vadduser -e ...`. [822308]
- Set quota to default when adding new users. [821995]
- vpgsql.c vauth_getpw(): Put in_domain on the stack. [822175]
- Fix vget_limits calls. [824067, 824070]
- Update example for --enable-tcpserver-file in configure. [824077]
- Fix loop checking on Delivered-To header. [826231]
Justin Heeseman
- Set pw_flags field based on pw_gid and domain limits. [795688]
- Use pw_flags instead of pw_gid to check permissions.
- Allow K/KB/M/MB modifiers on vmoddomlimits -Q. [821892]
5.3.28 - released 3-Oct-03
Michael Bowe
- Remove vget_real_domain() declaration from vpopmail.h. [800738]
- Fix compile errors with vpgsql.c. [801528]
- Add code to configure.in to search for pg_config. [801528]
- Re-add vget_real_domain() to vpopmail.h and vpopmail.c [800738]
Oden Eriksson
- Fix wrapped line in contrib/qmail-maildir++.patch.
Tom Collins
- Update vmoddomlimits to use format_maildirquota().
- Fix compile errors with LDAP module. [802277]
- Include vlimits.h in Active Directory and Sybase auth modules.
- Update vpopbull to skip alias domains. [790778]
- Look for MySQL in /usr/local/mysql/{include,lib} during configure.
- Added pw_flags to vqpasswd struct, still need to update code.
- Return error if link fails at end of deliver_mail().
- Fix vdeldomain() to delete things in the correct order. [805703]
- Update Makefile.am to create bin/doc/etc/include/lib with
correct owner/permissions if not already present.
- Send errors to stderr instead of stdout (vmysql, vcdb, vpgsql).
- Set umask before opening vpasswd.cdb.
- Start adding CVS ID tags to each file.
- Replace vgen_pass() with vrandom_pass() which doesn't leak
memory. [793662, 803950]
- Fix broken dupe-alias checking code in valias. [807935]
- Update Makefile.am to write all libs to etc/lib_deps. [796524]
- Exit non-zero for non-existent alias with `valias -s `.
- Properly append /Maildir/ to catchall in vdelivermail.c. [816336]
Kazuho Oku
- Fix qmail_inject_open() in vdelivermail to work with addresses
that start with a hyphen (-). [805907]
Anders Brander
- Fix mkpasswd3() to use 8-char MD5 salt (instead of 5-char).
[804266]
- Allow for swapped parameters to vaddaliasdomain. [812150]
5.3.27 - released 4-Sep-03
Michael Bowe
- Now that MySQL prefs are stored in a separate file, set
permissions on libvpopmail.a to 644 to allow non-root users
to compile apps like courier-imap. [795773]
- Include [RBLSMTPD=""] in tcp.smtp updates under MySQL and
PostgreSQL for consistency with cdb. [795793]
Tom Collins
- Fix Makefile.am to use short options for better cross-platform
compatability.
- Update privileges on vpopmail.mysql during install.
- Added 'make fix-priv' to update ownership of ~vpopmail/domains.
- Move creation of inc_deps and lib_deps to Makefile.am from
configure.in.
- Fix vgetent() in vpopmail.c. [799466]
- Move date_header() from vdelivermail.c to vpopmail.c for
shared use with vpopbull.c.
- Print "Date: " header in messages sent with vpopbull. [790776]
- Make sure files created by vpopbull are owned by vpopmail.vchkpw
and have 0600 permissions. [800030]
- In valias, don't allow user to create duplicate alias. [796527]
- Update quota parsing code and centralize to format_maildirquota()
in vpopmail.c. [775757]
- Update vsetuserquota.c to use vsetuserquota() in vpopmail.c.
- Update vmoduser.c to use format_maildirquota() in vpopmail.c.
- Fix -r option in vadddomain. [800212]
Jorge Valdes (patch from 10-Apr-2003)
- Allow vpopbull to run without -f option if -n is used. This
allows `vpopbull -n -V` to display a list of users. [798034]
5.3.26 - released 26-Aug-03
Michael Bowe
- Recoding work with the main focus of :
* Ensuring strings are null terminated
* Checking the return value of important function calls
* Eliminating buffer overflow opportunities
* Adding comprehensive comments to source files
Files that have been reviewed so far :
clearopensmtp.c, vaddaliasdomain.c, vadddomain.c, vadduser.c,
valias.c, vconvert.c, vdeldomain.c, vdeloldusers.c,
vdeluser.c, vdominfo.c, vipmap.c, vkill.c, vlimits.c,
vmkpasswd.c, vmoddomlimits.c, vmoduser.c, vpasswd.c,
vpopbull.c, vpopmail.c, vsetuserquota.c, vuserinfo.c
Files that still require a review :
vactivedir.c, vcdb.c, vchkpw.c, vdelivermail.c,
vldap.c, vmysql.c, vpalias.c, vpgsql.c, vqmaillocal.c,
vsybase.c
5.3.25 - released 26-Aug-03
*** WARNING: MySQL settings are now stored in ***
*** ~vpopmail/etc/vpopmail.mysql instead of vmysql.h! ***
*** Read README.mysql for details. ***
Tom Collins
- Fix code in vdelivermail.c that builds Delivered-To header on
catchall emails. (strips "domain-" from "domain-user@domain")
[785604]
- Convert vpgsql.c from DOS to Unix format (strip \r). [785680]
- Modified Makefile.am to allow installs to /usr/local instead
of /home/vpopmail (uses install, doesn't chmod/chown). [787551]
- Polished vpopmail-5.2-vmysql.patch ported by Oden. [791405]
- If configured to use MySQL, Makefile.am creates a sample
vpopmail.mysql if one doesn't exist and makes it read/write for
vpopmail.vchkpw only.
- Added tracker item numbers to ChangeLog for all closed trackers.
- Updated INSTALL and FAQ with links to SourceForge.
Oden Eriksson
- Ported vpopmail-5.2-vmysql.patch to 5.3.24. [778502, 791405]
- Added sparse documentation how to use it.
Justin Heesemann
- Fix vdominfo to show correct domain for alias domains when
displaying all domains. [785241]
- Add vmoddomlimits program to modify domain limits. Works
for both vlimits and .qmailadmin-limits methods.
- Add V_OVERRIDE user flag for users who aren't affected by
domain limits (.qmailadmin-limits or vlimits).
- Update authentication modules to apply domain limits to users.
(Currently disabled pending solution to SF BUG 795688.)
Evren Yurtesen
- Add cleartext support to vconvert (when converting MySQL to
cdb). [785690]
Michael Bowe
- More cleanup in vget_assign() calls. [785735]
- Allow vget_assign() to return real domain when passed alias.
[785682]
- Fix error messages in vmysql.c. [792959]
5.3.24 - released 6-Aug-03
Tom Collins
- Removed all references to timezone to be POSIX compliant. Now
uses gmtime() with +0000 for date header. [777401]
- Fixed bug in my updated vget_assign that caused segfaults
in many cases (including vadddomain and vdeldomain). [777980]
Michael Bowe
- Update vget_assign calls with NULL directory pointer to use
0 for buffer size. [774525]
- Add missing backslashes (\) to vpgsql.h (see 5.3.21 vmysql.h).
[777923]
- Check for NULL return when calling vauth_getpw() in vldap.c.
[781882]
Charles Boening
- Update configure.in to work for pgsql compiles. [777851]
- Add --enable-pgsql-logging configure option. [777851]
- Add vauth_crypt() to vpgsql.c. [777851]
Yann St. Arnaud
- Remove #ifdef FOOB from vchkpw.c to re-enable
ENABLE_LEARN_PASSWORDS feature. [783824]
Jens Jahr
- Support for clear text passwords when using LDAP. [783908]
Oden Eriksson
- Remove unnecessary errno declaration in cdb/cdb_seek.c. [784024]
Evren Yurtesen
- Added contrib/sendmail2vpopmail.pl for converting from sendmail
aliases and virtusertable entries to vpopmail domains.
5.3.23 - released 25-Jul-03
Tom Collins
- Removed timezone declaration to correct compile problem on
FreeBSD. [777401]
5.3.22 - released 24-Jul-03
Moshe Jacobson
- Fix maildir_to_email() to work with hashed domain directories.
[773315]
Matt Berardi
- Add 2 second timeout on MySQL connections.
Jens Jahr
- Check for failure when calling auth module.
- Fix vadddomain/vdeldomain when the auth module call fails.
- Fix vsetuserquota to include status messages.
Tom Collins
- Add Date header to over quota warning message. [773318]
- Fix possible buffer overflows when setting envbuf[1-4] in
vchkpw.c. (bug spotted by Michael Bowe) [774528]
- Remove error messages from vmysql.c that could interfere with
POP or SMTP AUTH client sessions.
- Switched from using --enable-default-domain to storing default
domain in ~vpopmail/etc/defaultdomain. This should provide
flexibility when compiling packages for distribution. [775751]
5.3.21 - released 17-Jul-03
Ole Gjerde
- Check return code from vdeliver_mail in valias code and exit
appropriately on errors. Previously, mail could be lost.
Cory Wright (and others)
- Fix missing "\" in multi-line #define in vmysql.h.
Maurice Snellen
- When logging POP3 logins, now includes system accounts.
Emris
- Ignore comments when processing .qmail files.
Moshe Jacobson
- Allow colons in cleartext passwords (vqpasswd() in vpopmail.c).
Jonas Thomsen
- Ignore final '.' in users/assign when running 'vconvert -c -m'.
Michael Bowe
- Remove debug printfs from vdelivermail on overquota bounces.
[773312]
Jeff Hedlund
- Ignore comments when processing .qmail files.
- Process .qmail file when delivering to local (Maildir) catchall.
- vdelivermail now properly sets $EXT@$HOST and sets Deliver-To
header on local deliveries.
Tom Collins
- Fix usage formatting on vconvert.
- Support for MB/KB quota formats in vmoduser.
5.3.20
4/01/03 Tom Collins
- If there isn't a limits entry for the domain in MySQL, it uses
potentially random settings (nothing initializes the limits
structure). I've updated a few files so that vget_limits in
mysql.c initializes the limits structure to defaults before
attempting to load from the database.
3/26/03 Ken Jones
- add -D flag to vmoduser to change the directory
3/25/03 James Raftery
- Change -e flag behaviour for vadddomain.
-e contains an @: forward as normal
-e without an @: treat as name of user into whose Maildir to deliver
e.g.:
-e postmaster@forward.com
fridge# cat forward.com/.qmail-default
| /usr/local/vpopmail/bin/vdelivermail '' postmaster@forward.com
-e postmaster
fridge# cat maildir.org/.qmail-default (all on one line)
| /usr/local/vpopmail/bin/vdelivermail ''
/usr/local/vpopmail/domains/maildr.org/postmaster
3/24/03 Tom Collins
- Update vmoduser.c to write quotas out in the proper format.
Automatically convert xxM and xxK formats to # of bytes.
- Update vgetent in vpopmail.c to properly read old vpasswd files
without a cleartext password field.
3/18/03 "Ken Jones" kbo at inter7 dot com
- add --enable-rebuild-tcpserver-file option, default yes
turning it off will stop tcprules from being run
- add display during configure if ldap is selected
- add --enable-active-directory option
- create new vauth_crypt() function to use instead of crypt directly
this is needed since active directory is so brain dead
- remove pw_comp() function and use new vauth_crypt function.
5.3.19
3/5/03 "Bill Shupp" hostmaster at shupp dot org
- Updated DOMAIN QUOTAS section in README.quotas
- added --enable-domainquotas configure option. Default is off.
- added newline to the end of vpopmail.config.sh so that it's usable
3/2/03 "Anders Brander anders at brander dot dk"
- Do not report "failure to open limits file" to syslog
2/26/03 "Brian Kolaci" bk at kola dot com
- bugfix - increase the SQL buffer size to 2K rather than 600 bytes
in vmysql.c
- updates to maildirquota.c so that it can now be compiled into
libvpopmail without clashing with courier declarations.
5.3.18
2/20/03 "Bill Shupp" hostmaster at shupp dot org
- Added DOMAIN QUOTAS section to README.quotas
- Fixed vget_limits() problem with loading from .qmailadmin-limits
2/20/03 "Brian Kolaci" bk at kola dot com
- added non-system domain quotas to vdelivermail with these 2
functions:
- int readdomainquota(const char *dir, long *sizep, int *cntp);
- int readuserquota(const char* dir, long *sizep, int *cntp);
5.3.17
2/20/03 "Andrew Kohlsmith" akohlsmith-vpopmail at benshaw dot com
- Updates to the PostgreSQL module
2/20/03 "Bill Shupp" hostmaster at shupp dot org
- vpopbull now terminates if '-f [email_file]' is omitted
- vpopbull now checks that email_file is not empty
- vpopbull now reports domains given on the command line that do not
exist, but does not exit
2/17/03 "Bill Shupp" hostmaster at shupp dot org
- Fixed vset_lastauth bug in vcdb.c that didn't check the return of
vauth_getpw. This caused vadduser -s to coredump.
2/10/03 "Ken Jones" kbo at inter7 dot com
- New oracle module
5.3.16
1/27/03 "Brian Kolaci" bk at kola dot com
- Performance improvement to vopen_smtp_relay() - now tcprules is
only run if a new IP is added to the relay table. This applies
to sql authentication modules, as cdb already had this feature.
5.3.15
1/25/03 "Bill Shupp" hostmaster at shupp dot org
- Added ifdefs to vdeloldusers so it will compile with
--enable-auth-logging=n
1/23/03 "Brian Kolaci" bk at kola dot com
- Updated vlimits patch
5.3.14
1/13/03 "Michael Bowe" mbowe at pipeline dot com dot au
- fix for --enable-mysql-logging being too verbose
5.3.13
1/13/03 "Bill Shupp" hostmaster at shupp dot org
- major changes to vdeloldusers
- Works with any module that supports auth-logging (mysql, cdb)
- lots of cleanup.. removed all mysql specific code
- deprecated -r switch, replaced it with -V (verbose)
- users are NOT deleted by default.. a new -D argument is
required to actually delete users
- brought back the -d option to specify only one domain
5.3.12
12/7/02 "Bill Shupp" hostmaster at shupp dot org
- Minor changes to vlimits.c so that it will compile, but more
effort is needed to implement Brian's new structure
12/6/02 "Jens Jahr" Jens dot Jahr at novasoft dot de
- Various LDAP fixes
11/20/02 "Brian Kolaci" bk at kola com
- Updated vlimits structure
10/31/02 "Bill Shupp" hostmaster at shupp dot org
- Changed valias_line to be type "text" instead of "blob"
10/25/02 Justin Heesemann jh at ionium dot org
- Minor fix for users-big-dir
10/24/02 "Bill Shupp" hostmaster at shupp dot org
- fix for vipmap so that usage() is displayed if no arguments are
given
- TCPLOCALIP is in IPv6 format from couriertcpd. Convert to IPv4
in host_in_locals() so that ip-alias works with courier-imap
5.3.11
10/23/02 "Bill Shupp" hostmaster at shupp dot org
- Forgot to change defualtquota type in limits structure
10/23/02 "Pablo Murillo" pm at rednet dot com dot ar
- Fix for Delivered-To header getting mangled if you used a
different DOMAINS_DIR.
5.3.10
10/23/02 "Bill Shupp" hostmaster at shupp dot org
- Added limits table layout to vmysql.h
- Changed valias_line to be type "blob" to compensate for large
mailing list commands. Increased FILE_LINE_SIZE to 1024 in
vcalias for the same reason. vcalias now escapes FileLine input.
Thanks to Brad Dameron for pointing this out.
- Added disable_smtp support to the new vlimits functions
- Fixed configure.in so that --enable-mysql-limits is now reported
after running configure
- Moved format_maildirquota() to the vpopmail library. Updated
vlimits.c to use format_maildirquota() for default_quota.
- format_maildirquota() now uses 1024 and and 1048576 when
converting KB and MB instead of 1000 and 1000000, respectively.
10/23/02 "Anders Brander" anders at brander dot dk
- vdelivermail: Check for | *before* /Maildir/ in .qmail processing
- vdelivermail: Add missing case for error code 100
5.3.9
10/21/02 "Bill Shupp" hostmaster at shupp dot org
- Add error checking to vpopbull so that if copy_email fails,
report it on the command line.
- Update admin guide to reflect new limits functions
10/21/02 "Edoardo Serra" vpopml at connecting dot to dot it
- automatically create maildir in vpopbull if it doesn't exist
10/18/02 "Bill Shupp" hostmaster at shupp dot org
- Added wildcard support (i.e listname-default) to vdelivermail's
process_valias function. Should allow ezmlm lists to be run
from the valias table.
10/17/02 "Brian Kolaci" bk at kola dot com
- Added 3 new api functions to administer .qmailadmin-limits:
int vget_limits( char *domain, struct vlimits *limits )
int vset_limits( char *domain, struct vlimits *limits )
int vdel_limits( char *domain )
10/16/02 "Bill Shupp" hostmaster at shupp dot org
- Fixed typo in vcalias.c
09/11/02 Dave Boodman dave at boodman dot com
- vdelivermail missing case for exit code 99 when exec'ing
users .qmail programs. Needed for processing of autorepsond
result codes of 99
09/05/02 "Steve Fulton" steve at esoteric dot ca
- vdelivermail now handles error return codes 100 and 99
when processing users .qmail files. Support for autoresponder
exiting with 99.
5.3.8
07/16/02 "Bill Shupp" hostmaster at shupp dot org
- one last patch for the vgetent problem
- comment out lseek definition for bsd users
- Replaced old qmail-pop3d-maildirquota patch with
qmail-maildir++.patch. This one adds Maildir++ support not only
to qmail-pop3d, but also to qmail-local. Updated documentation
to reflect this. This one is closer to Sam's original code, too.
07/10/02 "Boris Manojlovic" steki at verat dot net
- CLEAR_PASS ifdefs in vpopmail.c
5.3.7
06/21/02 "Bill Shupp" hostmaster at shupp dot org
- add --enable-make-seekable option (default y) so that people can
turn off the seek patch if they want
- relplace MIN with vmin(int x, int y) in seek.c for better
portability (thanks to Ken Jones)
- Change exit codes to 1 instead of 0 for NO_POP and NO_SMTP
restrictions. Thanks to Michael Bowe for pointing this out.
06/20/02 "Maurice Snellen" maurice at hypercube dot demon dot nl
- replace inappropriate strcmp test when for checking LocalPort in
vchkpw.c
06/12/02 "Paul Kremer" pkremer at dullboy dot gms dot lu
- set ldap protocol version before each ldap_simple_bind_s call.
Default version is 3, but you can change it in vldap.h.
06/04/02 "Justin Heesemann" jh at ionium dot org
--enable-users-big-dir option. On by default, this allows you to
turn off using big dirs for users (and allow 1 char account names)
05/17/02 "Rui Barreiros" rui at websolut dot net
- fix aliased domain problems
12/13/01 "Marcus Williams" marcus at quintic.co.uk
- seek patch. Original code by University of Maryland Computer
Science Department.
5.3.6
05/18/02 "Bill Shupp" hostmaster at shupp dot org
- New APOP code for vchkpw. Relies on clear passwords to work.
- APOP arguments removed from vadduser, vpasswd, and vadddomain since
the new APOP code doesn't need them. (still need to remove old APOP
code, update API)
- Added CRAM-MD5 support for SMTP-AUTH only. Requires clear passwords
and the smtp-auth patch (for qmail-smtpd) from:
http://members.elysium.pl/brush/qmail-smtpd-auth/
- Authentication type is now logged upon successful authentications
- Removed logging of *correct* passwords
- Fixed vgetent() problem that should clear up the clear/crypted
password problems in the cdb module.
- Added NO_SMTP gid flag and support for it in vchkpw, vmoduser, and
vuserinfo
- Fixed lots of bugs in vpopbull. The old -v switch is now -V
(verbose) and now -v is the version argument (for compatibility)
- qcalc() fix for incorrect quota percentages with large quotas
- vdelivermail now checks the EXITCODE of a forked process
- updated TODO
5.3.5
04/16/02 - tab character replaced by 4 spaces in open-smtp file broke
roamin-users feature
- vchkpw syntax error when checking if roaming-users should be
called based on the incoming portnumber.
04/03/02 Tim at timtasi dot com
- much better parse_email function [774404]
5.3.4
04/02/02 - Doh! syntax error in vmysql.c, fixed
04/01/02 Matt Wierdl Dept of Math. Sciences University of Memphis
- If we can not get a lock file on updating a file return an error
- vget_assign: strncpy into in_domain malloc'ed memory instead
of into incoming domain variable.
03/28/02 - vmysql.c: remove malloc in vauth_pw and use static local var
03/27/02 - code review and indent updating of vpopmail.c
- more cleanup of parse_email function. it is still nasty looking
03/25/02 Tim tim at timtsai dot com
- parse_email not terminating the user with a null in the right spot
03/20/02 - clean up indentation in vchkpw.c
- enable-logging=v was not logging successes with passwords
03/18/02 Andrey Chichmeli az at primorsky dot ru
- vpopmail.c: use MAX_PW_GECOS to check pw_gecos string
03/15/02 - domains must be at least 3 characters long: a.b
03/13/02 - new version
"Joe Ingersoll" jingersoll at geektech dot com
- vconvert.c -e -m needed pw_passwd+1 instead of pw_name+1
5.3.3
03/12/02 - relay control: read in tcp.smtp before the open smtp lines
that way the tcp.smtp file will take precedence
02/24/02 Antonio Nati" tonix at interazioni dot it
- syntax error in vcdb.c git_t should be gid_t
02/23/02 - blank password fields would cause cdb module to not
return all users.
- --enable-ldap=y was not setting the lib_dep file correctly
02/22/02 Nelson admin at typhoon dot jp
- more changes to postgresql modules. Now vadddomain, vadduser
vdeldomain and vdeluser work.
- new README.pgsql
Tyler gtyler at onestop dot net
- addition to FAQ file for runnin vadddomain or vdeldomain as
non root user (vpopmail in our case).
02/20/02 Nelson admin at typhoon dot jp
- vmysql.c duplicate vauth_open_read in vshow_ip_map removed
- port vmysql.c to vpgsql.c
We now have a beta upgraded PostgreSQL file!
02/19/02 - update README.mysql to be current, it was saying to use
--enable-sqlincdir and --enable-sqllibdir. It should say
--enable-incdir and --enable-libdir
- restrict access to vauth_getpw function to only root
or the user who owns the domain.
5.3.2
02/19/02 - add checks and set globals depending on what port the
connection is coming in on.
- set the syslog message string based on what port the
connection is coming in on.
- For smtp authentication connections no need to setuid,
setgid or change directory.
02/18/02 - change vchkpw.c message when people run on the command line.
02/17/02 "Maxim Krikuha"
- update vdelivermail.c to support .no-user.msg file in
either the domains directory or under the vpopmail home
domains directory.
5.3.1
02/13/02 - code review of virtual and system users authentication
with vchkpw.c
02/12/02 "Brad Dameron"
- typo in vcalias.c file fixed
"Bill Shupp"
- update vchkpw.c if thelocal port is 25 or 465 then
do not open a relay and
use vchkpw-smtp or vchkpw-smtps in the logs
02/11/02 - mysql section was ignoring --enable-libdir and --enable-incdir
if /usr/local/mysql exists
02/09/02 - remove redundant permission settings in Makefile.am for
make install on the bin and lib directories
02/05/02 - vpopmail.h increase MAX_PW_QUOTA to 20 to support Maildir++
- vconvert.c parse assign file instead of walking the
vpopmail/domains directory to find all domains
02/04/02 - change permisisons on vpopmail/bin to only allow
root and vpopmail users to access it. This combined
with the permissions on the lib directory for mysql
sites secure the compiled in password from user detection.
- remove root setting on lib directory. Allow root and vpopmail
access to the libraries.
5.2.1
05/18/02 "Bill Shupp"
- Back ported these fixes from 5.3.6 for an interim stable release:
- vgetent() fix
- vpopbull fixes
- qcalc() fix for quota percentages
- EXITCODE checking for vdelivermail
5.2
02/01/02 "Michael Bowe"
- increase the mysql pw_shell (quota) field from 12 to 20 chars.
- vmysql_escape was not applying the terminating NULL char and
hence could contain additional strings from prior calls.
- look for quotawarn message in both the virtual domain directory
for the domain and if that fails look in vpopmail dir
- look for user over quota message file in both the virtual
domain directory and if that fails look in the vpopmail dir
"Donal Diamond"
- typo on putenv in vchkpw.c for HOME
- name field displayed twice in vuserinfo
01/31/02 - 5.2 stable release
- update vgetent, wasn't parsing vpasswd files correctly. Used
in vcdb.c vauth_getall() function.
Michael Bowe
- update vdelivermail to populate TheDomainDir from vget_assign
fixes problem with quota warn messages
Donal Diamond
- vdelivermail.c if bounce address is an email address and
it is local, just delivery it without needing to re-inject
5.1.11
01/30/02 - put back in get_real_domain in vdelivermail.c for backwards
compatibility for all alias domains
01/29/02 - line 497 in maildirquota.c cast const char * as char *
for warning: assignment discards qualifiers from pointer
01/28/02 - created vaddaliasdomain function in vpopmail.c
- added valid character check to vaddaliasdomain() function
- updated vaddaliasdomain.c to call new vaddaliasdomain() function
5.1.10
01/26/02 - finally got the alias domains straightened out. Changed
the format of the assign file. It now contains:
+aliasdomain-:real_domain:uid:gid:path_to_real_domain:-::
So a real domain would look like
+test.com-:test.com:89:89:/home/vpopmail/domains/test.com:-::
and an alias domain would look like
+ken.org-:test.com:89:89:/home/vpopmail/domains/test.com:-::
- del_domain_assign and add_domain_assign now take both of the
domain entires for the above line.
- vget_assign now will over write the incoming domain name with
the real domain name. So from the example above, if you call
strcpy( domain, "ken.com");
vget_assign(domain, dir, uid, gid); The domain variable will
contain "test.com".
- the end result is that email can be delivered to aliased domains
and users can authenticate as aliased domain users.
- removed the need for vget_real_domain() function
Casey Zacek
- got the mysql alias code "a changin'"
01/25/02 - no need to create symbolic link for aliased domains
- modify vauth_getpw in vmysql.c to get real domain name
for aliased domains
01/24/02 Casey Zacek
- vmysql.c had a typo (missing comma) in vcreate_dir_control().
Added identifiers to all the vmysql error messages.
5.1.9
01/24/02 Boris Manojlovic
- for MD5 passwords in vpopmail.c mkpasswd3() routine
use more than 2 random chars in salt
- vldap.c support MD5 passwords
01/23/02 Boris Manojlovic
- New ldap code and ldap directory with ldap files
Eric Peters
- "domains" directory is now configurable in configure script.
He wanted to be able to change the name of that directory
when he placed users email's under an /etc/passwd users home
directory.
- break out of infinite sleep in maildirquota.c when
trying to safely open a file (file locking)
- missed a TheUserExit typo in vdelivermail.c, fixed
01/22/02 - add support for MD5 encryption of passwords with
new --enable-md5-passwords=y configure option.
The default is yes
01/19/02 - vdelivermail.c: code review
- vdelivermail.c: standardize code indentation
- vdelivermail.c: Add TheDomainDir TheDomainUid TheDomainGid
set them at initialization time with vget_assign
- Use TheDomainDir for formatting file name for quota messages
works with hashed domains
- --enable-file-sync=n is now default. Not really needed
- vdelivermail.c: check_forward_deliver does a chdir so that
any .qmail file Maildir lines will support relative paths
- vdelivermail.c: Support any full or relative path for Maildir
deliveries
- vdelivermail.c: if moving (link/unlink) a file from the tmp
dir to the new dir (Maildir) fails, delete the failed file
- vdelivermail.c: found that duplicates of an email delivered
to a user on the same invocation of vdelivermail will fail
(Maildir processing) because the file name will be the same
01/18/02 - if .qmail file contained a &email_address line then
free in qmail_inject vfork function would free wrong address
Vladimir Kabanov
- add support for ./Maildir/ inside users .qmail file
in vdelivermail.c deliver_mail() function
01/17/02 Albert Hopkins
- typo in vpopbull.c needs to look at /var/qmail/users/assign
Richard A. Secor
- vlog support version 0.22
- new vlog readme
Bill Shupp
- new README.quotas
- new FAQ entry for pop3d
- include pop3d maildirquota patch in contrib dir
01/16/02 - Add Richard Secor's vlog support version 2.0 to contrib dir
- vuserinfo, if user never logged in display account creation time
- one more try with setting Delivered-To header for email
that is delivered to the catch all account. In that one particular
case we set the Delivered-To header to be the user@domain of
the incoming email address.
5.1.7
01/14/02 - configure now checks if person didn't read the configure options
and put in the path to the directory that contains programs
instead of the full path to the actual program. This is for
qmail-newu, qmail-newmrh, qmail-inject, tcprules
- get rid of long jump clobbered warning message
- get rid of not exiting with a return thingy warning messages
01/13/02 - no need to create the ~vpopmail/users directory since it
is no longer supported recommended for use.
01/11/02 - vgetent - remove the check for number of fields, this should
allow clearpassword and non clearpasswd files to be read
- redo vmake_maildir to take domain and user dir to create
- update vchkpw to autocreate users maildir if it is missing
- update vdelivermail to autocreate users maildir if it is missing
- add new is_username_valid(char *user) function
- add new is_domain_valid(char *domain) function
- updated everything to use new validation characters
Chris
- chris got us going on checking all valid chars in an email address
- update mysql module to always use " character instead of
' character for placing around strings
5.1.6
01/09/02 - vset_lastauthtime was a bad idea, removed
- when a user is created, set thier last auth time to
the current time, and their IP to 0.0.0.0
01/08/02 - change default of --enable-clear-passwd to be no
two reasons, 1) will break current installs
2) people should make an effort to store clear passwords
- vpopbull using wrong directory path to assign file.
01/05/02 - add usage for -r to vdeloldusers Jason Kerr
- update vmysql.c module to escape gecos, pass and clear pass
fields before inserting into the database.
- in vchkpw, if invalid email characters are passed as user@domain
then syslog an error and exit
- in vcdb module, don't allow ":" character in gecos field or
in clear text password field. They are both kind of a hack.
The fix just strips the ":" character out of the field.
5.1.5
01/05/02 - change --enable-hardquota to --enable-defaultquota
- add vvalidchar(char *) function to check if character is
a valid email character set new VA_INVALID_EMAIL_CHAR verror
global on invalid character
The valid set of characters is:
a to z
A to Z
0 to 0
. - and _
- update vdelivermail to use vvalidchar when getting user/domain
- update parse_email to return error code if invalid character
- update valias command to use Alias buffer instead of User buffer
- update vpalias.c valias_insert to check for "." in .qmail file name
- add -r option to vdeloldusers to just report old users, not delete
- if mysql enabled and lastauth table not yet created then
vdeldomain would not delete valias entries for the domain, fixed
- lastauth entry not created when user is created
- add vset_lastauth_time() function
- updated vcdb.c vmysql.c vldap.c to support vset_lastauth_time()
- lastauth was not seting the ownership of the lastauth file
to the owner of the domain for the cdb and ldap modules, fixed
- update vconvert to be able to convert from cdb or /etc/passwd
to the compiled in module, cdb/sql/ldap or what ever was compiled
into vpopmail.
01/02/02 - change caddr_t to (char *) in maildirquota.c
- vpopbull gets domain directories from assign file now
- vdeloldusers requires -e option to run
12/29/01 "Jason Kerr" suggestions
- vadduser not set the last authentication time
- vuserinfo report "never logged in" instead of
unix time 0 Wed Dec 31 18:00:00 1969
- add new vget_lastauthip() to return IP of client's last connection
added it to the vcdb.c and vmysql.c modules
- vdeloldusers() don't delete postmaster account
- remove unused -d domain option from vdeloldusers
- --enable-clear-passwd=y is now the default
12/27/01 "Yuri A. Kabaenkov"
- add -r option to vadddomain and vadduser to generate a
random password.
- add new vpopmail API function to generate a random password
char *vgen_pass(int len). returns a pointer to malloc'ed
memory filled with a random password of size = len.
- small typo in maildirquota.c fixed
- update maildirquota.c to use snprintf() instead of sprintf
5.1.3 and 5.1.4
12/26/01 - vpopmail.c signal_process() does not kill itself
- added vkill program to kill any running process that contains
the string passed on the command line. killall won't do that.
example: vkill qmail- will kill all qmail processes including
any tcpservers running qmail, but not tcpservers running
other things.
- vdeldomain now checks if the directory is a symbolic link
and then only removes the link
"Bill Shupp"
- Fixed typo that prevented accounting of quota warning messages
- Fixes for format_maildirquota() and how it's called.
- Messages < 1K are no longer delivered after user has exceeded
their quota. There's no need for this since we have proper
warning messages now.
"Richard A. Secor"
- change the timestamp in vlog to a UNIX Timestamp.
12/24/01 "Bill Shupp"
- vaddaliasdomain, get dir from assign file instead of
assuming it's under ~vpopmail/domains.
12/20/01 "Bill Shupp"
- moved quota conversion code into format_maildirquota()
- warning messages are now accounted for in quota
- warnings are still delivered even if the user is over quota
- fixed unformatted quota bug in vmoduser -Q
Donal Diamond
- if the mysql server is down, deffer valias deliveries
- new configure default
--enable-auth-logging=y
- wrong MAX_PW fields checked in a few functions
- MAX_ALIAS_LINE redefined in vpalias.c
12/19/01 - set max field sizes in vpopmail.h
- update mysql to use fixed field sizes
- error checks for field size limits in all functions
- vpopmail.h header changed to not say util.h
12/18/01 "Nicholas L. Nigay"
- Fix for "qmaildir" path being hardcoded in configure.in
- Fix for incorrect file size in quota warning message file name
5.1.2
12/18/01
- update MAX_BUFF in vpopmail.c to support maximum sized
domain names.
- change #ifdef in vchkpw to #ifdef HAS_SHADOW instead of
#ifdef HAVE_SHADOW_H
12/17/01
- added report for VA_BAD_CHAR to verror
- fixed error check for bad character in gecos field in
vadduser API.
- add check for length of domain name
12/15/01
Hendry D Lee and Mike Rogers
- if clear passwd is empty and learn passwords is on
then set the password
5.1.1
12/10/01 Bill Shupp
- Added quota warning messages
- added -Q option to vuserinfo to display current quota usage
12/04/01 - switch from old quota system to Mr. Sam's maildirquota system.
See README.quotas for more information.
5.1.0 - update version
12/03/01
5.0.1
12/03/01 Bill Shupp
- usernotfound() fix for non vpopmail user domains - catchalls
would bounce. Yavuz Aydin pointed this out.
- vegetent() fix (cdb module) vmoduser would corrupt the vpasswd
file when running on an entire domain.
- vmoduser wouldn't set the passwd field when running on entire
domain
- re-added .over-quota.msg support to vdelivermail
11/24/01 - kbo@inter7.com
changed the vchkpw error message about fd 3 when
people try to run it on the command line. Try it.
5.0
10/23/01 - valias -s domain with mysql would core dump.
tracked it down to vget_real_domain calling
vget_assign returning NULL but not checking.
- Bill Shupp
update vconvert usage() message
10/22/01 - update vconvert to work correct from cdb to mysql
- open relay template file name was wacky, fixed.
- unlink of empty template file was bad, fixed.
10/17/01 - Arthur Mills
login_system_user() in vchkpw.c should use vchkpw_exit(X)
where X is not 0 for invalid logins. Fixed.
10/11/01 - add #ifdef around open_smtp_relay in vchkpw.c because
some compilers are stupid.
- vchkpw.c for shadow /etc/passwd systems was using TheName
instead of TheUser. This would not break anything but
it is changed to be consistant.
- solaris compilers get -R$libdir
10/04/01 - Vladimir Kabanov
vdelivermail.c had incorrect Delivered-To: header
for users in sub directories fixed.
10/01/01 - Found by: Pontus Hanserkers
vcdb.c vsetuserquota incompatible with clear passwords.
vcdb.c vauth_setquota() now calls vauth_getpw() then
vauth_setpw() to do the underlying changes of the users
information, quota.
- Bill Shupp
updates to vuserinfo.c and vmoduser.c for qmailadmin
administrator privilages pw_gid bitwise flag QA_ADMIN
09/26/01 - change MYSQL_PORT to MYSQL_VPORT. Mysql include file already
has MYSQL_PORT
09/25/01 - add #ifdef for POP_FETCH lib
- delete tcprules temp file in case tcprules has an error
- system users were not able to pop auth relay, fixed
- add new QA_ADMIN flag for qmailadmin
09/18/01 - add sys/varargs.h check in configure.in
update vpopmail.c to have #ifdef around sys/varargs.h
which is needed for solaris 8 machines
09/17/01
Steve Wolfe
- with --enable-password=y vchkpw.c:397: undefined reference to 'log'
looks like the line should actually use vlog(), not log().
Marcus Williams
- vdelivermail.c lseek calls had a few with SEEK_SET in
the wrong order.
5.0pre6
09/15/01 Jan Pavlík
- Hi, i think there is 5 or 6 real_connects but you set
MYSQL_PORT for 2 only...
09/12/01 - update vdelivermail to use qmail's DTLINE environment
variable to set the DeliveredTo address when vdelivermail
delivers email to a catchall account.
- Jan PavlÃk
add #define MYSQL_PORT 0 to vmysql.h in case folks
want to hard code the port number. The default of
0 lets mysql read my.cnf files to set the port number.
- configure now says that --enable-passwd=n is the default.
It was the default already, now it just says it.
5.0pre5
09/07/01 - vmysql.c now checks for database fields being NULL
and properly handles it. No crash on NULL fields
- update the parse_email() function to also automatically
check for alias domains. This function is used in the
vchkpw auth program. So now, users can authenticate
against a domain or any of it's aliases. It uses
the vget_real_domain() function to change the domain
from an alias to the real one.
5.0pre4
09/06/01 - if mysql server is down email delivery is deffered
instead of bounced.
- auto creation of maildir on email delivery in vdelivermail
now works. Wasn't added in when the vdelivermail was
completely re-written.
- Einar Bordewich
when adding a new user, if the directory already exists
do not delete it and add it again. This was a feature
but turns out it can delete mailing lists.
5.0pre3
09/06/01 Pascal Lauly
- reported bug with cdb module, adding a user with
the name of "vpasswd" trods on the vpasswd file
fixed in vcdb.c
5.0pre2
09/05/01 - vadduser -n option now sets the password to blank so
it can be used with --enable-learn-password=y
- add --enable-learn-passwords configure option.
5.0pre1
09/04/01 - first 5.0 release canidate
4.10.36
09/04/01 - include vchkpw "learn password" feature.
08/30/01 - configure creates a vpopmail.config file with the command
line needed to re-run configure with all the selected options
08/29/01 - vcdb module, update vauth_getall to support
clear text passwords and blank fields
4.10.35
08/20/01 - security permission change on lib directory and library
- vauth_user now will set blank passwords first time.
- blank passwords are set in vchkpw too
4.10.34
08/16/01 - vol@inter7.com
new vldap.c module
4.10.33
08/08/01 - David Wartell
fix qmail-ext to process -ext like qmail.
- David Wartell
add mysql logging.
4.10.32
08/05/01 - added -e "encrypted passwd" to vadduser.
- remove APOP from vadduser
08/04/01 - JM Roth
configure --help for --enable-sqwebmail-pass did not
make sense. updated it.
08/02/01 - "Richard T. Wareing"
vmysql getall function returning incorrect gecos field
4.10.30
07/30/01 - finally update vconvert for removal of large/small site
api's in the vmysql.c module. Now it will run.
07/19/01 - vcdb.c needed address to memset
- tested smtp authentication - Works!
- vcdb module return a null string instead of 0 for clear_passwd
07/12/01 - updated vchkpw.c to use instead of
4.10.29
07/12/01 - filter out supervise on signal kill
07/11/01 - vpopmail.c: decrement dir control was using "master_domain"
instead of dom_"uid". fixed
- vpopmail.c: check for domain existance before doing anything else
in api vadddomain()
- vmoduser.c -q Quota was not updating quota
07/07/01 - vmysql and vcdb modules, set the pw_clear_passwd field
to NULL in vauth_getpw calls. Just so we know the
vpw->pw_clear_passwd field doesn't contain a garbage
pointer
- removed the vdelivermail message about delivering the email
to a different user.
07/06/01 - vadddomain had "vaddomain" in the help text
4.10.28
07/06/01 - vdelivermail checks the DTLINE to see if mail is looping
- qmail_inject reading from fd 0 doesn't allow for setting
a delivered to line. So back to the old way of writing it.
- getall mysql select was wrong, was fixed, crept back into
the source. fixed
07/03/01 - if the users directory exists, delete it and keep going
4.10.27
07/03/01 - "David Wartell"
Solaris and Linux have different results with unlink()'ing
a directory. Linux returns and error and Solaris doesn't.
David's code checks handles this and correctly works with
both solaris and linux (presumably with other OSen).
- "Chris Bunnell"
reverse the check in vdelivermail for user over quota.
messages of less than 1000 bytes were not updating the
.current_size file.
07/01/01 - "Robin S. Socha" OpenBSD 2.8 wanted #include
in vdelivermail.c, now that vdelivermail is looking
at signals.
- updated all the vchkpw exit codes to be non-zero in
case of any errors. It only returns 0 if successful
authentication takes place.
4.10.26
06/29/01 - in vdelivermail figured out how to share the standard in
file descriptor with qmail-inject and any programs that
get exec'd. That way programs can rewind thier input and
we save read/writing the whole message through memory.
4.10.25
06/29/01 - "Alex Hathaway"
configure option for solaris 2.8 for finding the id command.
06/28/01 - vdelivermail used a small buffer of 100 to handle .qmail
file deliveries in a users directory. This is not large enough
06/27/01 - noticed there is no end function for getall, added
vauth_end_getall(), helpful for mysql aborted connections.
- stupid vmysql.c vauth_getall wasn't filling in the clear
password field and the ifdef had the wrong word
06/26/01 - "chris"
- After much debugging work Chris found in vadddomain it
lower cases the directory. This breaks directories that
have upper cases in them, like /RAID
- update to configure script to set shared object library path
- updated all vmysql.c mysql_result calls to call mysql_error
on an error.
4.10.24
06/25/01 - Programs which did not call vclose(), vdominfo, vaddaliasdomain,
- vadddomain was using the old domain directory structure
(no hashing) to check for a domains existence. So it was
not successfully finding existing domains. It now calls
vget_assign to check if the domain exists in the assign file
- configure now checks for the location of qmail-inject,
qmail-newu and qmail-newmrh for distributions (prolly Debian)
which put them in different locations.
- Daniel Savard
fixes to vcdb.c in vread_dir_control to start index loop
at 0 instead of 1, i=0.
4.10.23
06/23/01 - update configure to check for location of qmail-newu
Debian decided to move it into /usr/sbin. By the way,
Debian's policies on open source software are keeping
qmail and any program that uses qmail, off zdnet/appwatch
software download site.
- thanks to Patrick Earl for
clearly pointing out the differences in Debian.
- vauth_getall in mysql module had wrong number of columns
for the many domains option
- vuserinfo was not displaying all the fields
- vcdb module bug which caused a new line to be in the path
to a domain. caused assign file to be corrupted and a wierd
file named "?" to be created in /home/vpopmail/domains
All fixed
4.10.22
06/21/01 - Daniel Savard
change to vpopmail.c vgetent function for CLEAR_PASS
- Rick Stanley
fix for Delviered-To: /path/to/maildir. Now it correctly
states the accounts *real* email address.
06/18/01 - "Tim Hasson"
README.ldap documentation and testing
- OptimizeNewDomain will now compile users/assign file.
- signal_process will signal any process which contains
the process name
4.10.21
06/16/01 - remove use of fscanf in vcdb.c module so vpopmail/cdb
can be compiled with dietlibc
- removed the filter option in configure and the README.filter
file from the distribution. The same functionality can
now be done with maildrop.
4.10.20
06/13/01 - end of configure script uses IP_ALIAS instead of IPALIAS
- vshow_ip_map in vmysql.c would fail if the ip_alias_map
table was not created first.
- updated the copy write notice for year 2001 in all files
- "Marcus Williams"
temporary version of open_command for vdelivermail
- Antonio Dias
compilers complain if vdelivermail.c doesn't end with an exit()
4.10.19
06/13/01 - added vchkpw_exit() function to vchkpw to do vclose()
and closelog().
- added --enable-file-sync=y (default) or no
no will stop vdelivermail from calling fsync/fdatasync
when it delivers mail.
- Antonio Dias
vset_lastauth in vcdb.c wasn't returning a value when
auth logging is enabled.
- clean up vmysql.h and vmysql.c
- clean up command line processing skeleton code in vdelivermail
- add a vdl_exit() to call vclose in vdelivermail
06/12/01 - more ifdefs in vmysql.c and vmysql.h to clean up
sql queries
- no more need for xyz_size functions in vmysql.c
- changed --enable-large-site=y to --enable-many-domains=n
and --enable-large-site=n becomes --enable-many-domains=y
Hopefully, this will be less confusing in the future.
- finally take the big plunge and change all sprintf's to
snprintf's. Any OS's that don't have snprintf should
install it.
4.10.18
06/11/01 - yet another fix to vget_assign for cdb module. It was
doing a strncpy from a NULL pointer, that's bad.
- error in vaddaliasdomain created the incorrect directory
in /var/qmail/users/assign, fixed.
- Ryan Duda
- put in vclose before exits in vchkpw.c and vdelivermail.c
- vchkpw wasn't getting the pw_uid and pw_gid
- Antonio Dias
- another switch in vcdb.c from strncpy to strncat
- vpw instead of pw in vcdb.c vset_lastauth()
06/10/01 - Antonio Dias
fix for file locking ifdefs in file_lock.c
fix for vcdb.c dc_filename to use strncat not strncpy
- error in vchkpw.c calling vset_lastauth with the wrong
first parameter
- found one more %ul instead of %lu in vpopmail.c
- more type casting of pid_t and off_t to unsigned long
to make freebsd happy
- configure now checks for fdatasync
- vdelivermail.c has ifdef for fdatasync. If the function
is not avaialble it uses fsync instead.
4.10.17
06/08/01 - Stupid configure.in file. Was using $vpopmaildir variable
before setting it. Fixed! Still working forward to the
5.0 production release.
- AddDomainOptimize = 1 now does not compile the assign file
this vastly increases the speed of bulk domain adds
- configure now sets FILE_LOCKING = 1 instead of y
- file_lock.c used FILE_LOCK instead of FILE_LOCKING
- Marcus Williams"
vdelivermail code review for rename logic, did not
need to do an unlink if we did a rename.
4.10.16
06/07/01 - Marcus Williams"
support for coda file system in vdelivermail in case
the link() function fails and we have to call rename()
- code review of vchkpw and syslog calls, check if we
are logging anything before making calls to syslog.
- Antonio Dias
fixes to cdb module for dir control processing
change unsigned long to long unsigned everywhere
update mysql and postgress modules to use %lu instead
of %ld for the long unsigned variable
- update open_bid_dir and vread_dir_control to include
the uid and gid fields
- removed unused read_dir_control and write_dir_control
declarations in vauth.h.
- vget_assign now correctly handles looking up domains
that do not exist in the assign file
- add a global flag OptimizeAddDomain to turn off compiling cdb
files and HUP'ing qmail-send
- fixed a memory leak in mysql vauth_getpw function. If the user
was not found the mysql result was not released.
06/05/01 - Marcus Williams"
optimize vdelivermail Maildir code and sync the file
- Fix vadduser user for users with no domain
4.10.15
06/04/01 - --enable-passwd=n is now the default. It is slightly
more restrictive which sounds better for people who
are trying this for the first time.
- vdelivermail now properly uses the Maildir/tmp directory
to write emails to. Then it links it to new and unlinks
the tmp file.
- more error checking in vdelivermail write calls.
checks for user over quota write failure and returns
that error so the email should be bounced back.
- updated vset_lastauth to not require a vauth_getpw first.
this should speed up vadduser. also with mysql replication
there can be a race condition with adding the user to
the master server and it has not shown up on the slave.
- added a --enable-file-locking option. Default is yes,
which is backwardly compatible. Some NFS file locking
implementations are just plain broken out of the box.
--enable-file-locking=n will avoid that.
4.10.14
06/03/01 - with mysql replication, if we can not connect to the
read server then try connecting to the udpate server
06/03/01 - modified the vdominfo and vuserinfo programs so that if
the user specifies to display some of the information,
the it does not print out a title for each line of
information. The idea is that if any program wants
to get the directory of a user, they can do,
./vuserinfo -d user@domain and it will print out
the directory followed by a newline. This should be
easier for programs to parse.
4.10.12
06/03/01 - added a new vdominfo program to display information about
one domain or all domains. You can use this to find out
the directory where the domain is stored. This should help
out since the domain directories are hashed. It also
displays the number of users in the domain.
- updated vadddomain to support domain directory hashing
for all users and not just the vpopmail domain users.
- added new configure option --enable-qmail-ext. This
was the default in old installations. Now there is
an option to turn it off.
--enable-qmail-ext=y (default) will deliver mail
for joe-ext@domain.com to joe@domain.com
--enable-qmail-ext=n will NOT deliver mail for
joe-ext@domain.com to joe@domain.com. It will
only deliver it to joe-ext@domain.com
- added display of ip-alias-domains and qmail-ext to
the configure print out at the end.
- updated the vmysql module to use a separate read connection
for the vauth_getall function. It needs a separate connection
or else any vpopmail call that is done during a getall
loop will fail.
- the --enable-mysql-replication=y and
--enable-mysql-replication=n now work correctly. Any C
programmers might want to take a look at the vmysql.c
file to see how #ifdef MYSQL_REPLICATION and the use
of redefining symbol names for variables and functions
work to simplify the code.
4.10.11
06/03/01 - update vldap.c to not look at ld_errno field and instead use
the ldap_add_s return code.
- update configure.in for --enable-ldap=y to add -lresolv to
the link libraries.
06/01/01 - finish voracle.pc port
- fix the location of id for solaris machines
4.10.10
05/29/01 - vchkpw printf format error for uid/gid
- configure wasn't printing out the correct auth_libs line
- Sean Truman
vmysql module modified to have a read and update connection.
This can be used in mysql replicated systems.
4.10.9
05/25/01 - update configure script to accept --enable-sqlincdir=
and --enable-sqllibdir= for the oracle module.
- vsetuserquota now forces "noquota" to be in upper case.
vsetuserquota user@domain noquota becomes
vsetuserquota user@domain NOQUOTA
- vpopmail.c clean up for solaris, pid_t and islower int types
- oracle version working.
4.10.8
05/24/01 "Sean C Truman"
- vchkpw was exiting on successful authentication when
logging = 1 or 4.
- update mysql module to use unsigned int instead of
timestamp type. Then we store the unix system time.
- a bunch of clean up of mysql authlog table stuff
the time stamp in the authlog table is now a
time_t variable, or what ever is closest. In mysql
it is a "bigint" type.
- more POP_AUTH_OPEN_RELAY to remove the requirement
for tcprules. If they don't want pop auth, they
are not required to have tcprules nor any of the
vpopmail tcprule dependent code
- fixed some return code stuff
4.10.7
05/22/01 - "Sean C Truman"
add bigdir features to vadddomain so domain directories
can be hashed. Tested with cdb and mysql modules
- master_domain dir control is updated on creation and
deletion of domains.
- change to configure script, if --enable-roaming-users=y
is not selected, configure no longer checks if there
is a valid tcprules program on the system, since it
is not needed by vpopmail.
4.10.6
05/21/01 - Start updating voracle.pc to bring it current. Add in
last auth, clear pass and valias features.
- create vget_lastauth function in cdb module to return
the last access time of the user.
- create vget_lastauth function in mysql module
- change name of vlogauth() function to vset_lastauth();
updated vmysql.c and vcdb.c to use new name
- update vcdb vset_lastauth to put the remote IP into the
lastauth file.
- update vuserinfo to display last auth time if it is configured
- update vchkpw.c to have ifdef for ENABLE_PASSWD
- update configure script to report if system passwords are on/off
- The valias_insert functions no longer check if user@domain is
in vpopmail and replace with Maildir path
- removed the unneeded safestring.c files and functions
instead use the standard string.h functions
- complete re-write of vdelivermail.c
4.10.5
05/20/01 - complete re-write of vchkpw.c removed need for vchkpw.h file
- vpopmail lowerit(char *string) now limits the string length
as well as lowering it. Length is limited to 156
05/19/01 Chris and Seo David
- the following needs to be in the configure files
*-*-solaris*)
idcommand="/usr/xpgr4/bin/id -u"
instead of /usr/xpgr4/id -u
- solaris reports problems with uid's and gid's declared
as int's. They need to be declared as uid_t and gid_t
Justin Heesemann
- New code for cdb_to_sql function in vconvert. Very slick!
4.10.4
05/16/01
- in vauth_setpw function for cdb, mysql and sybase,
change the check for VPOPMAILUID and root to check
for uid = the uid in users/assign file for the domain
and root. This will allow users who have thier domain
stored under thier uid to be able to modify thier
own users. Matt Simerson discovered the problem.
- added loop checking in vdelivermail
- set the permissions correctly on the new mail files
in vdelivermail.
4.10.3
05/16/01
- remove the need for a temp file for alias delivery
- vdelivermail no longer writes to the Maildir/tmp
directory and rename it to Maildir/new. Instead it
writes directly to Maildir/new. This saves a system
call to rename the file.
- vdelivermail no longer stats the "to be created"
Maildir/new file. This saves a stat system call
- added new vpalias.c module for the vpopmail library
that has the .qmail file based valias api functions.
it is conditionally compiled in if mysql and valias
are not used
- non api commands completed for processing of .qmail files.
- configure script only allows --enable-valias=y if you
have --enable-mysql=y
4.10.2
05/16/01 gilh@mudbuginfo.com
- xinetd style line for pop/vpopmail in INSTALL file
kbo@inter7.com
- remove unused --enable-admin-email configure option
- updated vmysql.c create table routines to use separate
sql command buffer so the calling function doesn't need
to reformat it's sql
- update all of the alias commands in the mysql module
- updated vdelivermail to use the alias commands and
support &emailaddress, emailaddress and directory
deliveries. Sending the email into a program isn't
completed yet.
4.10.1
05/14/01 - vmysql.c vauth_setquota didn't finish the mysql command
- added second mysql connection for vauth_getall
- vauth_getall now uses store result instead of use result
so that updates to the table can continue while other
sql programs are accessing the table.
- change all mysql use_result to mysql_store_result
05/10/01 - vdeldomain will now delete all entries in the lastauth table
for that domain if auth logging is enabled.
- the authlog table creation function had remoteip as a column
name instead of remote_ip, fixed
- vdeluser will now delete the users entry in the authlog
table if it auth logging was enabled.
05/09/01 - vadduser with mysql option and auth-logging option will
now add a entry to the authlog table when ever a user
is added, with a remote IP set to 0.0.0.0.
- new vdeloldusers program to clear out any users which
have not authenticated in X amount of time.
05/02/01
- added check for max size of username
- vdelivermail scopy sizeof(prefix) instead of sizeof(bounce)
- vdelivermail won't make directories for unknown users
filippo@mobilia.it & kbo@inter7.com
- added check if mysql is down, email is deferred instead of
bounced or deleted.
- found two consecutive returns in vpopmail.c - removed redundant one
- updated vldap.c vwrite_dir_control to have uid_t and gid_t
05/01/01 - kbo@inter7.com
new version number for struct vqpasswd to be compatible
with qmailadmin-0.50
- created convert directory with new vcalias program that
loads a domains .qmail files into the valias mysql table
- added --enable-valias option to configure
added VALIAS define to config.h
added VALIAS #ifdef code to vauth.h
added skeleton VALIAS #ifdef code to vcdb.c
added working VALIAS #ifdef code to vmysql.c
4.9.11
05/01/01 - Greg Nelsen
Discovered why vpasswd keeps getting corrupted on his machine.
vadduser() in vpopmail.c was not checking the return error
code on make_user_dir() function. Hence it would crash.
04/30/01 - kbo@inter7.com
removed vauth_vpasswd api (deprecitated), replaced
functionality of vpasswd call with vauth_setpw()
added --enable-clear-pass=y option to configure
added support for clear passwd's to mysql module
added support for clear passwd's to vcdb module.
modified vuserinfo to display clear passwords if selected.
updated vmoduser to allow setting encrypted password or
cleartext password -C "clear text"
04/25/01 - Nathan
fixed file descriptor leak in vget_assign()
- kbo@Inter7.com
change mysql "unique index" to "primary key"
- added vqpasswd structure to replace "struct passwd"
this is needed to support clear text passwords and
is a good stepping stone to adding support for other
needed fields in the future.
4.9.10
04/03/01 - Upgrade development release to production release
4.9.9-3
Mar 22 - vmoduser now will display an entire domain with a new option
-D domainname
Mar 19 - configure now reports default domain
Mar 16 - remove #ifdefs for HARD_QUOTA in vdelivermail so that quota
support is controled by the pw_shell (quota) field.
- cleaned up error printf's for vdeldomain, vadddomain and vadduser
Bill Shupp
- added --enable-logging=v option
4.9.9
Mar 15 - found correct path to /usr/xpg4/bin/id for solaris, updated
the configure script
- add error print out to vipmap if ip-aliases were not configured
- remove unused tmpstr variable from vchkpw.c
- --enable-log-name was not being used in vchkpw.c - fixed
- vchkpw was not opening syslog before the first two possible
calls to log an error then exit. fixed
- r_mkdir was not using the incoming uid/gid and instead setting
it to the hard coded VPOPMAILUID/VPOPMAILGID - fixed
- problem with new safe_rename function, had the #ifdef reversed
- fixed problem with vpopmail.c vgetent() function. It was not
removing the trailing "\n" from the pw_shell field.
Mar 14 - support for solaris not having the gnu id program
- configure.in script was creating tcp.smtp file with wrong syntax
Mar 13 - finally idea for putenv is to use global variables instead
of calling malloc. Slightly less processing time needed.
- add AUTOMAKE_OPTIONS = foreign no-dependencies to
Makefile.am to be more portable
Mar 9 - add new vcdir program in the contrib directory. It will
convert old .dir_control files into the new mysql table
dir_control
- added new informational printouts to the configure script.
this might help folks see what got configured.
- new --enable-coda option and new coda link/rename code
Thanks to "Andrea Cerrito"
- added new options to vconvert
-v to print out the vpopmail version
-d to enable debug print outs
-S to set sqwebmail passwords for old domains which don't have them
Mar 8 - remove un-needed fsync calls in vdelivermail
- add check in make_user_dir for if user doesn't exist yet.
- replace the link() functions in vdelivermail with a safe_link
This might make vpopmail work on CODA file systems. Thanks
to Jan Harkes of CODA for the code
snippet.
- cleaned up the configure.in script and it's use of vpopmail.dir,
vpopmail.uid and vpopmail.gid files
- configure automatically creates the ~vpopmail/etc directory if
it doesn't exist
- added checks for vpopmail user and vpopmail group, cleaned up
check for vpopmail home directory
- added information message to make install-strip to let folks
know they don't have to wait around while the chown/chgrp
runs, they can stop it if they want. it's knot really needed.
- fixed vchkpw() putenv values in vchkpw.c
Found by "Boian Bonev"
Mar 7 - make vauthlog a function for each module, only mysql module has code.
This is so sqwebmail and courier-imap can have thier authentication
logged.
- cleaned up code in make_user_dir() in vpopmail.c
also creates sqwebmail password file if enabled and updates the
authentication information
- updated vchkpw to use the new make_user_dir code
- updated vdelivermail to use the new make_user_dir code
Mar 6 - vmoduser wasn't working for entire domains. Simple fix.
Mar 5 - add -u NO_DIALUP code to vmoduser
"Abdul Rehman Gani"
- updated all code to use uid_t and gid_t instead of int.
- vset_default_domain was over writing things at the wrong time
in the mysql module
Feb 28 - Added configure check to see if it's being run as root.
It needs root access to write to the !vpopmail/etc directory.
- fix compile time warning with ip-alias-domains=y
- fix vipmap -p for cdb module. it wasn't printing anything.
Feb 24 - for mysql, allow ' character in gecos field
- vconvert -c -s wasn't setting the uid field correctly
Feb 23 - Don't allow zero length or null user names in vdeluser.
This would cause an entire domain to be deleted
- added logging of pop authentication with mysql module
- vdeldomain now prints out correct error message when it can not
to delete a domain.
- fixed vadddomain -e user@domain option
4.9.8-1
Feb 19 - qmail-newmrh instead of qmail-newrh in execl call
"Oden Eriksson"
Feb 16 - nice vacation, sqwebmail-pass fix
4.9.8
Jan 10 - audit vchkpw default domain, ip aliases and parsed domain code
minor fix
Jan 9 - bug in the ldap module caused qmailadmin to not list all accounts
Jan 8 - add virtual IP and bigdir functions to ldap module
- add -e "encrypted password" option to vmoduser
Jan 4 - move IP aliase code to vpopmail library
- make vset_default_domain read VPOPMAIL_DOMAIN environment varilable
redo the logic
Jan 3 - upgrade to next version number
- remove .qmail forwarding loop in users Maildir .qmail file
- remove string length check for mysql ip alias mapping
- add VPOPMAIL_DOMAIN environment variable check in vset_default_domain
this is handy for SetVar
4.9.7 "The quest for distributed data synchronization via
transaction oriented data storage, e.i: RDBMS"
or
"No more vpopmail vpasswd, .dir-control file locking"
Jan 3 - removed unneeded alarm call in vdelivermail
Dec 22 - option setting in vpasswd for apop was reversed.
Oliver Chiu
Dec 18 - added vdirrestore shell script to contrib directory.
"Sailin Nelson"
Dec 14 - add quota flag to vmoduser for setting the quota
- patch files for cistron 1.6.4 radius server added to contrib
directory. enables cistron radius to use vpopmail api for
authentication transactions (Nice work)
"Abdul Rehman Gani"
- changed the order the cdb files update vpasswd so as to use
the rename(2) function "it will be atomically replaced"
- remove the need to have file locking on the .dir-control file
with cdb module.
- modified the update_file utility function to use the automic
rename(2) unix function.
- modify the open_smtp relay file i/o to use the automic rename(2)
for updating the file
- update the configure script to automatically search for the
mysql library and include directory in the two standard locations.
also check if it's not been found and force the user to set them
as configuration line options
- configure script now creates an ~vpopmail/etc/inc_deps and
~vpopmail/etc/lib_deps files that contain the needed -I
and -L -l options for other programs that use the vpopmail code
- null terminator addition code fix for parse email.
"Abdul Rehman Gani"
- modify the mysql create table syntax for the relay table to use
unique index instead of primary key. Since the update sql requires
updates against a unique key
- create mysql functions for dir control i/o using replace sql
for synchronizing access to the dir control state information
per domain.
- add -lz to default mysql libraries needed
- fix default domain and ip alias domains working with each other
NOTE: qmailadmin-0.40 configure/makefile scripts were updated to use the
inc_deps and lib_deps files to automatically figure out which include
directories, lib directories and libraries for vpopmail's setup
Dec 13 - added new vipmap command line program to add, delete and print
out the list of IP's and their associated domain name mappings
- removed DNS/tcpserver code for ip alias domains and instead use
new vpopmail api functions: vget_ip_map, vadd_ip_map,
vshow_ip_map and vdel_ip_map
- added new ip map code to vcdb.c module
- added new ip map code to vmysql.c module
- added ifdef's inside each include file to exclude multiple inclusions
(The above line is my nomination for the trippiest ChangeLog wording)
- added contrib directory to the distribution. First entry is, vpassgen
a script that will rebuild a vpasswd file from the directory
structure of an existing domain ;] Then all you have to do is
deal with customers calling and complaining about passwords.
"Sailin Nelson"
- modularized the big_dir i/o api functions.
- moved file based big_dir i/o functions to the cdb module.
- added mysql big_dir i/o functions.
Dec 12 - cdb module now allows the uid/gid owner of a domain to set a
password or update the password structure.
Brian Kolaci wrote the code. Thanks to Matt Simmerson for
sending it in and using it on his boxen.
- update how vchkpw calls vclose to cleanly close mysql connections
on pop authentication. This removes those horrible "aborted
connection" messages in the mysql error log.
Dec 11 - log user, host, ip and password for users who are denied pop
access yet attempt to connect via pop.
"Chris Bunnell"
Dec 10 - update the vmoduser usage comments to include the V_USER0 through
V_USER3 flags. Update the GidFlag bit flag setting in the option
processing to correctly set the flags.
"Abdul Rehman Gani"
Dec 9 - vmysql module didn't unmangle ip address from courier-imap users
Dec 6 - added -d option to vadddomain for setting the directory on
the command line.
Dec 5 fixed apop usage in vmysql.c
Nov 30 - free memory in vcdb.c under error condition
"James"
Nov 27 - vsqwebmail_pass was writing over TmpBuf1 in vadduser so
that the chdir back to the callers directory was not working.
Martin Köster
Nov 20 - add a res1=NULL in vmysql.c vauth_getall to make it more
robust. Garrett Marone
Nov 15 - vchkpw forces all pop names to lower case
4.9.6
Nov 13 - upgrade version to 4.9.6
4.9.5
Nov 1 - udated vmysql.c voracle(pc/c) vsybase.c and vldap.c to
correctly set the sqwebmail password
Oct 31 - logic error in vget_assign with memory freeing
- Happy Holloween!
- commenting code in vpopmail.c, removing static strings for
calloc'd memory.
- --enable-logging=y and password would fail, then no
string was formatted so blank entry to syslog, fixed.
Oct 30 - moved the SQWEBMAIL_PASS define into configure program.
- found error in vcdb.c module. it was not setting the
sqwebmail password when called by vauth_setpw api
- memory and FILE * leak in vchkpw.c fixed
Brian Kolaci
- NoMakeIndex and ClearFlags option command line flags were
set to the opposite of what thier defaults should be
Daniel Augusto Fernandes
Oct 25 - added error checking to vauth_getall in all auth modules
- moved the open_smtp_relay code into the vpopmail library
so courier-imap can do roaming users. removed the opensmtp files
Oct 24 - vget_assign had a strncmp != 0 and should have been == 0
Oct 23 - lower the case in vdelivermail for user and domain after
the values are filled in from the environment variables.
submitted by RP