[Mailman-Users] header_filter_rules possible bug

Iain Pople ipople at unimelb.edu.au
Tue Aug 2 09:38:38 CEST 2005


Hi,

I have noticed some unexpected behaviour with header_filter_rules.

I wanted to reject messages with an empty subject line so i came up  
with the following regex:

^subject:\s*$

However it wasn't working as desired. After delving around in the  
SpamDetect.py code i noticed that the re.search call is not using  
MULTILINE mode. So the headers are treated as one long string and ^  
would only match the beginning of the string.

Is this the desired behaviour? To me it makes more sense that it  
should use multiline mode.

i.e.:

--- SpamDetect.py.bak   2005-08-02 15:56:42.083270000 +1000
+++ SpamDetect.py       2005-08-02 17:33:59.698226000 +1000
@@ -127,7 +127,7 @@
          for pattern in patterns.splitlines():
              if pattern.startswith('#'):
                  continue
-            if re.search(pattern, headers, re.IGNORECASE):
+            if re.search(pattern, headers, re.IGNORECASE|re.MULTILINE):
                  if action == mm_cfg.DISCARD:
                      raise Errors.DiscardMessage
                  if action == mm_cfg.REJECT:
@@ -137,3 +137,4 @@
                      hold_for_approval(mlist, msg, msgdata,  
HeaderMatchHold)
                  if action == mm_cfg.ACCEPT:
                      return

--
Iain Pople
Systems Programmer
University of Melbourne




More information about the Mailman-Users mailing list