summaryrefslogtreecommitdiff
path: root/Mailman (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* - Utils.py Fixed a security hole which allowed a crafted URI to injectmsapiro2006-07-077-7/+88
| | | | | | | | | | | | | | | | | | | | bogus apparent messages into the error log, possibly inducing an admin to visit a phishing site. - options.py Topics.py Tagger.py MailList.py Utils.py Version.py versions.py The processing of Topics regular expressions has changed. Previously the Topics regexp was compiled in verbose mode but not documented as such which caused some confusion. Also, the documentation indicated that topic keywords could be entered one per line, but these entries were not properly. Topics regexps are now compiled in non-verbose mode and multi- line entries are 'ored'. Existing Topics regexps will be converted when the list is updated so they will continue to work.
* - Decorate.py Fixed bug 1507248 by ignoring header/footer charactersmsapiro2006-06-231-2/+2
| | | | outside the character set of the list's language.
* Updated a few bouncers to recognize more bounces.msapiro2006-06-1117-2/+1628
| | | Added more test cases.
* Added '(by thread)' to the previous and next message links to emphasize thatmsapiro2006-06-111-2/+2
| | | | even if you got to the message from a subject, date or author index, previous and next are still by thread.
* - newlist.pymsapiro2006-06-081-1/+9
| | | | | | | | Added 'automate' option to be 'quiet' but still send admin notice. - admindbdetails.html Changed 'Approve' wording to 'Approve/Accept' for consistency with button labels.
* - show_mm_cfg.pymsapiro2006-06-041-1/+11
| | | | | | | | Added pretty printing. - dumpdb Fixed to once again dump marshals. Converted to use optparse. Did not convert to mmshell framework because it's not compatible with 'interactive' usage.
* Added a new show_mm_cfg command line script to show the actual valuesmsapiro2006-06-021-0/+78
| | | of variables imported from mm_cfg.
* Replaced call to no longer existent Message.OutgoingMessage() with call tomsapiro2006-05-301-1/+2
| | | | email.message_from_string(text, Message.Message) (Sourceforge is migrating from 1.x - scary)
* Added removal of Authentication-Results: header as it too is no longer valid.msapiro2006-05-231-0/+1
|
* Fixed paths in file opening for new structure and test bounces location.msapiro2006-05-191-2/+5
|
* Reorganize the unit test infrastructure, so that tests live inside thebwarsaw2006-05-1890-2/+12093
| | | | | | | | | | | | | | | | | Mailman top level package. Rewrote the test runner and stuck it in bin (as an mmshell symlink). bin/testall now autodetects tests and allows running a subset of tests via regular expression filtering. I also fixed all the tests so they all pass now, with the exception of test_message.py tests. These still doesn't work because of coordination issues between its smtpd-based reader and SMTPDirect, but... I have a plan (mwah, ha, ha! :) I also fixed a code update bug in Decorate.py
* - Cgi/options.py - fixed to not present the "empty" topic to user.msapiro2006-05-172-0/+6
| | | | - Handlers/CalcRecips.py - Changed to not process topics if topics are disabled for the list.
* Set package name and version number in AC_INIT macro in configure.in. Also,bwarsaw2006-05-1516-1/+463
| | | | | | | | | | | | | | | | | | | require Python to be at least 2.3.0 Convert all scripts/* scripts (except driver) to use the symlink-to-bin/mmshell trick. For now (since we're debugging more often than releasing), set STEALTH_MODE to False in scripts/driver. We need to remember to turn this back to True when we start getting closer to releases! In the various scripts, er, Mailman/bin scripts, convert them to $-strings for i18n substitution, and clean up imports. Also, get rid of the crufty Emacs -*- line, which is no longer needed now that the files end in .py. Get rid of lots of unnecessary svn:executable properties. Remove an unnecessary import from Mailman/bin/disabled.py
* - Added additional bounce recognition for Qmail and SimpleMatch.pymsapiro2006-05-142-1/+6
| | | | - Added test cases for above.
* Move all cron scripts to the new Mailman.bin package layout and complete thebwarsaw2006-05-136-0/+894
| | | | | conversion to optparse style option parsing. Remove mailpasswds as password reminders will go away for MM2.2.
* find_member converted.bwarsaw2006-05-081-0/+135
|
* Convert add_members.bwarsaw2006-05-021-0/+216
|
* Convert list_ownersbwarsaw2006-05-021-0/+87
|
* Convert bin/inject and bin/version to Mailman.bin modules. Remove rb-archfix.bwarsaw2006-05-013-1/+143
|
* Repairsbwarsaw2006-05-012-6/+6
|
* Move file to correct filenamebwarsaw2006-05-011-0/+0
|
* Convert change_pw and show_qfiles to Mailman.bin package. Note thatbwarsaw2006-05-012-0/+243
| | | | | after this commit, I have to fix the filename of Mailman/bin/show_qfiles because of silly svn restrictions.
* Move list_lists and list_members over to Mailman.bin package and rewrite tobwarsaw2006-04-294-11/+349
| | | | | | | | | | | | | | | | | use $-strings and optparse. A side effect of the rewrite is that list_members -d and -n now require their argument, whereas before they were optional (but that is counter to command line parsing standards and not supported by optparse). Now, instead of bare -n use '-n any' and instead of bare -d use '-d any'. Fix ReopenableFileHandler.emit() to ensure that all lines end in a newline. In i18n.py, create and use a subclass of string.Template so that dotted attribute paths are legal in $-strings. So for example, if you have an object 'foo' in one of the namespaces and that has an attribute 'bar', you can say "$foo.bar" to print the value of foo.bar. Should reduce the number of extraneous local variables just to do the attribute path traversal.
* Move arch, mmsitepass, and unshunt to the Mailman.bin package and rewrite tobwarsaw2006-04-286-2/+326
| | | | | | | | | | use optparse. Update newlist and rmlist to get their version string entirely from mm_cfg.MAILMAN_VERSION instead of having to build that string up each time. Fix the symlink source in the Makefile.in. Remove b4b5-archfix entirely.
* More logging updates:bwarsaw2006-04-285-305/+159
| | | | | | | | | | | - Remove the LogStdErr() calls from all the scripts/* scripts. - Convert the LockFile.py code to use the logging logs. Also do general code cleanup in this module. Note that the 'withlogging' argument to __init__() has been removed, as we can use logging's mechanisms to control how much of LockFile will get logged (by default, not much). - Add the 'mailman.locks' logger to loginit.py - Remove Mailman/Handlers/Sendmail.py once and for all - Remove LIST_LOCK_DEBUGGING from Defaults.py.in
* Convert Mailman.bin.rmlist module to optparse, and do general cleanup.bwarsaw2006-04-285-107/+108
| | | | | | | | | | | | | | | | | Modify Mailman.i18n._() to understand string.Template style $-strings. The function now looks in the frame's locals and globals for a variable __i18n_templates__ which if True (defaults to False if missing) says that the string being translated uses $-strings instead of %-strings. newlist and rmlist both set __i18n_templates__ = True in their module globals. Rewrite ReopenableFileHandler to better ensure that nothing we log (even random 8-bit garbage) can cause an error in the logging subsystem. First, we open the underlying log file using a utf-8 codec, but if we get a UnicodeError when writing a log message to the stream, we encode the string with the 'string-escape' codec, which should pretty much makes any string data loggable.
* The start of the conversion of the bin and cron scripts to modules invoked bybwarsaw2006-04-275-1/+454
| | | | | | | | | | | | | | an uber-shell (called mmshell for now for lack of a better name). The reason I'm doing this is because while I understand and still accept the reason for it, I really hate having to re-run configure (or config.status) every time I make a change to a bin script. mmshell looks at argv[0] to figure out which Mailman.bin module to run. Move newlist and rmlist to the new framework, but also, rewrite newlist to use optparse instead of getopt. Much nicer. Also convert it to use $variables for i18n even though the i18n._() function hasn't yet been updated to handle these (it will soon). rmlist hasn't yet been optparse-ified, but that's soon too. :)
* 2006-04-27 Clytie Siddall <clytie@riverland.net.au>clytie2006-04-271-0/+1
| | | | | | * Defaults.py.in: Added Vietnamese to LANGUAGE_DICT.
* - Fixes to further remove the old Syslog from bin and cron scripts. Note thatbwarsaw2006-04-241-7/+22
| | | | | | | | | | | I didn't update cron/mailpasswds because that is going away. cron/disabled and cron/gate_news are only minimally tested. - Instead of using the RotatingFileHandler for our logs, use our own ReopenableFileHandler, which only minimally derives from FileHandler and implements a reopen() method. I think it's generally better to leave file rotation to external tools such as logrotate. - Remove some Python 2.1 compatibility stuff. - Ignore .mo files in messages/vi/LC_MESSAGES
* Fix a couple of typos/oversights in Barry's type and logging changes.msapiro2006-04-192-1/+2
|
* Added Date and Message-ID headers to the confirm replymsapiro2006-04-171-0/+2
| | | message that Mailman adds to the admin notification.
* MailList.__load(): Fix the sense of a test broken by the previous commit.bwarsaw2006-04-172-3/+3
| | | | Mailman/Makefile.in: Remove Logging subdirectory.
* Remove most uses of the types module, in favor of isinstance checks againstbwarsaw2006-04-1723-98/+71
| | | | | | the builtin types. Two still remain: a check against ClassType and a check against MethodType. Also, fix some hinky type comparisons to use isinstance() consistently.
* - Convert all logging to Python's standard logging module. Get rid of allbwarsaw2006-04-1758-911/+547
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | traces of our crufty old Syslog. Most of this work was purely mechanical, except for: 1) Initializing the loggers. For this, there's a new module Mailman/loginit.py (yes all modules from now on will use PEP 8 names). We can't call this 'logging.py' because that will interfere with importing the stdlib module of the same name (can you say Python 2.5 and absolute imports?). If you want to write log messages both to the log file and to stderr, pass True to loginit.initialize(). This will turn on propagation of log messages to the parent 'mailman' logger, which is set up to print to stderr. This is how bin/qrunner works when not running as a subprocess of mailmanctl. 2) The driver script. I had to untwist the StampedLogger stuff and implement differently printing exceptions and such to log/error because standard logging objects don't have a write() method. So we write to a cStringIO and then pass that to the logger. 3) SMTPDirect.py because of the configurability of the log messages. This required changing SafeDict into a dict subclass (which is better than using UserDicts anyway -- yay Python 2.3!). It's probably still possible to flummox things up if you change the name of the loggers in the SMTP_LOG_* variables in mm_cfg.py. However, the worst you can do is cause output to go to stderr and not go to a log file. Note too that all entry points into the Mailman system must call Mailman.loginit.initialize() or the log output will go to stderr (which may occasionally be what you want). Currently all CGIs and qrunners should be working properly. I wish I could have tested all code paths that touch the logger, but that's infeasible. I have tested this, but it's possible that there were some mistakes in the translation. - Mailman.Bouncers.BounceAPI.Stop is a singleton, but not a class instance any more. - True/False code cleanup, PEP 8 import restructuring, whitespace normalization, and copyright year updates, as appropriate.
* Now that Python 2.3 is the minimum requirement for Mailman 2.2:bwarsaw2006-04-1537-455/+227
| | | | | | | | | | | - Remove True/False binding cruft - Remove __future__ statements for nested scopes - Remove ascii_letters import hack from Utils.py - Remove mimetypes.guess_all_extensions import hack from Scrubber.py - In Pending.py, set _missing to object() (better than using []) Also, update copyright years where appropriate, and re-order imports more to my PEP 8 tastes. Whitespace normalize.
* Now that we've converted from CVS to Subversion, remove CVS cruft frombwarsaw2006-04-1510-12/+0
| | | | | the trunk. This serves also to test write permission to the svn repository, and tests email notifications.
* Fix XSS bug: Thanks Moritz Naumann. (CVE-2006-1512)tkikuchi2006-04-041-2/+3
|
* Recognize more bounces - DSN.py, Qmail.py and SimpleMatch.pymsapiro2006-04-043-3/+19
|
* Added bounce tests. Updated bounce recognizers to pick up a few more.msapiro2006-03-242-1/+21
|
* Added missing import of Errors module.msapiro2006-03-201-0/+1
|
* Added a new list attribute 'subscribe_auto_approval' which is a list of ↵msapiro2006-03-185-11/+45
| | | | | | | email addresses and regular expressions matching email addresses whose subscriptions are exempt from admin approval. RFE 403066.
* Fixed VERP_CONFIRM_REGEXP to accommodate 'broken' MUAs that add themsapiro2006-03-181-2/+6
| | | | local_part of the From: address as a 'real name' in the To: header when replying.
* Improved fix for bug 1275856 to return host part of DEFAULT_URL if any frommsapiro2006-03-181-7/+5
| | | | get_domain() if VIRTUAL_HOST_OVERVIEW off.
* Fixed long standing bug (1275856) - get_domain() returned DEFAULT_EMAIL_HOSTmsapiro2006-03-121-3/+8
| | | | instead of DEFAULT_URL_HOST if VIRTUAL_HOST_OVERVIEW was off.
* Fixed long standing error - subscribe log 'new' entry reversed name and email.msapiro2006-03-121-1/+1
|
* Add test in BounceRunner for non-fatal, VERPed bounce. Bug 1421285.msapiro2006-03-091-1/+5
|
* Preparing for email 3.0/4.0. get_type() -> get_content_type() etc.tkikuchi2006-03-079-14/+15
|
* Changed email package to 2.5.7. Backed out workaround set_payload() methodmsapiro2006-03-061-12/+1
| | | | from Message.py
* Updated SimpleWarning to return Stop. Updated SimpleMatch to catch a few moremsapiro2006-03-062-3/+17
| | | | Added some more test cases.
* Added some more bounce recognition to SimpleMatch and changed the logicmsapiro2006-03-031-12/+28
| | | | | | | 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.