| Commit message (Collapse) | Author | Files | Lines |
|
available_languages if it is other than the server's default language
(1906368).
|
|
MembershipIsBanned exception and report appropriately.
|
|
|
|
|
|
|
|
to begin with.
|
|
|
|
|
|
This has been broken since 2.1.5!
|
|
|
|
directories to make sure they didn't have certain 'other' permissions, but it
didn't check these directories for the necessary user and group permissions.
This is now fixed.
|
|
paths more deeply nested than 1 level. IOW, -r package.package.module.func
now works as intended.
|
|
file other than stdout. Fix a typo in getting the digest style. Update
copyright years.
|
|
|
|
user passwords. Default is 'none' which disables passwords altogether
in the resulting XML. Other choices include:
plain -- output passwords in plain text
sha -- sha1 hash of password
ssha -- sha1 hash salted with 4 random bytes (only available if
os.urandom() works)
|
|
upgrade from Mailman 2.1 to the trunk -- after the merge of the SQLAlchemy
code -- will need this. Note that I don't intend to implement import in
MM2.1.
This script is a little diffferent than what's on the trunk, but functionally
(and schema-wise) equivalent.
|
|
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!
|
|
- 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.
|
|
Bug 1444447.
|
|
|
|
|
|
|
|
Before we startup qrunners, we redirect the stderr to mailman syslog.
We assume !AS_SUBPROC is running for debugging purpose and don't
log errors in mailman logs/error but keep printing to stderr.
|
|
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.
|
|
|
|
|
|
|
|
update_qfiles(): Catch and ignore OSErrors when trying to listdir() a
non-directory.
dequeue(): Catch EOFErrors that can occur if a zero-length qfile is
encountered.
|
|
multiuser systems, and provide some information on what can be done about it.
Update the install document.
|
|
|
|
|
|
Update copyright years for files changes in 2005. Whitespace normalization.
|
|
This goes hand-in-hand with one of two changes to withlist. Now, withlist
puts the directory it's found in on the end of sys.path. This way it's much
easier to run withlist scripts that live in bin.
The other change allows running withlist w/o a list name, but only if -i is
given. Makes it easier to debug various non-list related parts of Mailman.
|
|
- Added the ability for Mailman generated passwords (both member and list
admin) to be more cryptographically secure. See new configuration
variables USER_FRIENDLY_PASSWORDS, MEMBER_PASSWORD_LENGTH, and
ADMIN_PASSWORD_LENGTH. Also added a new bin/withlist script called
reset_pw which can be used to reset all member passwords. Passwords
generated by Mailman are now 8 characters by default for members, and 10
characters for list administrators.
|
|
|
|
|
|
faster. (At least some) libc getgrgid() opens /etc/group for every query.
|
|
|
|
MMHostileAddress will be caught.
This (and the previous similar patch to Mailman/Cgi/create.py) were given by
SHIGENO Kazutaka.
|
|
or otherwise doesn't exist.
|
|
|
|
ids. (With slight modification by BAW.)
|
|
separate .db and .msg qfiles to the single .pck file.
update_pending(): Updates the global data/pending.pck file to the per-list
.pck files as best as possible.
main(): update the qfiles and pending database.
|
|
|
|
|
|
|
|
on existing archives. Closes SF bug #835332.
Note, you have to re-run configure to pick up this new script.
|
|
archives. Closes SF bug #835332.
|
|
setuid'd user, if os.setgroup() is available (it's not in Python
2.1). Close SF bug #777444 posted by Richard Barrett, identified and
solved by Jonas Muerer.
|
|
via config_list. This one sucks because new_member_options is a
Checkbox but the standard way of setting and getting these values
doesn't really work.
Fixes SF # 841445.
|