From 5671838e7a5a27824bb21aea8af5f48f9eab350b Mon Sep 17 00:00:00 2001 From: wiz Date: Thu, 7 Apr 2005 11:27:48 +0000 Subject: Update to 0.3.0nb1: Add a patch from Yoshitaka Tokugawa provided in PR 26806, which has also been added to the spamass CVS repository: Always use macro_b, so SA can do future/past validation. It is not a bug, but it makes SA happier. SA 2.x requires "($v/$Z)$?r with $r" part of Received: header. I don't think SA 3.x need this, but keep it for SA 2.x users. There is a bug in cmp_nocase_partial() function. Without my hack, cmp_nocase_partial("X-Spam-", "X-Spam") returns 0 which is incorrect behavior for this function. --- mail/spamass-milter/Makefile | 3 +- mail/spamass-milter/distinfo | 3 +- mail/spamass-milter/patches/patch-aa | 62 ++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 mail/spamass-milter/patches/patch-aa (limited to 'mail/spamass-milter') diff --git a/mail/spamass-milter/Makefile b/mail/spamass-milter/Makefile index 12e5fc54665..c9ade96ff69 100644 --- a/mail/spamass-milter/Makefile +++ b/mail/spamass-milter/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.15 2005/03/19 14:32:47 wiz Exp $ +# $NetBSD: Makefile,v 1.16 2005/04/07 11:27:48 wiz Exp $ # DISTNAME= spamass-milter-0.3.0 +PKGREVISION= 1 CATEGORIES= mail MASTER_SITES= http://savannah.nongnu.org/download/spamass-milt/ diff --git a/mail/spamass-milter/distinfo b/mail/spamass-milter/distinfo index 974f868fec3..243fa1c3c3d 100644 --- a/mail/spamass-milter/distinfo +++ b/mail/spamass-milter/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.4 2005/03/19 14:32:47 wiz Exp $ +$NetBSD: distinfo,v 1.5 2005/04/07 11:27:48 wiz Exp $ SHA1 (spamass-milter-0.3.0.tar.gz) = 383de2178f81ef88fb0d43d0c36ce973f67d10cf RMD160 (spamass-milter-0.3.0.tar.gz) = b65af53900ca3eef37ccc27a266ea2143000a0bc Size (spamass-milter-0.3.0.tar.gz) = 140126 bytes +SHA1 (patch-aa) = d732c46132d05030e7df0c85109e9d740af22b51 diff --git a/mail/spamass-milter/patches/patch-aa b/mail/spamass-milter/patches/patch-aa new file mode 100644 index 00000000000..5428e3bbce3 --- /dev/null +++ b/mail/spamass-milter/patches/patch-aa @@ -0,0 +1,62 @@ +$NetBSD: patch-aa,v 1.1 2005/04/07 11:27:48 wiz Exp $ + +--- spamass-milter.cpp.orig 2005-02-05 08:03:22.000000000 +0100 ++++ spamass-milter.cpp +@@ -898,13 +898,21 @@ mlfi_envrcpt(SMFICTX* ctx, char** envrcp + (envelope-from $g)$. + + */ +- const char *macro_b, *macro_s, *macro_j, *macro__; ++ const char *macro_b, *macro_s, *macro_j, *macro__, *macro_r; ++ char date[32]; /* sizeof("Mon, 23 Aug 2004 18:28:43 +0900") */ ++ time_t tval; + + /* Failure to fetch {b} is not fatal. Without this date SA can't do + future/past validation on the Date: header, but sendmail doesn't + default to allow milters to see it. + */ + macro_b = smfi_getsymval(ctx, "b"); ++ if (!macro_b) ++ { ++ (void) time(&tval); ++ (void) strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", localtime(&tval)); ++ macro_b = date; ++ } + + /* Sendmail currently cannot pass us the {s} macro, but + I do not know why. Leave this in for the day sendmail is +@@ -916,6 +924,10 @@ mlfi_envrcpt(SMFICTX* ctx, char** envrcp + macro_s = sctx->helo; + if (!macro_s) + macro_s = "nohelo"; ++ /* Get mailer info. */ ++ macro_r = smfi_getsymval(ctx, "r"); ++ if (!macro_r) ++ macro_r = "SMTP"; /* Assuming it as SMTP */ + + /* FQDN of this site */ + macro_j = smfi_getsymval(ctx, "j"); +@@ -930,10 +942,10 @@ mlfi_envrcpt(SMFICTX* ctx, char** envrcp + assassin->output((string)"X-Envelope-From: "+assassin->from()+"\r\n"); + assassin->output((string)"X-Envelope-To: "+envrcpt[0]+"\r\n"); + +- if (!macro_b) +- assassin->output((string)"Received: from "+macro_s+" ("+macro__+") by "+macro_j+";\r\n"); +- else +- assassin->output((string)"Received: from "+macro_s+" ("+macro__+") by "+macro_j+"; "+macro_b+"\r\n"); ++ assassin->output((string)"Received: from "+macro_s ++ +" ("+macro__+")\n\tby "+macro_j ++ +" ("+PACKAGE_NAME+"/"+PACKAGE_VERSION /* dummy */ ++ +") with "+macro_r+";\n\t"+macro_b+"\r\n"); + + } else + assassin->output((string)"X-Envelope-To: "+envrcpt[0]+"\r\n"); +@@ -1965,7 +1977,7 @@ cmp_nocase_partial(const string& s, cons + string::const_iterator p=s.begin(); + string::const_iterator p2=s2.begin(); + +- while ( p != s.end() && p2 != s2.end() ) { ++ while ( p != s.end() ) { + if (toupper(*p) != toupper(*p2)) + { + debug(D_STR, "c_nc_p: <%s><%s> : miss", s.c_str(), s2.c_str()); -- cgit v1.2.3