From 1da5ca54b5c03c02abb8a1693ddb1e8958122190 Mon Sep 17 00:00:00 2001
From: Stuart Gathman <stuart@gathman.org>
Date: Fri, 30 Mar 2007 18:13:41 +0000
Subject: [PATCH] Report bestguess and helo-spf as key-value pairs in
 Received-SPF instead of in their own headers.

---
 bms.py      | 14 +++++++++-----
 milter.spec |  2 +-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/bms.py b/bms.py
index c3461eb..792361f 100644
--- a/bms.py
+++ b/bms.py
@@ -1,6 +1,9 @@
 #!/usr/bin/env python
 # A simple milter that has grown quite a bit.
 # $Log$
+# Revision 1.101  2007/03/29 03:06:10  customdesigned
+# Don't count DSN and unqualified MAIL FROM as internal_domain.
+#
 # Revision 1.100  2007/03/24 00:30:24  customdesigned
 # Do not CBV for internal domains.
 #
@@ -702,7 +705,7 @@ class bmsMilter(Milter.Milter):
               'SMTP user %s is not authorized to use MAIL FROM %s.' %
               (self.user,self.canon_from)
             )
-          return Milter.REJECT
+            return Milter.REJECT
         elif internal_domains and not self.internal_domain:
           self.log("REJECT: zombie PC at ",self.connectip,
               " sending MAIL FROM ",self.canon_from)
@@ -918,13 +921,14 @@ class bmsMilter(Milter.Milter):
       self.log('TEMPFAIL: SPF %s %i %s' % (res,code,txt))
       self.setreply(str(code),'4.3.0',txt)
       return Milter.TEMPFAIL
-    self.add_header('Received-SPF',q.get_header(q.result,receiver),0)
+    kv = {}
     if hres and q.h != q.o:
-      self.add_header('X-Hello-SPF',hres,0)
+      kv['helo_spf'] = hres
+    if res != q.result:
+      kv['bestguess'] = res
+    self.add_header('Received-SPF',q.get_header(q.result,receiver,**kv),0)
     self.spf_guess = res
     self.spf_helo = hres
-    if res != q.result:
-      self.add_header('X-Guessed-SPF',res,0)
     self.spf = q
     return Milter.CONTINUE
 
diff --git a/milter.spec b/milter.spec
index dbf3737..0ec6f95 100644
--- a/milter.spec
+++ b/milter.spec
@@ -37,7 +37,7 @@ Prefix: %{_prefix}
 Vendor: Stuart D. Gathman <stuart@bmsi.com>
 Packager: Stuart D. Gathman <stuart@bmsi.com>
 Url: http://www.bmsi.com/python/milter.html
-Requires: %{python} >= 2.4, sendmail >= 8.13
+Requires: %{python} >= 2.4, sendmail >= 8.13, pyspf >= 2.0.4
 %ifos Linux
 Requires: chkconfig
 %endif
-- 
GitLab