aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman
diff options
context:
space:
mode:
authorMark Sapiro <mark@msapiro.net>2015-01-04 19:03:40 -0800
committerMark Sapiro <mark@msapiro.net>2015-01-04 19:03:40 -0800
commitc170b01eae9958bc6d0892e8227d2726f60362b7 (patch)
treec4d0c4d1ea94649f40a993909ad5f85d1fe091c6 /Mailman
parent85a6679a3ea5b1ff085453f4e1ed921b5320690b (diff)
downloadmailman2-c170b01eae9958bc6d0892e8227d2726f60362b7.tar.gz
mailman2-c170b01eae9958bc6d0892e8227d2726f60362b7.tar.xz
mailman2-c170b01eae9958bc6d0892e8227d2726f60362b7.zip
Add some explanitory comments for why we defer some Munge From changes
to WrapMessage. Correct a misplaced item in NEWS.
Diffstat (limited to '')
-rwxr-xr-xMailman/Handlers/CookHeaders.py5
-rw-r--r--Mailman/Handlers/WrapMessage.py5
2 files changed, 8 insertions, 2 deletions
diff --git a/Mailman/Handlers/CookHeaders.py b/Mailman/Handlers/CookHeaders.py
index 0139f3c3..30e05655 100755
--- a/Mailman/Handlers/CookHeaders.py
+++ b/Mailman/Handlers/CookHeaders.py
@@ -72,6 +72,11 @@ def change_header(name, value, mlist, msg, msgdata, delete=True, repl=True):
(msgdata.get('from_is_list') == 0 and mlist.from_is_list == 2)) and
not msgdata.get('_fasttrack')
) or name.lower() in ('from', 'reply-to', 'cc'):
+ # The or name.lower() in ... above is because when we are munging
+ # the From:, we want to defer the resultant changes to From:,
+ # Reply-To:, and/or Cc: until after the message passes through
+ # ToDigest, ToArchive and ToUsenet. Thus, we put them in
+ # msgdata[add_header] here and apply them in WrapMessage.
msgdata.setdefault('add_header', {})[name] = value
elif repl or not msg.has_key(name):
if delete:
diff --git a/Mailman/Handlers/WrapMessage.py b/Mailman/Handlers/WrapMessage.py
index fba6bc2a..0e47e1e4 100644
--- a/Mailman/Handlers/WrapMessage.py
+++ b/Mailman/Handlers/WrapMessage.py
@@ -18,7 +18,7 @@
"""Wrap the message in an outer message/rfc822 part and transfer/add
some headers from the original.
-Also, in the case of Munge From, replace the From: and Reply-To: in the
+Also, in the case of Munge From, replace the From:, Reply-To: and Cc: in the
original message.
"""
@@ -40,7 +40,8 @@ def process(mlist, msg, msgdata):
# is wrap this message or from_is_list applies and is wrap.
if not (msgdata.get('from_is_list') == 2 or
(mlist.from_is_list == 2 and msgdata.get('from_is_list') == 0)):
- # Now see if we need to add a From: and/or Reply-To: without wrapping.
+ # Now see if we need to add a From:, Reply-To: or Cc: without wrapping.
+ # See comments in CookHeaders.change_header for why we do this here.
a_h = msgdata.get('add_header')
if a_h:
if a_h.get('From'):