From 361cefb5747b93aa3a6510af017ec89390673c38 Mon Sep 17 00:00:00 2001 From: Sunil Shetye Date: Thu, 14 Oct 2010 00:46:31 +0530 Subject: Fix "antispam does not work" This appears to be similar to the recent --nosoftbounce and --nobounce issue where command line options are not handled exactly the same way as the rcfile parser handles them. Reported by Kees Bakker, BerliOS bug #17599. --- NEWS | 2 ++ options.c | 2 +- sink.c | 12 +----------- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/NEWS b/NEWS index 92aab79e..2aca1560 100644 --- a/NEWS +++ b/NEWS @@ -67,6 +67,8 @@ fetchmail-6.3.19 (not yet released): of local users, not just at the end. * In multidrop mode, header parsing is now more verbose in -vv mode, so that it becomes possible to see which header is used. +* Make --antispam work from command line (these used to work in rcfiles). + Reported by Kees Bakker, BerliOS Bug #17599. (Sunil Shetye) # KNOWN BUGS AND WORKAROUNDS: (this section floats upwards through the NEWS file so it stays with the diff --git a/options.c b/options.c index d0c7c2ab..a298cb6e 100644 --- a/options.c +++ b/options.c @@ -487,7 +487,7 @@ int parsecmdline (int argc /** argument count */, buf = xstrdup(optarg); cp = strtok(buf, ","); do { - struct idlist *idp = save_str(&ctl->antispam, NULL, 0);; + struct idlist *idp = save_str(&ctl->antispam, STRING_DUMMY, 0); idp->val.status.num = xatoi(cp, &errflag); } while diff --git a/sink.c b/sink.c index 3abbd605..92f7b433 100644 --- a/sink.c +++ b/sink.c @@ -441,8 +441,6 @@ static int handle_smtp_report(struct query *ctl, struct msgblk *msg) { int smtperr = atoi(smtp_response); char *responses[1]; - struct idlist *walk; - int found = 0; responses[0] = xstrdup(smtp_response); @@ -466,15 +464,7 @@ static int handle_smtp_report(struct query *ctl, struct msgblk *msg) * messages, which are probably in English (none of the * MTAs I know about are internationalized). */ - for( walk = ctl->antispam; walk; walk = walk->next ) - if ( walk->val.status.num == smtperr ) - { - found=1; - break; - } - - /* if (str_find(&ctl->antispam, smtperr)) */ - if ( found ) + if (str_find(&ctl->antispam, smtperr)) { /* * SMTP listener explicitly refuses to deliver mail -- cgit v1.2.3