| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Queue/Runner.py
- Queue/Switchboard.py
Backported the gfiles backup changes from the trunk. The following comments
are from the trunk checkin. Note that the test cases are not added.
Added robustness to Switchboards and Runners so that if a runner crashes
uncleanly (e.g. segfaults the Python interpreter), messages being processed
will not be lost.
The vulnerability, ideas, and patches are credited to Richard Barrett and Mark
Sapiro. Their original work was modified by Barry for this commit and any
bugs are his fault.
The basic idea is that instead of unlinking a .pck file in dequeue(), the file
is renamed to a .bak file. The Switchboard grows a finish() method which then
unlinks the .bak file. That class's constructor also grows a 'restore'
argument (defaulting to false), which when true moves all .bak files it finds
in its hash space to .pck, thereby restoring a file lost while "in flight".
This relies on the fact that even with multiple qrunners, exactly one process
will be responsible for one hash space slice, so it's never possible (under
normal operation) for a .bak file to be renamed to .pck by some other process.
Test cases for both the new Switchboard behavior and the use of that by Runner
subclasses has been added.
There are two things to watch out for, either of which may require some
additional changes. There is some small potential to duplicate messages in
various queues, if say 'mailmanctl' were improperly started more than once by
a site admin. This usually won't happen unless an admin is overly eager with
the mailmanctl -s switch, so we can chalk this one up to operator error. I'm
not sure what more we can do about that.
There's also a possibility that if we're processing a message that continually
causes the Python interpreter to crash, we could end up duplicating messages
endlessly. This is especially troublesome for the Outgoing runner which could
conceivably cause a mail flood. I consider this the more critical issue to
defend against, probably by adding a numbering scheme to the .bak file names
and refusing to restore a .bak file more than say 3 times without human
intervention.
|
|
|
|
|
| |
slices that could result in unprocessable queue entries. Improved FIFO
processing when two queue entries have the same timestamp.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* Defaults.py.in: Added Vietnamese to add_languages.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
care all the .po files in language directories. More fixes should be done
in mailman-2.2.
|
| |
|
|
|
|
| |
local_part of the From: address as a 'real name' in the To: header when replying.
|
|
|
|
| |
get_domain() if VIRTUAL_HOST_OVERVIEW off.
|
|
|
|
| |
instead of DEFAULT_URL_HOST is VIRTUAL_HOST_OVERVIEW was off.
|
| |
|
| |
|
| |
|
|
|
|
| |
from Message.py
|
|
|
|
| |
Added some more test cases.
|
|
|
|
|
|
|
| |
so one all pattern sets are tried until a match is found so one start pattern whose
address doesn't match won't preempt a later patern set that will match.
Added more test cases.
|
|
|
|
|
|
| |
BounceRunner.py to discard the bounce when Stop returned. Changed
DSN.py to recognize Action: headers with comments. Changed Qmail.py
to recognize an observed different starting string.
|
|
|
|
| |
time.localtime(time.mktime()) to try again.
|
|
|
|
|
| |
translation rather that that of the list language. (The subscribers language may
be different.)
|
|
|
|
| |
is -1.
|
|
|
|
| |
when payload is None.
|
|
|
|
| |
comprehension where appropriate.
|
|
|
|
| |
to'.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
because it is overwrapped in Mailman.Message.
|
|
|
|
|
|
| |
This incorporates Python email patch:
http://sourceforge.net/tracker/?func=detail&aid=1409455&group_id=5470&atid=105470
and eventually be backed out if email package is updated.
|
| |
|
| |
|
| |
|
|
|
|
| |
new handler to be included in both GLOBAL_PIPELINE and OWNER_PIPELINE.
|
| |
|
| |
|
|
|
|
| |
filter if X-List-Administrivia header is forged.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The keyword 'reduced_list_headers' is taken from CookHeaders.py and looks
like it is, reviewing Message.py.
|
|
|
|
| |
even if it has X-List-Administrivia header ( mostly -owner notification ).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|