You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(18) |
Oct
(28) |
Nov
(9) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(37) |
Feb
(16) |
Mar
|
Apr
(11) |
May
(2) |
Jun
(3) |
Jul
|
Aug
(6) |
Sep
(6) |
Oct
(8) |
Nov
(14) |
Dec
(20) |
2005 |
Jan
(11) |
Feb
(8) |
Mar
(7) |
Apr
(1) |
May
|
Jun
|
Jul
(3) |
Aug
(7) |
Sep
(2) |
Oct
(1) |
Nov
|
Dec
|
2006 |
Jan
|
Feb
(11) |
Mar
|
Apr
(2) |
May
(7) |
Jun
(1) |
Jul
|
Aug
(2) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(4) |
2007 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(2) |
Oct
|
Nov
(6) |
Dec
|
2008 |
Jan
(5) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(12) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
(2) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Tom C. <tom...@us...> - 2005-01-23 05:11:55
|
Update of /cvsroot/qmailadmin/qmailadmin/lang In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4059/lang Modified Files: Tag: stable-1_2 en Log Message: Added single page for changing password. [775208] Index: en =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/lang/en,v retrieving revision 1.2.2.3 retrieving revision 1.2.2.4 diff -u -d -r1.2.2.3 -r1.2.2.4 --- en 31 Dec 2004 01:29:31 -0000 1.2.2.3 +++ en 23 Jan 2005 05:11:47 -0000 1.2.2.4 @@ -281,3 +281,4 @@ 313 the address 314 Bad quota supplied 315 User deleted. Unable to set forward to '%s'. +316 Change Password |
From: Tom C. <tom...@us...> - 2005-01-12 15:14:37
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15327 Modified Files: Tag: stable-1_2 ChangeLog qmailadmin.c Log Message: Include charset in HTTP Content-Type header. [1098891] Index: qmailadmin.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/qmailadmin.c,v retrieving revision 1.6.2.5 retrieving revision 1.6.2.6 diff -u -d -r1.6.2.5 -r1.6.2.6 --- qmailadmin.c 31 Dec 2004 01:02:40 -0000 1.6.2.5 +++ qmailadmin.c 12 Jan 2005 15:14:27 -0000 1.6.2.6 @@ -283,6 +283,7 @@ { char *accept_lang; char *langptr, *qptr; + char *charset; int lang_err; float maxq, thisq; @@ -391,7 +392,9 @@ umask(VPOPMAIL_UMASK); - printf ("Content-Type: text/html\n"); + charset = get_html_text("000"); + printf ("Content-Type: text/html; charset=%s\n", + *charset == '\0' ? "iso-8859-1" : charset); #ifdef NO_CACHE printf ("Cache-Control: no-cache\n"); printf ("Cache-Control: no-store\n"); Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.54 retrieving revision 1.15.2.55 diff -u -d -r1.15.2.54 -r1.15.2.55 --- ChangeLog 12 Jan 2005 07:15:43 -0000 1.15.2.54 +++ ChangeLog 12 Jan 2005 15:14:27 -0000 1.15.2.55 @@ -22,6 +22,7 @@ one didn't already exist. - INSTALL: Add note about running `libtoolize --force` on x86_64. - Update config.guess and config.sub scripts. + - Include charset in HTTP Content-Type header. [1098891] 1.2.6 - released 24-Dec-04 |
From: Tom C. <tom...@us...> - 2005-01-12 07:15:57
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16340 Modified Files: Tag: stable-1_2 ChangeLog TRANSLATORS Log Message: Add Tomas Kuliavas's Lithuanian translation Index: TRANSLATORS =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/TRANSLATORS,v retrieving revision 1.3.2.2 retrieving revision 1.3.2.3 diff -u -d -r1.3.2.2 -r1.3.2.3 --- TRANSLATORS 5 Apr 2004 10:31:05 -0000 1.3.2.2 +++ TRANSLATORS 12 Jan 2005 07:15:44 -0000 1.3.2.3 @@ -15,6 +15,7 @@ it Italian Fabio Erri <f....@el...> ja Japaense Tohru Kobayashi <kob...@al...> ja Japanese Yuu Andou <and...@sc...> +lt Lithuanian Tomas Kuliavas <to...@us...> nl Dutch Jeroen van Raalta <jv...@se...> nl Dutch Maurice Snellen <ma...@hy...> no Norwegian Andreas Tolfsen <at...@it...> Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.53 retrieving revision 1.15.2.54 diff -u -d -r1.15.2.53 -r1.15.2.54 --- ChangeLog 9 Jan 2005 20:02:17 -0000 1.15.2.53 +++ ChangeLog 12 Jan 2005 07:15:43 -0000 1.15.2.54 @@ -3,6 +3,9 @@ 1.2.7 - unreleased + Tomas Kuliavas + - Added Lithuanian translation. + John Peacock - template.c: Fix typo that broke autoresponder subject display. |
From: Tom C. <tom...@us...> - 2005-01-12 07:15:54
|
Update of /cvsroot/qmailadmin/qmailadmin/lang In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16340/lang Added Files: Tag: stable-1_2 lt Log Message: Add Tomas Kuliavas's Lithuanian translation --- NEW FILE: lt --- (This appears to be a binary file; contents omitted.) |
From: Tom C. <tom...@us...> - 2005-01-09 20:02:39
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25533 Modified Files: Tag: stable-1_2 ChangeLog config.guess config.sub Log Message: Update config.guess and config.sub scripts. Index: config.guess =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/config.guess,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.2.1 diff -u -d -r1.1.1.1 -r1.1.1.1.2.1 --- config.guess 10 Sep 2003 21:38:42 -0000 1.1.1.1 +++ config.guess 9 Jan 2005 20:02:17 -0000 1.1.1.1.2.1 @@ -1,7 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. -# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-04-20' + # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by [...1297 lines suppressed...] +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: Index: config.sub =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/config.sub,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.2.1 diff -u -d -r1.1.1.1 -r1.1.1.1.2.1 --- config.sub 10 Sep 2003 21:38:42 -0000 1.1.1.1 +++ config.sub 9 Jan 2005 20:02:17 -0000 1.1.1.1.2.1 @@ -1,9 +1,13 @@ #! /bin/sh -# Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc. +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-04-20' + # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software [...1181 lines suppressed...] + -mpw* | -macos*) vendor=apple ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.52 retrieving revision 1.15.2.53 diff -u -d -r1.15.2.52 -r1.15.2.53 --- ChangeLog 7 Jan 2005 06:58:19 -0000 1.15.2.52 +++ ChangeLog 9 Jan 2005 20:02:17 -0000 1.15.2.53 @@ -18,6 +18,7 @@ - user.c: Fix bug from 1.2.6 related to creating .qmail files when one didn't already exist. - INSTALL: Add note about running `libtoolize --force` on x86_64. + - Update config.guess and config.sub scripts. 1.2.6 - released 24-Dec-04 |
From: Tom C. <tom...@us...> - 2005-01-05 04:55:02
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10826 Modified Files: Tag: stable-1_2 ChangeLog template.c Log Message: Fix typo that broke autoresponder subject display. (from John Peacock) Index: template.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/template.c,v retrieving revision 1.7.2.10 retrieving revision 1.7.2.11 diff -u -d -r1.7.2.10 -r1.7.2.11 --- template.c 31 Dec 2004 01:38:33 -0000 1.7.2.10 +++ template.c 5 Jan 2005 04:54:52 -0000 1.7.2.11 @@ -234,7 +234,7 @@ /* take off newline */ i = strlen(TmpBuf2); --i; TmpBuf2[i] = 0; - printh (" <td><input type=\"text\" size=40 name=\"alias\" maxlength=128 value=\"%h\"></td>\n", + printh (" <td><input type=\"text\" size=40 name=\"alias\" maxlength=128 value=\"%H\"></td>\n", &TmpBuf2[9]); printf (" <td> </td>\n"); printf (" </tr>\n"); Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.50 retrieving revision 1.15.2.51 diff -u -d -r1.15.2.50 -r1.15.2.51 --- ChangeLog 3 Jan 2005 20:31:09 -0000 1.15.2.50 +++ ChangeLog 5 Jan 2005 04:54:51 -0000 1.15.2.51 @@ -3,6 +3,9 @@ 1.2.7 - unreleased + John Peacock + - template.c: Fix typo that broke autoresponder subject display. + Tom Collins - Add Quick Links section to main menu. Admins can now enter an email address and go directly to the modify or delete page, |
From: Tom C. <tom...@us...> - 2005-01-03 20:31:20
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12947 Modified Files: Tag: stable-1_2 ChangeLog user.c Log Message: Fix bug from 1.2.6 related to creating .qmail files when one didn't already exist. Index: user.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/user.c,v retrieving revision 1.11.2.9 retrieving revision 1.11.2.10 diff -u -d -r1.11.2.9 -r1.11.2.10 --- user.c 23 Dec 2004 18:39:48 -0000 1.11.2.9 +++ user.c 3 Jan 2005 20:31:09 -0000 1.11.2.10 @@ -904,9 +904,6 @@ } } } - if (olddotqmail == NULL) { - olddotqmail = ""; - } fs = fopen (dotqmailfn, "w"); @@ -914,18 +911,20 @@ * lines to the new .qmail file. */ emptydotqmail = 1; - dotqmailline = strtok (olddotqmail, "\n"); - while (dotqmailline) { - if ( (*dotqmailline == '|') && - (strstr (dotqmailline, "/true delete") == NULL) && - (strstr (dotqmailline, "/autorespond ") == NULL) && - (strstr (dotqmailline, SPAM_COMMAND) == NULL) ) { - fprintf (fs, "%s\n", dotqmailline); - emptydotqmail = 0; + if (olddotqmail != NULL) { + dotqmailline = strtok (olddotqmail, "\n"); + while (dotqmailline) { + if ( (*dotqmailline == '|') && + (strstr (dotqmailline, "/true delete") == NULL) && + (strstr (dotqmailline, "/autorespond ") == NULL) && + (strstr (dotqmailline, SPAM_COMMAND) == NULL) ) { + fprintf (fs, "%s\n", dotqmailline); + emptydotqmail = 0; + } + dotqmailline = strtok (NULL, "\n"); } - dotqmailline = strtok (NULL, "\n"); + free (olddotqmail); } - if (olddotqmail != NULL) free (olddotqmail); /* Decide on what to write to the new .qmail file after any old program * delivery lines are written. Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.49 retrieving revision 1.15.2.50 diff -u -d -r1.15.2.49 -r1.15.2.50 --- ChangeLog 31 Dec 2004 01:38:33 -0000 1.15.2.49 +++ ChangeLog 3 Jan 2005 20:31:09 -0000 1.15.2.50 @@ -12,6 +12,8 @@ and "Vacation" to "Send Vacation Auto-Repsonse". - template.c: Add macro for current language (##~) and document in html/README. [818883] + - user.c: Fix bug from 1.2.6 related to creating .qmail files when + one didn't already exist. 1.2.6 - released 24-Dec-04 |
From: Tom C. <tom...@us...> - 2004-12-31 01:38:54
|
Update of /cvsroot/qmailadmin/qmailadmin/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4291/html Modified Files: Tag: stable-1_2 README Log Message: Add macro for current language (##~) and document in html/README. [818883] Index: README =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/html/README,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -d -r1.2 -r1.2.2.1 --- README 2 Jan 2004 05:30:47 -0000 1.2 +++ README 31 Dec 2004 01:38:34 -0000 1.2.2.1 @@ -31,6 +31,11 @@ ------------------------------------------------------------------------- +##~ Current selected language (e.g., "en"). Could be useful in + selecting alternate graphics for alternate languages. + +------------------------------------------------------------------------- + ##A Send the user name currently being acted upon. (ActionUser) If postmaster was editing someone this would be someone. |
From: Tom C. <tom...@us...> - 2004-12-31 01:38:54
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4291 Modified Files: Tag: stable-1_2 ChangeLog template.c Log Message: Add macro for current language (##~) and document in html/README. [818883] Index: template.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/template.c,v retrieving revision 1.7.2.9 retrieving revision 1.7.2.10 diff -u -d -r1.7.2.9 -r1.7.2.10 --- template.c 31 Dec 2004 01:02:40 -0000 1.7.2.9 +++ template.c 31 Dec 2004 01:38:33 -0000 1.7.2.10 @@ -131,6 +131,10 @@ printh ("user=%C&dom=%C&time=%d&", Username, Domain, Mytime); break; + case '~': + printf ("%s", Lang); + break; + /* send the action user parameter */ case 'A': printh ("%H", ActionUser); Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.48 retrieving revision 1.15.2.49 diff -u -d -r1.15.2.48 -r1.15.2.49 --- ChangeLog 31 Dec 2004 01:29:31 -0000 1.15.2.48 +++ ChangeLog 31 Dec 2004 01:38:33 -0000 1.15.2.49 @@ -10,6 +10,8 @@ Thanks to PinkRoccade Public Sector for sponsoring this feature. - Modify User: For clarity, change "Deleted" to "All mail deleted" and "Vacation" to "Send Vacation Auto-Repsonse". + - template.c: Add macro for current language (##~) and document + in html/README. [818883] 1.2.6 - released 24-Dec-04 |
From: Tom C. <tom...@us...> - 2004-12-31 01:29:48
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2790 Modified Files: Tag: stable-1_2 ChangeLog Log Message: change some text on modify user page for clarity Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.47 retrieving revision 1.15.2.48 diff -u -d -r1.15.2.47 -r1.15.2.48 --- ChangeLog 31 Dec 2004 01:02:40 -0000 1.15.2.47 +++ ChangeLog 31 Dec 2004 01:29:31 -0000 1.15.2.48 @@ -8,6 +8,8 @@ email address and go directly to the modify or delete page, regardless of address type (mailbox, forward, list, etc.). Thanks to PinkRoccade Public Sector for sponsoring this feature. + - Modify User: For clarity, change "Deleted" to "All mail deleted" + and "Vacation" to "Send Vacation Auto-Repsonse". 1.2.6 - released 24-Dec-04 |
From: Tom C. <tom...@us...> - 2004-12-31 01:29:47
|
Update of /cvsroot/qmailadmin/qmailadmin/lang In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2790/lang Modified Files: Tag: stable-1_2 en Log Message: change some text on modify user page for clarity Index: en =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/lang/en,v retrieving revision 1.2.2.2 retrieving revision 1.2.2.3 diff -u -d -r1.2.2.2 -r1.2.2.3 --- en 17 Nov 2004 19:42:10 -0000 1.2.2.2 +++ en 31 Dec 2004 01:29:31 -0000 1.2.2.3 @@ -177,7 +177,7 @@ 209 Forward 210 Save a Copy 211 Forward To: -212 Vacation +212 Send Vacation Auto-Response 213 Vacation Subject: 214 Vacation Message: 215 Must supply forward address @@ -268,7 +268,7 @@ 300 Flag1 301 Flag2 302 Flag3 -303 Deleted +303 All mail deleted 304 Spam Detection? 305 Destination 306 forwards to |
From: Tom C. <tom...@us...> - 2004-12-31 01:02:52
|
Update of /cvsroot/qmailadmin/qmailadmin/images In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29919/images Added Files: Tag: stable-1_2 main.png Log Message: add quick links section to main menu --- NEW FILE: main.png --- (This appears to be a binary file; contents omitted.) |
From: Tom C. <tom...@us...> - 2004-12-31 01:02:52
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29919 Modified Files: Tag: stable-1_2 ChangeLog command.c qmailadmin.c qmailadmin.h template.c Log Message: add quick links section to main menu Index: qmailadmin.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/qmailadmin.c,v retrieving revision 1.6.2.4 retrieving revision 1.6.2.5 diff -u -d -r1.6.2.4 -r1.6.2.5 --- qmailadmin.c 20 Nov 2004 01:10:41 -0000 1.6.2.4 +++ qmailadmin.c 31 Dec 2004 01:02:40 -0000 1.6.2.5 @@ -36,11 +36,14 @@ #include <vauth.h> #include <vlimits.h> +#include "alias.h" #include "auth.h" +#include "autorespond.h" #include "cgi.h" #include "command.h" #include "config.h" #include "limits.h" +#include "mailinglist.h" #include "printh.h" #include "qmailadmin.h" #include "show.h" @@ -414,3 +417,65 @@ } closedir(mydir); } + +void quickAction (char *username, int action) +{ + /* This feature sponsored by PinkRoccade Public Sector, Sept 2004 */ + + struct stat fileinfo; + char dotqmailfn[MAX_BUFF]; + char *space, *ar, *ez; + char *aliasline; + + /* Note that all of the functions called from quickAction() assume + * that the username to modify is in a global called "ActionUser" + * It would be better to pass this information as a parameter, but + * that's how it was originally done. The code in command.c that + * calls quickAction() passes ActionUser as the username parameter + * in hopes that someday we'll remove the globals and pass parameters. + */ + + /* first check for alias/forward, autorepsonder (or even mailing list) */ + aliasline = valias_select (username, Domain); + if (aliasline != NULL) { + /* Autoresponder/Mailing List detection algorithm: + * We're looking for either '/autorespond ' or '/ezmlm-reject ' to + * appear in the first line, before a space appears + */ + space = strstr (aliasline, " "); + ar = strstr (aliasline, "/autorespond "); + ez = strstr (aliasline, "/ezmlm-reject "); + if (ar && space && (ar < space)) { + /* autorepsonder */ + if (action == ACTION_MODIFY) modautorespond(); + else if (action == ACTION_DELETE) delautorespond(); + } else if (ez && space && (ez < space)) { + /* mailing list (cdb-backend only) */ + if (action == ACTION_MODIFY) modmailinglist(); + else if (action == ACTION_DELETE) delmailinglist(); + } else { + /* it's just a forward/alias of some sort */ + if (action == ACTION_MODIFY) moddotqmail(); + else if (action == ACTION_DELETE) deldotqmail(); + } + } else if (vauth_getpw (username, Domain)) { + /* POP/IMAP account */ + if (action == ACTION_MODIFY) moduser(); + else if (action == ACTION_DELETE) deluser(); + } else { + /* check for mailing list on SQL backend (not in valias_select) */ + snprintf (dotqmailfn, sizeof(dotqmailfn), ".qmail-%s", username); + str_replace (dotqmailfn+7, '.', ':'); + if (stat (dotqmailfn, &fileinfo) == 0) { + /* mailing list (MySQL backend) */ + if (action == ACTION_MODIFY) modmailinglist(); + else if (action == ACTION_DELETE) delmailinglist(); + } else { + /* user does not exist */ + snprinth (StatusMessage, sizeof(StatusMessage), "%s (%H@%H)", + get_html_text("153"), username, Domain); + show_menu(Username, Domain, Mytime); + vclose(); + } + } +} Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.46 retrieving revision 1.15.2.47 diff -u -d -r1.15.2.46 -r1.15.2.47 --- ChangeLog 31 Dec 2004 00:58:02 -0000 1.15.2.46 +++ ChangeLog 31 Dec 2004 01:02:40 -0000 1.15.2.47 @@ -3,6 +3,12 @@ 1.2.7 - unreleased + Tom Collins + - Add Quick Links section to main menu. Admins can now enter an + email address and go directly to the modify or delete page, + regardless of address type (mailbox, forward, list, etc.). + Thanks to PinkRoccade Public Sector for sponsoring this feature. + 1.2.6 - released 24-Dec-04 Tom Collins Index: qmailadmin.h =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/qmailadmin.h,v retrieving revision 1.1.1.1.2.3 retrieving revision 1.1.1.1.2.4 diff -u -d -r1.1.1.1.2.3 -r1.1.1.1.2.4 --- qmailadmin.h 20 Nov 2004 01:10:41 -0000 1.1.1.1.2.3 +++ qmailadmin.h 31 Dec 2004 01:02:40 -0000 1.1.1.1.2.4 @@ -48,8 +48,12 @@ #define NUM_SQL_OPTIONS 6 +#define ACTION_MODIFY 1 +#define ACTION_DELETE 2 + void del_id_files( char *); void init_globals(); +void quickAction (char *username, int action); /* copied from maildirquota.c in vpopmail * it really needs to get into vpopmail.h somehow Index: template.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/template.c,v retrieving revision 1.7.2.8 retrieving revision 1.7.2.9 diff -u -d -r1.7.2.8 -r1.7.2.9 --- template.c 2 Dec 2004 00:07:43 -0000 1.7.2.8 +++ template.c 31 Dec 2004 01:02:40 -0000 1.7.2.9 @@ -467,7 +467,7 @@ /* display the main menu */ /* move this to a function... */ case 'v': - printh ("<font size=\"2\" color=\"#000000\"><b>%H</b></font><br>", + printh ("<font size=\"2\" color=\"#000000\"><b>%H</b></font><br><br>", Domain); printf ( "<font size=\"2\" color=\"#ff0000\"><b>%s</b></font><br>", @@ -540,9 +540,6 @@ if (AdminType == DOMAIN_ADMIN) { printf ("<br>"); - printf ( - "<font size=\"2\" color=\"#ff0000\"><b>%s</b></font><br>", - get_html_text("124")); if (MaxPopAccounts != 0) { printh ( Index: command.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/command.c,v retrieving revision 1.2.2.4 retrieving revision 1.2.2.5 diff -u -d -r1.2.2.4 -r1.2.2.5 --- command.c 20 Nov 2004 01:10:41 -0000 1.2.2.4 +++ command.c 31 Dec 2004 01:02:40 -0000 1.2.2.5 @@ -48,6 +48,30 @@ if (strcmp(TmpBuf2, "showmenu") == 0 ) { show_menu(Username, Domain, Mytime); + } else if (strcmp(TmpBuf2, "quick") == 0) { + /* This feature sponsored by PinkRoccade Public Sector, Sept 2004 */ + + char moddel[20]; + /* we use global ActionUser here because the functions that + * quickAction calls expect the username in that global. + */ + GetValue(TmpCGI, ActionUser, "modu=", sizeof(ActionUser)); + lowerit (ActionUser); /* convert username to lower case */ + GetValue(TmpCGI, moddel, "MODIFY=", sizeof(moddel)); + if (*moddel) { + quickAction (ActionUser, ACTION_MODIFY); + } else { + GetValue(TmpCGI, moddel, "DELETE=", sizeof(moddel)); + if (*moddel) { + quickAction (ActionUser, ACTION_DELETE); + } else { + /* malformed request -- missing fields */ + show_menu(Username, Domain, Mytime); + vclose(); + exit(0); + } + } + } else if (strcmp(TmpBuf2, "showusers") == 0) { GetValue(TmpCGI, Pagenumber, "page=", sizeof(Pagenumber)); GetValue(TmpCGI, SearchUser, "searchuser=", sizeof(SearchUser)); |
From: Tom C. <tom...@us...> - 2004-12-31 01:02:51
|
Update of /cvsroot/qmailadmin/qmailadmin/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29919/html Modified Files: Tag: stable-1_2 main_menu.html Log Message: add quick links section to main menu Index: main_menu.html =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/html/main_menu.html,v retrieving revision 1.1.1.1.2.1 retrieving revision 1.1.1.1.2.2 diff -u -d -r1.1.1.1.2.1 -r1.1.1.1.2.2 --- main_menu.html 14 Nov 2004 18:05:55 -0000 1.1.1.1.2.1 +++ main_menu.html 31 Dec 2004 01:02:41 -0000 1.1.1.1.2.2 @@ -7,29 +7,29 @@ <body bgcolor="#ffffff"> <center> <h2>##S</h2> - <table height="464" width="405" cellspacing="0" cellpadding="0" border="0"> + <table height="464" width="405" cellspacing="0" cellpadding="0" border="0" background="##Z/main.png"> <tr> - <td> - <table height="463" width="199" cellspacing="0" cellpadding="0" border="0" background="##Z/main1.png"> - <tr> - <td><img src="##Z/pixel.png" height="1" width="1" border="0"></td> - </tr> - </table> + <td width="199" height="250"><img src="##Z/pixel.png" height="1" width="1" border="0"></td> + <td width="206" height="325" rowspan="2" align="left"> + ##v </td> - <td> - <table height="463" width="206" cellspacing="0" cellpadding="0" border="0" background="##Z/main2.png"> - <tr> - <td align="left"> - ##v - <br> - <br> - <br> - <br><a href="##C/com/showmenu?##&"><font size="2" color="#000000"><b>##X217</b></font></a> + </tr> + <tr VALIGN=TOP> + <td ALIGN=CENTER height="75"> +<a href="##C/com/showmenu?##&"><font size="2" color="#000000"><b>##X217</b></font></a> <br><span style="font-weight: bold; font-size: medium;">##x</span> - <br> - </td> - </tr> - </table> + </td> + </tr> + <tr valign="top"> + <td align="center" colspan="2" height="114"> + ##ta + <FORM METHOD="POST" ACTION="##C/com/quick?##&"> + <BR> + <font size="2" color="#ff0000"><b>##X124</b></font><br> + <INPUT TYPE="TEXT" NAME="modu" WIDTH="32"><small>@##D</small><BR> + <INPUT TYPE="SUBMIT" VALUE="##X071" NAME="MODIFY"> <INPUT TYPE="SUBMIT" VALUE="##X072" NAME="DELETE"> + </FORM> + ##tt </td> </tr> </table> |
From: Tom C. <tom...@us...> - 2004-12-31 00:58:13
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28792 Modified Files: Tag: stable-1_2 ChangeLog configure configure.in Log Message: start of 1.2.7 release Index: configure =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/configure,v retrieving revision 1.14.2.10 retrieving revision 1.14.2.11 diff -u -d -r1.14.2.10 -r1.14.2.11 --- configure 7 Dec 2004 00:29:20 -0000 1.14.2.10 +++ configure 31 Dec 2004 00:58:02 -0000 1.14.2.11 @@ -1647,7 +1647,7 @@ QA_PACKAGE="qmailadmin" -QA_VERSION="1.2.6" +QA_VERSION="1.2.7" cat >>confdefs.h <<_ACEOF Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.45 retrieving revision 1.15.2.46 diff -u -d -r1.15.2.45 -r1.15.2.46 --- ChangeLog 24 Dec 2004 16:33:13 -0000 1.15.2.45 +++ ChangeLog 31 Dec 2004 00:58:02 -0000 1.15.2.46 @@ -1,6 +1,8 @@ Numbers in square brackets ([]) indicate tracker item on SourceForge with patch or information related to the entry. +1.2.7 - unreleased + 1.2.6 - released 24-Dec-04 Tom Collins Index: configure.in =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/configure.in,v retrieving revision 1.15.2.10 retrieving revision 1.15.2.11 diff -u -d -r1.15.2.10 -r1.15.2.11 --- configure.in 7 Dec 2004 00:29:21 -0000 1.15.2.10 +++ configure.in 31 Dec 2004 00:58:03 -0000 1.15.2.11 @@ -6,7 +6,7 @@ AC_CANONICAL_HOST QA_PACKAGE="qmailadmin" -QA_VERSION="1.2.6" +QA_VERSION="1.2.7" AC_DEFINE_UNQUOTED(QA_PACKAGE,"$QA_PACKAGE","") AC_DEFINE_UNQUOTED(QA_VERSION,"$QA_VERSION","") |
From: Stewart W. <sw...@ca...> - 2004-12-29 23:16:09
|
FC3 apache netqmail-1.05 courier-imap-2.2.2.20040207 autorespond-2.0.4 vpopmail-5.4.1 qmailadmin-1.2.1 Greetings, This is the only list except the developers list. Hope I'm not causing any one stress. http://127.0.0.1/cgi-bin/qmailadmin User Account: postmaster Domain Name : test.com password : password Ran across some qmailadmin tidbits on google but nothing seems to work. I am unable to login as postmaster to test.com or junk.net after installing from the instructions at http://shupp.org/toaster Error message returned after the login button is pressed. Error. Domain test.com was not found in the assign file vadddomain works [root@ns1 users]# cat /var/qmail/users/assign +test.com-:test.com:89:89:/home/vpopmail/domains/test.com:-:: +junk.net-:junk.net:89:89:/home/vpopmail/domains/junk.net:-:: . I am assuming the cdb file is ok and permissions are properly set. /home/vpopmail/domains/test.com and junk.net are created. [root@ns1 users]# ls -l /var/qmail/users -rw-r--r-- 1 root root 126 Dec 29 14:50 assign -rw------- 1 root root 0 Dec 29 07:54 assign.3837 -rw------- 1 root root 0 Dec 29 14:50 assign.lock -rw-r--r-- 1 root root 2239 Dec 29 14:50 cdb /var/www/cgi-bin/qmailadmin have the suid and sgid bits set.. [root@ns1 users]# ls -l /var/www/cgi-bin total 128 -rwsr-sr-x 1 vpopmail vchkpw 118968 Dec 29 06:06 qmailadmin [root@ns1 cgi-bin]# Appreciate any help Thanks ====== sw...@ca... |
From: Tom C. <tom...@us...> - 2004-12-24 16:33:33
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32610 Modified Files: Tag: stable-1_2 ChangeLog Log Message: set release date of 1.2.6 Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.44 retrieving revision 1.15.2.45 diff -u -d -r1.15.2.44 -r1.15.2.45 --- ChangeLog 23 Dec 2004 18:40:54 -0000 1.15.2.44 +++ ChangeLog 24 Dec 2004 16:33:13 -0000 1.15.2.45 @@ -1,7 +1,7 @@ Numbers in square brackets ([]) indicate tracker item on SourceForge with patch or information related to the entry. -1.2.6 - unreleased +1.2.6 - released 24-Dec-04 Tom Collins - user.c: fix bug in handling .qmail files with blank lines. |
From: Tom C. <tom...@us...> - 2004-12-23 18:41:03
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7009 Modified Files: Tag: stable-1_2 ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.43 retrieving revision 1.15.2.44 diff -u -d -r1.15.2.43 -r1.15.2.44 --- ChangeLog 23 Dec 2004 18:39:48 -0000 1.15.2.43 +++ ChangeLog 23 Dec 2004 18:40:54 -0000 1.15.2.44 @@ -6,7 +6,8 @@ Tom Collins - user.c: fix bug in handling .qmail files with blank lines. - user.c: new catchall option, forward unknown users to remote - domain (e.g., x -> x...@do..., y -> y...@do..., etc.) [910410] + domain (e.g., x -> x...@do..., y -> y...@do..., etc.) To use, + enter "@<domain>" for remote address catchall. [910410] - util.c: fix check_email_addr() (previously accepted invalid punctuation in domain part of address). - user.c: modusergo() function that writes out user's .qmail file |
From: Tom C. <tom...@us...> - 2004-12-23 18:39:58
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6702 Modified Files: Tag: stable-1_2 ChangeLog user.c Log Message: fix modusergo() and make vacation a checkbox -- see ChangeLog for details Index: user.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/user.c,v retrieving revision 1.11.2.8 retrieving revision 1.11.2.9 diff -u -d -r1.11.2.8 -r1.11.2.9 --- user.c 17 Dec 2004 05:50:56 -0000 1.11.2.8 +++ user.c 23 Dec 2004 18:39:48 -0000 1.11.2.9 @@ -727,13 +727,51 @@ return 0; } +int makevacation (FILE *d, char *dir) +{ + char subject[80]; + FILE *f; + char fn[156]; + + GetValue(TmpCGI, subject, "vsubject=", sizeof(subject)); + + /* if no subject, error */ + if ( (subject == NULL) || (*subject == '\0') ) { + snprintf (StatusMessage, sizeof(StatusMessage), "%s\n", get_html_text("216")); + return 1; + } + + /* make the vacation directory */ + snprintf (fn, sizeof(fn), "%s/vacation", dir); + mkdir (fn, 0750); + + fprintf (d, "| %s/autorespond 86400 3 %s/vacation/message %s/vacation\n", + AUTORESPOND_PATH, dir, dir ); + + /* set up the message file */ + snprintf(fn, sizeof(fn), "%s/vacation/message", dir); + GetValue(TmpCGI, Message, "vmessage=", sizeof(Message)); + + if ( (f = fopen(fn, "w")) == NULL ) { + snprintf (StatusMessage, sizeof(StatusMessage), "%s %s\n", get_html_text("150"), fn); + return 1; + } + fprintf(f, "From: %s@%s\n", ActionUser, Domain); + fprintf(f, "Subject: %s\n\n%s", subject, Message); + fclose(f); + + return 0; +} + void modusergo() { char *tmpstr; int ret_code; struct vqpasswd *vpw=NULL; static char box[500]; + char cforward[50]; static char NewBuf[156]; + char dotqmailfn[156]; #ifdef MODIFY_QUOTA char *quotaptr; char qconvert[11]; @@ -741,6 +779,18 @@ int count; FILE *fs; int spam_check = 0; + int vacation = 0; + int saveacopy = 0; + int emptydotqmail; + char *olddotqmail = NULL; + char *dotqmailline; + struct stat sb; + int err; + + const char *flagfields[] = { "zeroflag=", "oneflag=", "twoflag=", "threeflag=" }; + const gid_t gidflags[] = { V_USER0, V_USER1, V_USER2, V_USER3 }; + gid_t orig_gid; + int i; if (!( AdminType==DOMAIN_ADMIN || (AdminType==USER_ADMIN && strcmp(ActionUser,Username)==0))){ @@ -800,214 +850,159 @@ #endif GetValue(TmpCGI,Gecos, "gecos=", sizeof(Gecos)); - if ( strlen( Gecos ) != 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gecos = Gecos; - vauth_setpw(vpw, Domain); - } + + vpw = vauth_getpw (ActionUser, Domain); /* check for the V_USERx flags and set accordingly */ - /* James Raftery <ja...@no...>, 12 Dec. 2002 */ - GetValue(TmpCGI,box, "zeroflag=", sizeof(box)); - if ( strcmp(box,"on") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid |= V_USER0; - vauth_setpw(vpw, Domain); - } else if ( strcmp(box,"off") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid &= ~V_USER0; - vauth_setpw(vpw, Domain); - } - GetValue(TmpCGI,box, "oneflag=", sizeof(box)); - if ( strcmp(box,"on") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid |= V_USER1; - vauth_setpw(vpw, Domain); - } else if ( strcmp(box,"off") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid &= ~V_USER1; - vauth_setpw(vpw, Domain); - } - GetValue(TmpCGI,box, "twoflag=", sizeof(box)); - if ( strcmp(box,"on") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid |= V_USER2; - vauth_setpw(vpw, Domain); - } else if ( strcmp(box,"off") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid &= ~V_USER2; - vauth_setpw(vpw, Domain); - } - GetValue(TmpCGI,box, "threeflag=", sizeof(box)); - if ( strcmp(box,"on") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid |= V_USER3; - vauth_setpw(vpw, Domain); - } else if ( strcmp(box,"off") == 0 ) { - vpw = vauth_getpw(ActionUser, Domain); - vpw->pw_gid &= ~V_USER3; - vauth_setpw(vpw, Domain); + /* new code by Tom Collins <to...@to...>, Dec 2004 */ + /* replaces code by James Raftery <ja...@no...>, 12 Dec. 2002 */ + + orig_gid = vpw->pw_gid; + for (i = 0; i < 4; i++) { + GetValue (TmpCGI, box, (char *) flagfields[i], sizeof (box)); + if (strcmp (box, "on") == 0) + vpw->pw_gid |= gidflags[i]; + else if (strcmp (box, "off") == 0) + vpw->pw_gid &= ~gidflags[i]; } + /* we're trying to cut down on unnecessary updates to the password entry + * we accomplish this by only updating if the pw_gid or gecos changed + */ + + if ((*Gecos != '\0') && (strcmp (Gecos, vpw->pw_gecos) != 0)) { + vpw->pw_gecos = Gecos; + vauth_setpw(vpw, Domain); + } else if (vpw->pw_gid != orig_gid) vauth_setpw (vpw, Domain); + /* get value of the spam filter box */ - GetValue(TmpCGI,box, "spamcheck=", sizeof(box)); - if ( strcmp(box,"on") == 0 ) spam_check = 1; + GetValue(TmpCGI, box, "spamcheck=", sizeof(box)); + if ( strcmp(box, "on") == 0 ) spam_check = 1; + + /* get the value of the vacation checkbox */ + GetValue(TmpCGI, box, "vacation=", sizeof(box)); + if ( strcmp(box, "on") == 0 ) vacation = 1; + + /* if they want to save a copy */ + GetValue(TmpCGI, box, "fsaved=", sizeof(box)); + if ( strcmp(box,"on") == 0 ) saveacopy = 1; /* get the value of the cforward radio button */ - GetValue(TmpCGI,box, "cforward=", sizeof(box)); + GetValue(TmpCGI, cforward, "cforward=", sizeof(cforward)); + if ( strcmp(cforward, "vacation") == 0 ) vacation = 1; - /* if they want to disable everything */ - if ( strcmp(box,"disable") == 0 ) { - - /* unlink the .qmail file */ - if ( vpw == NULL ) vpw = vauth_getpw(ActionUser, Domain); - snprintf(NewBuf,sizeof(NewBuf),"%s/.qmail", vpw->pw_dir); - unlink(NewBuf); - - /* if the mail is to be checked for spam, rewrite the file with command */ - if( spam_check == 1 ) { - fs = fopen(NewBuf, "w+"); - fprintf(fs, "%s\n", SPAM_COMMAND); - fclose(fs); + /* open old .qmail file if it exists and load it into memory */ + snprintf (dotqmailfn, sizeof(dotqmailfn), "%s/.qmail", vpw->pw_dir); + err = stat (dotqmailfn, &sb); + if (err == 0) { + olddotqmail = malloc (sb.st_size); + if (olddotqmail != NULL) { + fs = fopen (dotqmailfn, "r"); + if (fs != NULL) { + fread (olddotqmail, sb.st_size, 1, fs); + fclose (fs); + } } + } + if (olddotqmail == NULL) { + olddotqmail = ""; + } + + fs = fopen (dotqmailfn, "w"); + + /* Scan through old .qmail and write out any unrecognized program delivery + * lines to the new .qmail file. + */ + emptydotqmail = 1; + dotqmailline = strtok (olddotqmail, "\n"); + while (dotqmailline) { + if ( (*dotqmailline == '|') && + (strstr (dotqmailline, "/true delete") == NULL) && + (strstr (dotqmailline, "/autorespond ") == NULL) && + (strstr (dotqmailline, SPAM_COMMAND) == NULL) ) { + fprintf (fs, "%s\n", dotqmailline); + emptydotqmail = 0; + } + dotqmailline = strtok (NULL, "\n"); + } + if (olddotqmail != NULL) free (olddotqmail); - /* delete any vacation directory */ - snprintf(NewBuf,sizeof(NewBuf),"%s/vacation", vpw->pw_dir); - vdelfiles(NewBuf); + /* Decide on what to write to the new .qmail file after any old program + * delivery lines are written. + */ + err = 0; + + /* note that we consider a .qmail file with just Maildir delivery to be empty + * since it can be removed. + */ + /* if they want to forward */ - } else if (strcmp(box,"forward") == 0 ) { + if (strcmp (cforward, "forward") == 0 ) { /* get the value of the foward */ - GetValue(TmpCGI,box, "nforward=", sizeof(box)); + GetValue(TmpCGI, box, "nforward=", sizeof(box)); /* If nothing was entered, error */ if ( box[0] == 0 ) { snprintf (StatusMessage, sizeof(StatusMessage), "%s\n", get_html_text("215")); - moduser(); - vclose(); - exit(0); - - /* check it for a valid email address - } else if ( check_email_addr( box ) == 1 ) { - snprintf (StatusMessage, sizeof(StatusMessage), "%s\n", get_html_text("148")); - moduser(); - */ - } - - /* everything looks good, open the file */ - if ( vpw == NULL ) { - vpw = vauth_getpw(ActionUser, Domain); - } - snprintf(NewBuf,sizeof(NewBuf),"%s/.qmail", vpw->pw_dir); - - fs = fopen(NewBuf,"w+"); - tmpstr = strtok(box," ,;\n"); + err = 1; + } else { - /* tmpstr points to first non-token */ + tmpstr = strtok(box," ,;\n"); - count=0; - while( tmpstr != NULL && count < MAX_FORWARD_PER_USER) { - if ((*tmpstr != '|') && (*tmpstr != '/')) { - fprintf(fs,"&%s\n", tmpstr); - ++count; - } - tmpstr = strtok(NULL," ,;\n"); - } + /* tmpstr points to first non-token */ - /* if they want to save a copy */ - GetValue(TmpCGI,box, "fsaved=", sizeof(box)); - if ( strcmp(box,"on") == 0 ) { - if( spam_check == 1 ) { - /* if spam check is enabled, that will save the message*/ - fprintf(fs, "%s\n", SPAM_COMMAND); - } else { - fprintf(fs,"%s/" MAILDIR "/\n", vpw->pw_dir); + count=0; + while( tmpstr != NULL && count < MAX_FORWARD_PER_USER) { + if ((*tmpstr != '|') && (*tmpstr != '/')) { + fprintf(fs, "&%s\n", tmpstr); + emptydotqmail = 0; + ++count; + } + tmpstr = strtok(NULL," ,;\n"); } - } - fclose(fs); - /* they want vacation */ - } else if (strcmp(box,"vacation") == 0 ) { - - /* get the subject */ - GetValue(TmpCGI,box, "vsubject=", sizeof(box)); - - /* if no subject, error */ - if ( box[0] == 0 ) { - snprintf (StatusMessage, sizeof(StatusMessage), "%s\n", get_html_text("216")); - moduser(); - vclose(); - exit(0); } - - /* make the vacation directory */ - if ( vpw == NULL ) vpw = vauth_getpw(ActionUser, Domain); - snprintf(NewBuf,sizeof(NewBuf),"%s/vacation", vpw->pw_dir); - mkdir(NewBuf, 0750); - - /* open the .qmail file */ - snprintf(NewBuf,sizeof(NewBuf),"%s/.qmail", vpw->pw_dir); - fs = fopen(NewBuf,"w+"); - - /* save a copy for the user (if checking for spam, it will keep a copy)*/ - if(spam_check==1) - fprintf(fs, "%s\n", SPAM_COMMAND); - else - fprintf(fs,"%s/" MAILDIR "/\n", vpw->pw_dir); - - fprintf(fs, "| %s/autorespond 86400 3 %s/vacation/message %s/vacation\n", - AUTORESPOND_PATH, vpw->pw_dir, vpw->pw_dir ); - - fclose(fs); - - /* set up the message file */ - snprintf(NewBuf,sizeof(NewBuf),"%s/vacation/message", vpw->pw_dir); - GetValue(TmpCGI,Message, "vmessage=",sizeof(Message)); + } - if ( (fs = fopen(NewBuf, "w")) == NULL ) ack("150", NewBuf); - fprintf(fs, "From: %s@%s\n", ActionUser,Domain); - fprintf(fs, "Subject: %s\n\n", box); - fprintf(fs, "%s", Message); - fclose(fs); + if ( (strcmp (cforward, "forward") != 0) || saveacopy ) { - /* save the forward for vacation too */ - GetValue(TmpCGI,box,"nforward=", sizeof(box)); - snprintf(NewBuf, sizeof(NewBuf), "%s/.qmail", vpw->pw_dir); - fs = fopen(NewBuf, "a+"); - tmpstr = strtok(box, " ,;\n"); - count = 0; - while( tmpstr != NULL && count < 2 ) { - fprintf(fs, "&%s\n", tmpstr); - tmpstr = strtok(NULL, " ,;\n"); - ++count; + if (strcmp (cforward, "blackhole") == 0) { + fprintf (fs, "# delete\n"); + emptydotqmail = 0; + } else if (spam_check == 1) { + fprintf (fs, "%s\n", SPAM_COMMAND); + emptydotqmail = 0; + } else { + fprintf (fs, "%s/" MAILDIR "/\n", vpw->pw_dir); + /* this isn't enough to consider the .qmail file non-empty */ } - fclose(fs); - - /* they want to blackhole */ - /* James Raftery <ja...@no...>, 21 May 2003 */ - } else if (strcmp(box,"blackhole") == 0 ) { - - /* open the .qmail file */ - snprintf(NewBuf,sizeof(NewBuf),"%s/.qmail", vpw->pw_dir); - fs = fopen(NewBuf,"w"); - - /* we use '# delete' since comments are ignored in vdelivermail, - * but qmailadmin looks for ' delete' to know that it's a - * blackhole account. */ - fprintf(fs, "# delete\n"); - - fclose(fs); + } + if (vacation) { + err = makevacation (fs, vpw->pw_dir); + emptydotqmail = 0; } else { - /* is this an error conditition? none of radios selected? */ - printf("nothing\n"); + /* delete old vacation directory */ + snprintf (NewBuf, sizeof(NewBuf), "%s/vacation", vpw->pw_dir); + vdelfiles (NewBuf); } + fclose (fs); + if (emptydotqmail) unlink (dotqmailfn); + + if (err) { + moduser(); + vclose(); + exit(0); + } + call_hooks(HOOK_MODUSER, ActionUser, Domain, Password1, Gecos); moduser(); } + /* display ##i0 - ##i9 macros */ void parse_users_dotqmail (char newchar) { @@ -1049,6 +1044,7 @@ case '\0': /* blank line, ignore */ break; + case '.': case '/': /* maildir delivery */ /* see if it's the user's maildir */ if (1) @@ -1090,32 +1086,29 @@ } /* if other flags were set, in addition to blackhole, clear blackhole flag */ - if (dotqmail_flags & ~DOTQMAIL_BLACKHOLE) + if ( dotqmail_flags & (DOTQMAIL_FORWARD | DOTQMAIL_SAVECOPY) ) dotqmail_flags &= ~DOTQMAIL_BLACKHOLE; /* if no flags were set (.qmail file without delivery), it's a blackhole */ if (dotqmail_flags == 0) dotqmail_flags = DOTQMAIL_BLACKHOLE; - /* if unrecognized programs were all that was set, consider it standard */ - if (dotqmail_flags == DOTQMAIL_OTHERPGM) - dotqmail_flags = DOTQMAIL_STANDARD; - /* clear OTHERPGM flag, as it tells us nothing at this point */ dotqmail_flags &= ~DOTQMAIL_OTHERPGM; - /* if forward and save-a-copy are set, it will actually set the spam flag? */ + /* if forward and save-a-copy are set, it will actually set the spam flag */ if ((dotqmail_flags & DOTQMAIL_FORWARD) && (dotqmail_flags & DOTQMAIL_SPAMCHECK)) dotqmail_flags |= DOTQMAIL_SAVECOPY; - /* if vacation is set, it will set save a copy as well, so we clear it */ - if (dotqmail_flags & DOTQMAIL_VACATION) + /* if forward is not set, clear save-a-copy */ + if (! (dotqmail_flags & DOTQMAIL_FORWARD)) dotqmail_flags &= ~DOTQMAIL_SAVECOPY; + } - /* if only spam detection was set, it's standard delivery */ + /* if deleted and forward aren't set, */ /* default to standard delivery */ - if (! (dotqmail_flags & ~DOTQMAIL_SPAMCHECK)) + if (! (dotqmail_flags & (DOTQMAIL_BLACKHOLE | DOTQMAIL_FORWARD)) ) dotqmail_flags |= DOTQMAIL_STANDARD; } Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.42 retrieving revision 1.15.2.43 diff -u -d -r1.15.2.42 -r1.15.2.43 --- ChangeLog 23 Dec 2004 16:58:07 -0000 1.15.2.42 +++ ChangeLog 23 Dec 2004 18:39:48 -0000 1.15.2.43 @@ -9,6 +9,10 @@ domain (e.g., x -> x...@do..., y -> y...@do..., etc.) [910410] - util.c: fix check_email_addr() (previously accepted invalid punctuation in domain part of address). + - user.c: modusergo() function that writes out user's .qmail file + now keeps unrecognized program delivery lines. [994319] + - Change 'Vacation' option to checkbox on 'Modify User' page. Can + now have vacation response with forward (and delete). [800254] 1.2.5 - released 1-Dec-04 @@ -17,7 +21,7 @@ - When adding a mailing list, automatically subscribe the list owner and make them a moderator/remote admin. [892489] - user.c: deliver mail to Maildir before sending vacation message - in order to prevent autorespond from losing messages. + in order to prevent autorespond from losing messages. [777612] - Move .qmail parsing code from template.c to user.c. Rewrite for more flexibility and to allow new format for vacation. - configure.in: Compile with all warnings on. |
From: Tom C. <tom...@us...> - 2004-12-23 18:39:57
|
Update of /cvsroot/qmailadmin/qmailadmin/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6702/html Modified Files: Tag: stable-1_2 mod_user.html Log Message: fix modusergo() and make vacation a checkbox -- see ChangeLog for details Index: mod_user.html =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/html/mod_user.html,v retrieving revision 1.1.1.1.2.3 retrieving revision 1.1.1.1.2.4 diff -u -d -r1.1.1.1.2.3 -r1.1.1.1.2.4 --- mod_user.html 15 Nov 2004 19:23:16 -0000 1.1.1.1.2.3 +++ mod_user.html 23 Dec 2004 18:39:48 -0000 1.1.1.1.2.4 @@ -18,40 +18,24 @@ { document.forms[0].nforward.disabled=true; document.forms[0].fsaved.disabled=true; - document.forms[0].vsubject.disabled=true; - document.forms[0].vmessage.disabled=true; ##ts document.forms[0].spamcheck.disabled=false; ##tt } else if (txt=="forward") { document.forms[0].nforward.disabled=false; document.forms[0].fsaved.disabled=false; - document.forms[0].vsubject.disabled=true; - document.forms[0].vmessage.disabled=true; -##ts document.forms[0].spamcheck.disabled=false; ##tt - } - else if (txt=="vacation") - { - document.forms[0].nforward.disabled=true; - document.forms[0].fsaved.disabled=true; - document.forms[0].vsubject.disabled=false; - document.forms[0].vmessage.disabled=false; ##ts document.forms[0].spamcheck.disabled=false; ##tt } else if (txt=="blackhole") { document.forms[0].nforward.disabled=true; document.forms[0].fsaved.disabled=true; - document.forms[0].vsubject.disabled=true; - document.forms[0].vmessage.disabled=true; ##ts document.forms[0].spamcheck.disabled=true; ##tt } else { document.forms[0].nforward.disabled=false; document.forms[0].fsaved.disabled=false; - document.forms[0].vsubject.disabled=false; - document.forms[0].vmessage.disabled=false; ##ts document.forms[0].spamcheck.disabled=false; ##tt } } @@ -125,16 +109,12 @@ <input type="radio" name="cforward" onClick="document.forms[0].nforward.disabled=true; document.forms[0].fsaved.disabled=true; -document.forms[0].vsubject.disabled=true; -document.forms[0].vmessage.disabled=true; ##ts document.forms[0].spamcheck.disabled=false; ##tt" value="disable" ##i0> ##X205 <HR> <input type="radio" name="cforward" onClick="document.forms[0].nforward.disabled=true; document.forms[0].fsaved.disabled=true; -document.forms[0].vsubject.disabled=true; -document.forms[0].vmessage.disabled=true; ##ts document.forms[0].spamcheck.disabled=true; ##tt" value="blackhole" ##i8> ##X303 <HR> @@ -143,28 +123,21 @@ document.forms[0].fsaved.disabled=false; document.forms[0].nforward.select() document.forms[0].nforward.focus() -document.forms[0].vsubject.disabled=true; -document.forms[0].vmessage.disabled=true; ##ts document.forms[0].spamcheck.disabled=false; ##tt" value="forward" ##i1> ##X211 <input type="text" size="35" name="nforward" value="##i2"><BR> <input type="checkbox" name="fsaved" ##i3> ##X210 -<HR> - <input type="radio" name="cforward" -onClick="document.forms[0].vsubject.disabled=false; -document.forms[0].vmessage.disabled=false; -document.forms[0].vsubject.select() -document.forms[0].vsubject.focus() -document.forms[0].fsaved.disabled=true; -document.forms[0].nforward.disabled=true; -##ts document.forms[0].spamcheck.disabled=false; ##tt" -value="vacation" ##i4> ##X212<BR> - ##X213 <input type="text" name="vsubject" size="50" value="##i5"> -<BR>##X214 <BR> -<textarea name="vmessage" rows="10" cols="60">##i6</textarea> </td> </tr> </table><HR> + <input type="checkbox" name="vacation" +onClick="document.forms[0].vsubject.select() +document.forms[0].vsubject.focus()" +value="on" ##i4> ##X212<BR> + ##X213 <input type="text" name="vsubject" size="50" value="##i5"> +<BR>##X214 <BR> +<textarea name="vmessage" rows="10" cols="60">##i6</textarea> +<HR> <table cellpadding="1" cellspacing="1" border="0"> ##ts <tr> |
From: Tom C. <tom...@us...> - 2004-12-23 16:58:16
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16650 Modified Files: Tag: stable-1_2 ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.41 retrieving revision 1.15.2.42 diff -u -d -r1.15.2.41 -r1.15.2.42 --- ChangeLog 17 Dec 2004 17:45:37 -0000 1.15.2.41 +++ ChangeLog 23 Dec 2004 16:58:07 -0000 1.15.2.42 @@ -7,7 +7,7 @@ - user.c: fix bug in handling .qmail files with blank lines. - user.c: new catchall option, forward unknown users to remote domain (e.g., x -> x...@do..., y -> y...@do..., etc.) [910410] - - util.c: fix check_email_addr() (used to accept invalid + - util.c: fix check_email_addr() (previously accepted invalid punctuation in domain part of address). 1.2.5 - released 1-Dec-04 |
From: Tom C. <tom...@us...> - 2004-12-17 17:46:04
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30458 Modified Files: Tag: stable-1_2 ChangeLog util.c Log Message: fix check_email_addr() (used to accept invalid punctuation in domain part of address). Index: util.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/util.c,v retrieving revision 1.4.2.3 retrieving revision 1.4.2.4 diff -u -d -r1.4.2.3 -r1.4.2.4 --- util.c 20 Nov 2004 01:10:41 -0000 1.4.2.3 +++ util.c 17 Dec 2004 17:45:38 -0000 1.4.2.4 @@ -158,37 +158,39 @@ printf ("%s = %d<BR>\n", get_html_text("080"), CurMailingLists); } -int check_email_addr( addr ) - char *addr; +/* check_email_addr( char *addr ) + * + * Make sure 'addr' is a valid email address. Returns 1 if it's bad, + * 0 if it's good. + */ +int check_email_addr( char *addr ) { char *taddr = addr; + char *atpos = NULL; + char *dotpos = NULL; - - if(strlen(taddr)<0) return(1); - for(taddr=addr;*taddr!=0;++taddr) { - if(!isalnum(*taddr) && !ispunct(*taddr)) { - return(1); - } - } - - /* force to lower */ - lowerit(addr); - - for(taddr=addr;*taddr!='@'&&*taddr!=0;++taddr) { - if ( isspace(*taddr) ) return(1); - if(ispunct(*taddr) && (strchr (".-+=_&", *taddr) == NULL)){ - return(1); + for(taddr = addr; *taddr != '\0'; ++taddr) { + if (*taddr == '@') { + if (atpos != NULL) return 1; /* double @ */ + atpos = taddr; + } else if(!isalnum(*taddr) && (strchr (".-+=_&", *taddr) == NULL)) { + return 1; } } /* if just a user name with no @domain.com then bad */ - if (*taddr==0) return(1); + if (atpos == NULL) return 1; /* Look for a sub domain */ - for(;*taddr!='.'&&*taddr!=0;++taddr); + dotpos = strchr (atpos, '.'); - if (*taddr==0) return(1); - return(0); + /* no '.' in the domain part */ + if (dotpos == NULL) return 1; + + /* once we know it's good, convert it to lowercase */ + lowerit(addr); + + return 0; } int fixup_local_name( addr ) Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.40 retrieving revision 1.15.2.41 diff -u -d -r1.15.2.40 -r1.15.2.41 --- ChangeLog 17 Dec 2004 05:50:56 -0000 1.15.2.40 +++ ChangeLog 17 Dec 2004 17:45:37 -0000 1.15.2.41 @@ -7,6 +7,8 @@ - user.c: fix bug in handling .qmail files with blank lines. - user.c: new catchall option, forward unknown users to remote domain (e.g., x -> x...@do..., y -> y...@do..., etc.) [910410] + - util.c: fix check_email_addr() (used to accept invalid + punctuation in domain part of address). 1.2.5 - released 1-Dec-04 |
From: Tom C. <tom...@us...> - 2004-12-17 05:51:08
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16401 Modified Files: Tag: stable-1_2 ChangeLog user.c Log Message: new catchall option, forward unknown users to remote domain. [910410] Index: user.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/user.c,v retrieving revision 1.11.2.7 retrieving revision 1.11.2.8 diff -u -d -r1.11.2.7 -r1.11.2.8 --- user.c 7 Dec 2004 00:34:21 -0000 1.11.2.7 +++ user.c 17 Dec 2004 05:50:56 -0000 1.11.2.8 @@ -652,6 +652,8 @@ void setremotecatchallnow() { + char *fwdaddr; + GetValue(TmpCGI,Newu, "newu=", sizeof(Newu)); if (check_email_addr(Newu) ) { @@ -659,7 +661,17 @@ setremotecatchall(); exit(0); } - set_qmaildefault (Newu); + if (*Newu == '@') { + /* forward all mail to external domain */ + fwdaddr = malloc (strlen(Newu) + 4 + 1); + if (fwdaddr != NULL) { + sprintf (fwdaddr, "$EXT%s", Newu); + set_qmaildefault (fwdaddr); + free (fwdaddr); + } + } else { + set_qmaildefault (Newu); + } } void bounceall() @@ -695,9 +707,13 @@ } else if ( strstr(TmpBuf, "@") != NULL ) { i=strlen(TmpBuf); - for(;TmpBuf[i]!=' ';--i); - printh ("<b>%s %H</b>", get_html_text("062"), &TmpBuf[i]); - + for(;TmpBuf[i-1]!=' ';--i); + if (strncmp (&TmpBuf[i], "$EXT@", 5) == 0) { + /* forward to an entire domain */ + printh ("<b>%s <I>user</I>%H</b>", get_html_text("062"), &TmpBuf[i+4]); + } else { + printh ("<b>%s %H</b>", get_html_text("062"), &TmpBuf[i]); + } } else { i = strlen(TmpBuf) - 1; for(;TmpBuf[i]!='/';--i); Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.39 retrieving revision 1.15.2.40 diff -u -d -r1.15.2.39 -r1.15.2.40 --- ChangeLog 7 Dec 2004 00:34:21 -0000 1.15.2.39 +++ ChangeLog 17 Dec 2004 05:50:56 -0000 1.15.2.40 @@ -5,6 +5,8 @@ Tom Collins - user.c: fix bug in handling .qmail files with blank lines. + - user.c: new catchall option, forward unknown users to remote + domain (e.g., x -> x...@do..., y -> y...@do..., etc.) [910410] 1.2.5 - released 1-Dec-04 |
From: Tom C. <tom...@us...> - 2004-12-07 00:34:31
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5500 Modified Files: Tag: stable-1_2 ChangeLog user.c Log Message: fix bug in handling .qmail files with blank lines. Index: user.c =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/user.c,v retrieving revision 1.11.2.6 retrieving revision 1.11.2.7 diff -u -d -r1.11.2.6 -r1.11.2.7 --- user.c 27 Nov 2004 17:18:06 -0000 1.11.2.6 +++ user.c 7 Dec 2004 00:34:21 -0000 1.11.2.7 @@ -998,7 +998,7 @@ static struct vqpasswd *vpw = NULL; static FILE *fs1=NULL; /* for the .qmail file */ static FILE *fs2=NULL; /* for the vacation message file */ - int i; + int i, j; char fn[500]; char linebuf[256]; int inheader; @@ -1027,7 +1027,7 @@ while (fgets (linebuf, sizeof(linebuf), fs1) != NULL) { i = strlen (linebuf); /* strip trailing newline if any */ - if (i && linebuf[i-1] == '\n') linebuf[i-1] = '\0'; + if (i && (linebuf[i-1] == '\n')) linebuf[i-1] = '\0'; switch (*linebuf) { case '\0': /* blank line, ignore */ @@ -1116,8 +1116,11 @@ case '2': /* forwarding addresses */ if (fs1 != NULL) { rewind (fs1); - i = 0; + j = 0; while (fgets (linebuf, sizeof(linebuf), fs1) != NULL) { + i = strlen (linebuf); + /* strip trailing newline if any */ + if (i && (linebuf[i-1] == '\n')) linebuf[i-1] = '\0'; switch (*linebuf) { case '\0': /* blank line */ case '/': /* maildir delivery */ @@ -1127,9 +1130,9 @@ break; default: /* email address delivery */ - /* print address, skipping over '&' if necessary and removing newline */ - if (i++) printf (", "); - printh ("%H", strtok(&linebuf[(*linebuf == '&' ? 1 : 0)], "\n")); + /* print address, skipping over '&' if necessary */ + if (j++) printf (", "); + printh ("%H", &linebuf[(*linebuf == '&' ? 1 : 0)], "\n"); } } } Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.38 retrieving revision 1.15.2.39 diff -u -d -r1.15.2.38 -r1.15.2.39 --- ChangeLog 7 Dec 2004 00:29:20 -0000 1.15.2.38 +++ ChangeLog 7 Dec 2004 00:34:21 -0000 1.15.2.39 @@ -3,6 +3,9 @@ 1.2.6 - unreleased + Tom Collins + - user.c: fix bug in handling .qmail files with blank lines. + 1.2.5 - released 1-Dec-04 Tom Collins |
From: Tom C. <tom...@us...> - 2004-12-07 00:29:34
|
Update of /cvsroot/qmailadmin/qmailadmin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4492 Modified Files: Tag: stable-1_2 ChangeLog configure configure.in Log Message: start of 1.2.6 release Index: configure =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/configure,v retrieving revision 1.14.2.9 retrieving revision 1.14.2.10 diff -u -d -r1.14.2.9 -r1.14.2.10 --- configure 18 Nov 2004 01:55:53 -0000 1.14.2.9 +++ configure 7 Dec 2004 00:29:20 -0000 1.14.2.10 @@ -1647,7 +1647,7 @@ QA_PACKAGE="qmailadmin" -QA_VERSION="1.2.5" +QA_VERSION="1.2.6" cat >>confdefs.h <<_ACEOF Index: configure.in =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/configure.in,v retrieving revision 1.15.2.9 retrieving revision 1.15.2.10 diff -u -d -r1.15.2.9 -r1.15.2.10 --- configure.in 18 Nov 2004 01:55:53 -0000 1.15.2.9 +++ configure.in 7 Dec 2004 00:29:21 -0000 1.15.2.10 @@ -6,7 +6,7 @@ AC_CANONICAL_HOST QA_PACKAGE="qmailadmin" -QA_VERSION="1.2.5" +QA_VERSION="1.2.6" AC_DEFINE_UNQUOTED(QA_PACKAGE,"$QA_PACKAGE","") AC_DEFINE_UNQUOTED(QA_VERSION,"$QA_VERSION","") Index: ChangeLog =================================================================== RCS file: /cvsroot/qmailadmin/qmailadmin/ChangeLog,v retrieving revision 1.15.2.37 retrieving revision 1.15.2.38 diff -u -d -r1.15.2.37 -r1.15.2.38 --- ChangeLog 1 Dec 2004 23:19:44 -0000 1.15.2.37 +++ ChangeLog 7 Dec 2004 00:29:20 -0000 1.15.2.38 @@ -1,6 +1,8 @@ Numbers in square brackets ([]) indicate tracker item on SourceForge with patch or information related to the entry. +1.2.6 - unreleased + 1.2.5 - released 1-Dec-04 Tom Collins |