aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman/Handlers (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Scrubber.py - If a malformed message has Content-Type: with amsapiro2007-06-151-4/+7
| | | | | | | | | | charset="quoted-printable" parameter, quopri_encode can be called at t = t.encode(charset, 'replace') which throws an AssertionError. See log message for r. 8213. Caught this. - Malformed RFC 2047 encoded filename= parameter can have a null byte or other garbage in the extension. Cleaned this. - A message with a message/delivery-status part returns None for the part's payload. Checked for a payload before attempting unicode/encode.
* Improved processing of an Approve(d): body line by decoding the body payloadmsapiro2007-06-091-6/+22
| | | before looking for/deleting the Approve(d): line.
* base64 codec raises 'AssertionError'. This should not occur in normal casetkikuchi2007-05-091-1/+1
| | | | | | but it looks like thare is a buggy MUA or spammer who declairs like so: Content-Type: text/plain; charset=base64 :-(
* - CGI/admin.pymsapiro2007-05-083-6/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The email address which forms a part of the various CGI data keys in the admin membership list is now urllib.quote()ed. This allows changing options for and unsubbing an address which contains a double-quote character. - CGI/admindb.py Added additional test to not display "Database Updated ..." when coming from the login page. - CGI/roster.py, HTMLFormatter.py Changed to show hidden members when authorization is site or list's admin or moterator password. Patch 1587651. - Defaults.py.in, Handlers/Cleanse_DKIM.py Added a new REMOVE_DKIM_HEADERS Defaults.py/mm_cfg.py setting (default = No) to control removing dkim/domainkey signatures from posts and mail to -owner. - Handlers/Decorate.py, Handlers/Scrubber.py Changed to preserve format=flowed and delsp=yes in the Content-Type: of the body when adding header/footer and when scrubbing attachments and to remove trailing spaces from the header/footer lines so they won't be flowed. Bug 1495122. Fixed a scrubber issue where the i18n translated 'next part' separator can be garbled if the list charset is different from the message. - Queue/Runner.py. Queue/Switchboard.py Now that we have .bak queue entries for recovery, it is no longer the case that an unparseable message is lost. In this case, and in case of other exceptions when dequeueing, I added a preservation feature to move the .bak file to qfiles/shunt as a .psv file and write an appropriate log entry. It is also possible for an attempt to shunt a message to fail. One example that occurred in practice (bug 1656289) was caused by a huge message that threw a MemoryError in processing and then threw another MemoryError in the attempt to pickle the message for the shunt queue. In this case as well, I log and attempt to preserve the original queue entry by renaming.
* Changed header_filter_rules processing to ignore blank patterns.msapiro2007-01-201-1/+4
|
* A much improved release script, which now knows about Subversion (though isn'tbwarsaw2006-09-011-1/+0
| | | | | | | yet ready to work from the trunk). Also, get rid of all the obsolete .cvsignore directories, they're no longer needed. Almost ready for 2.1.9rc1!
* Back port Python 2.5 compatibility changes to Mailman 2.1. Specifically,bwarsaw2006-07-301-3/+9
| | | | | | | | | | | | | | | | | | - In SecurityManager.py, fix the parsecookie() code to work with Python 2.5 generated cookie text. The latter was changed to be more RFC compliant so it does not output trailing semicolons for each line of cookie text. This broke the splitting rules, so now first split on newlines, then on ';\s*'. This should work across all Python versions. - In Python 2.5, exceptions are new-style, and thus are no longer of ClassType. The instantiation type test in hold_for_approval() was too naive. This one is fixed differently here than in the MM trunk because in Python 2.1, 'type' isn't a type, it's a function and so can't be used as the second argument to isinstance() directly. - Raising strings generates deprecation warnings in Python 2.5. Switch the one weird use of this in Utils.py to use a class exception. Don't call it "quick exit" though because it's probably not.
* - Decorate.py Fixed bug 1507248 by ignoring header/footer charactersmsapiro2006-06-231-2/+2
| | | | | | | | outside the character set of the list's language. - Utils.py Fixed a security hole which allowed a crafted URI to inject bogus apparent messages into the error log, possibly inducing an admin to visit a phishing site.
* Fixed bug 1430236 by catching TypeError when trying to get a decoded payloadmsapiro2006-02-191-1/+6
| | | | when payload is None.
* ch_oneline(): Input string variable is overwritten. Also use listtkikuchi2006-02-171-8/+4
| | | | comprehension where appropriate.
* variable name: it is not a floating number. (time tuple)tkikuchi2006-02-031-2/+2
|
* Back out Revision 2.18.2.19 patch for email.Message.set_payload() bugtkikuchi2006-01-294-40/+12
| | | | because it is overwrapped in Mailman.Message.
* Prevent loop in hold/reject if addressed to '-owner'.tkikuchi2006-01-291-9/+10
|
* Moving deletion of Domainkey-Signature: and DKIM-Signature: headers to amsapiro2006-01-152-10/+34
| | | | new handler to be included in both GLOBAL_PIPELINE and OWNER_PIPELINE.
* SpamDetect.py: Fix loop. As a side effect, spam message may pass thetkikuchi2006-01-141-13/+15
| | | | filter if X-List-Administrivia header is forged.
* process(): Fix a comment.bwarsaw2006-01-011-4/+3
|
* Don't use 'X-List-Administrivia', second part.tkikuchi2005-12-311-1/+1
|
* On my second thought, I use msgdata for internally crafted message checking.tkikuchi2005-12-311-4/+2
| | | | | The keyword 'reduced_list_headers' is taken from CookHeaders.py and looks like it is, reviewing Message.py.
* Back out Revison 2.3.2.4 change. Check outermost message headertkikuchi2005-12-311-6/+6
| | | | even if it has X-List-Administrivia header ( mostly -owner notification ).
* A cleansing pass, almost entirely cosmetic. Such things as whitespacebwarsaw2005-12-3010-67/+73
| | | | | | | | | | | | | normalization, removal of tabs, copyright year updates to changed files, docstring and comment fixes, and usage of True/False. I also made a pass through the NEWS file. One import was reordered, and after this commit I will move the mmdsr.readme file to README.mmdsr. From my perspective, after that we're ready to go. I will port these changes forward to the trunk.
* Python interpreter has evolved to be strict on ascii charset range.tkikuchi2005-12-261-20/+13
| | | | Subject manipulation should be done in unicode string mode.
* True/False definition for Python2.1.tkikuchi2005-12-261-0/+7
| | | | | Only check in Release_2_1-maint branch because 2.2 will require higher version of python.
* Scan other text/* parts for Approve(d): <password> - bug 1181161.msapiro2005-12-211-1/+29
|
* Fixes for email.set_payload() not distinguish parsed or virgin payload.tkikuchi2005-12-174-25/+51
| | | | | | I've tested the example by Mark Sapiro: http://mail.python.org/pipermail/mailman-developers/2005-November/018395.html both with and without 'Content-Transfer-Encoding' but may need more test.
* Add an extra trailing space in scrubbed content URL. This may save thetkikuchi2005-12-131-1/+3
| | | | users of MS Outlook and Apple Mail.
* One more little change. One day I'll learn not to commit until I'm REALLY done.msapiro2005-11-281-5/+1
|
* Fix bug 1367783 - decode base64 and quoted-printable HTML parts when passing ↵msapiro2005-11-271-1/+6
| | | | to mm_cfg.HTML_TO_PLAIN_TEXT_COMMAND
* SF patch # 1246003tkikuchi2005-11-191-1/+1
|
* Use original_sender put in msgdata by CookHeaders.py if it's availablemsapiro2005-11-131-1/+1
|
* Remove Approve: header as well as Approved:msapiro2005-11-131-0/+2
|
* Don't delete line following first body line Approve(d)msapiro2005-11-131-1/+1
|
* Log the sender and not list-bounces when non-VERPmsapiro2005-11-121-2/+8
| | | | and mm_cfg.USE_ENVELOPE_SENDER = Yes
* Port from MAIN. Finnish Re: dialect.tkikuchi2005-11-041-1/+1
|
* Add OverflowError in the except list. (back port from MAIN).tkikuchi2005-10-231-1/+1
|
* process(): Patch by Mark Sapiro (slightly modified by Barry) to take preamblesbwarsaw2005-09-191-2/+6
| | | | and epilogues in the calculation of messages sizes.
* SF patch #1287546 to remove DomainKey (and similar) headers.bwarsaw2005-09-121-1/+10
|
* FSF office has moved to 51 Franklin Street.tkikuchi2005-08-2726-26/+26
|
* Fix multiline bug as suggested by Iain Pople [1250657]tkikuchi2005-08-041-1/+1
|
* Whitespace normalization, and updates of copyright years.bwarsaw2005-07-171-1/+1
|
* Introduce new attribute (collapse_alternatives) to allow HTML intkikuchi2005-07-131-4/+6
| | | | multipart/alternative message after content filtering.
* Backout last checkin. The fix was already coded in the following part. ^^;)tkikuchi2005-07-131-3/+0
|
* A part can be None type in Python2.4 if multipart/mixed without real content.tkikuchi2005-07-131-0/+3
| | | | Temporary work around to ignore such case.
* Avoid infinite loop of held message and its notifications.tkikuchi2005-07-041-5/+6
|
* Fix SF BugID 1179487:tkikuchi2005-06-261-3/+14
| | | | | | | | | Although the RFC2231 bug example in the tracker has been solved in mailman-2.1.6, there may be more cases where ToDigest.send_digests() can block regular delivery. I put the send_digests() calling part in try - except clause and leave a message in the error log if something happened in send_digests(). Daily call of cron/senddigests will notify more details to the site administrator.
* process(): One more bug fix, though this one should be safe. Under email 2.5,bwarsaw2005-05-221-1/+8
| | | | | | | | | | it is possible for a message to be "not is_multipart()" but to have a None payload. I know of at least one situation where this can happen: you have a Content-Type: multipart/* but there is nothing but two blank lines between the first boundary and the end boundary. Under email 3, you get a string payload but under email 2.5 you get None. Because there's nothing in such parts, they should be safe to ignore.
* I finally find out why re.escape() doesn't work properly. '%' should nottkikuchi2005-05-131-8/+8
| | | | | be escaped for it is the insert directive. It was my trial and error in the comments in previous version. Well, I didn't think of '++' ...
* prefix_subject(): Don't double escape the prefix_pattern.bwarsaw2005-05-131-3/+0
|
* Copyright years and whitespace normalization.bwarsaw2005-05-131-4/+3
|
* strip_subject() in HyperArch.pybwarsaw2005-05-131-8/+7
| | | | | | | | | | prefix_subject() in CookHeaders.py When calling re.sub() to substitute the subject prefix, you have to escape the pattern, otherwise prefixes like [C++] cause "multiple repeat" exceptions in re. Also, whitespace normalization and copyright years updates.
* Fix UnicodeDecodeError and UnicodeEncodeError to UnicodeError.tkikuchi2005-05-081-1/+1
| | | | Both are introduced in Python2.3. UnicodeError catches both.