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
|