So far it's just on/off switch, but it's a start :)
Enjoy.
This is also going to be posted to the qmailadmin sourceforge project
within the hour.
The patch was made against qmailadmin 1.2.0 but I don't forsee any
difficulty with making against any other version.
Beware, if you're using the old method of --enable-spam-command this
patch removes that functionality (the spam command stuff for ./configure
is still there, but none of the functionality is)
Any pre-existing spam command'ed accounts should work fine, this is
simply a patch to go along with the spamc calling in vdelivermail that
Ken posted a few weeks ago.
-Jeremy
--
Jeremy Kitchen
Systems Administrator
[EMAIL PROTECTED]
Kitchen @ #qmail on EFNet - Join the party!
.
Inter7 Internet Technologies, Inc.
www.inter7.com
866.528.3530 toll free
847.492.0470 int'l
847.492.0632 fax
GNUPG key ID: 93BDD6CE
diff -urN qmailadmin-1.2.0-orig/template.c qmailadmin-1.2.0-spam/template.c
--- qmailadmin-1.2.0-orig/template.c 2004-01-25 18:41:07.0 -0600
+++ qmailadmin-1.2.0-spam/template.c 2004-03-18 13:19:21.0 -0600
@@ -729,6 +729,13 @@
return;
}
+ if ( newchar=='9') {
+vpw = vauth_getpw(ActionUser, Domain);
+if (vpw-pw_gid ^ NO_SPAMASSASSIN) {
+ printf(checked );
+}
+ }
+
if (fs1 == NULL) {
if (newchar=='0'){
printf(checked );
@@ -774,33 +781,6 @@
}
}
- i = 0;
- do {
-if (newchar == '3' (NTmpBuf[0] == '/' ||
- strstr(NTmpBuf, SPAM_COMMAND)!=NULL) ) {
- printf(checked );
- return;
-}
-if ( newchar == '2' ) {
- if (NTmpBuf[0]=='/') continue;
- if (NTmpBuf[0]=='|') continue;
- if ( i0 ) printf(, );
- if (NTmpBuf[0]=='') {
-printf(%s, strtok(NTmpBuf[1], \n));
- } else {
-printf(%s, NTmpBuf[0]);
- }
- ++i;
-}
-/* Jeff Hedlund ([EMAIL PROTECTED]) 28 May 2003 */
-/* i9: checked if spam filtering on */
-if ( newchar == '9' strstr(NTmpBuf, SPAM_COMMAND)!=NULL ) {
- printf(checked );
- return;
-}
- } while(fgets(NTmpBuf,sizeof(NTmpBuf),fs1) != NULL );
-
-
return;
} else {
diff -urN qmailadmin-1.2.0-orig/user.c qmailadmin-1.2.0-spam/user.c
--- qmailadmin-1.2.0-orig/user.c 2004-01-26 12:16:40.0 -0600
+++ qmailadmin-1.2.0-spam/user.c 2004-03-18 13:19:31.0 -0600
@@ -493,11 +493,10 @@
#ifdef MODIFY_SPAM
GetValue(TmpCGI, spamvalue, spamcheck=, sizeof(spamvalue));
-if(strcmp(spamvalue, on) == 0) {
- snprintf(NewBuf, sizeof(NewBuf), %s/.qmail, mypw-pw_dir);
- fs = fopen(NewBuf, w+);
- fprintf(fs, %s\n, SPAM_COMMAND);
- fclose(fs);
+if(strcmp(spamvalue, off) == 0) {
+mypw = vauth_getpw(ActionUser, Domain);
+mypw-pw_gid |= NO_SPAMASSASSIN;
+vauth_setpw(mypw, Domain);
}
#endif
@@ -805,6 +804,7 @@
}
#endif
+
GetValue(TmpCGI,Gecos, gecos=, sizeof(Gecos));
if ( strlen( Gecos ) != 0 ) {
vpw = vauth_getpw(ActionUser, Domain);
@@ -857,7 +857,15 @@
/* get value of the spam filter box */
GetValue(TmpCGI,box, spamcheck=, sizeof(box));
- if ( strcmp(box,on) == 0 ) spam_check = 1;
+ if ( strcmp(box,on) == 0 ) {
+vpw = vauth_getpw(ActionUser, Domain);
+vpw-pw_gid = ~NO_SPAMASSASSIN;
+vauth_setpw(vpw, Domain);
+ } else {
+vpw = vauth_getpw(ActionUser, Domain);
+vpw-pw_gid |= NO_SPAMASSASSIN;
+vauth_setpw(vpw, Domain);
+ }
/* get the value of the cforward radio button */
GetValue(TmpCGI,box, cforward=, sizeof(box));
@@ -870,13 +878,6 @@
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);
-}
-
/* delete any vacation directory */
snprintf(NewBuf,sizeof(NewBuf),%s/vacation, vpw-pw_dir);
vdelfiles(NewBuf);
@@ -924,12 +925,7 @@
/* 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);
- }
+ fprintf(fs,%s/Maildir/\n, vpw-pw_dir);
}
fclose(fs);
@@ -958,11 +954,7 @@
fprintf(fs, | %s/autorespond 86400 3 %s/vacation/message %s/vacation\n,
AUTORESPOND_PATH, vpw-pw_dir, vpw-pw_dir );
-/* 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/Maildir/\n, vpw-pw_dir);
fclose(fs);
/* set up the