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 |