summaryrefslogtreecommitdiff
path: root/Mailman
Commit message (Collapse)AuthorAgeFilesLines
...
* _dispose(): Consult bounce_unrecognized_goes_to_list_owner beforebwarsaw2002-03-071-10/+16
| | | | | sending the unrecognized message on to the list owner. In either case, write a log entry to logs/bounce.
* GetConfigCategory(): "Bounce detection" -> "Bounce processing" sincebwarsaw2002-03-071-1/+27
| | | | | | | | this category doesn't really contain any detection configurations. Translators beware! GetConfigInfo(): Added support for bounce_unrecognized_goes_to_list_owner.
* NewVars(): Pick up the new bounce_unrecognized_goes_to_list_ownerbwarsaw2002-03-071-0/+3
| | | | attribute.
* Bump DATA_FILE_VERSION to pick up the newbwarsaw2002-03-071-1/+1
| | | | bounce_unrecognized_goes_to_list_owner attribute.
* DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER: Default value forbwarsaw2002-03-071-0/+4
| | | | bounce_unrecognized_goes_to_list_owner attribute.
* InitVars(): Add bounce_unrecognized_goes_to_list_owner to handlebwarsaw2002-03-071-0/+2
| | | | | whether the list owner gets unrecognized bounces addressed to -bounces and -admin.
* process(): Changed the predicate for the interval-VERPing so that itbwarsaw2002-03-071-3/+3
| | | | | is only attempted if a previous VERP decision hasn't been made. Specifically, I changed "msgdata.get('verp')" to "msgdata.has_key('verp')"
* Whitespace.bwarsaw2002-03-071-1/+0
|
* __verpbounce(): Wrap the extraction of the match object's groups in abwarsaw2002-03-071-4/+10
| | | | | | try/except for IndexError. If the site admin's configured VERP_REGEXP incorrectly, it's better to provide a more useful error message in log/errors and ignore the bounce than to let a traceback percolate up.
* _convertString(): Be slightly less anal about bad substitutionbwarsaw2002-03-071-5/+4
| | | | | | | | variables in the string. First, change the error message and make it a warning instead of an error (we're not going to discard their changes, and besides, it might have been caused by a change to a different property). Second, return the val so the change isn't thrown away.
* GetConfigInfo(): Re-arrange the properties so that msg_header andbwarsaw2002-03-071-13/+17
| | | | | | | msg_footer appear after personalization. This is a minor bogus order dependency so that headers/footers with personalization substitution variables won't get improperly flagged as errors when transitioning from non-personalization to personalization-enabled.
* GetBaseArchiveURL(): Marc MERLIN suggests to tack on the trailingbwarsaw2002-03-071-1/+4
| | | | | slash to avoid an http redirect and second query. However, just add it if it's not already there.
* change_options(): When updating a member's options, take care tobwarsaw2002-03-061-2/+6
| | | | | ignore members that may have been deleted via other means during page hits.
* LC_DESCRIPTIONS: Added Finnish.bwarsaw2002-03-061-0/+1
|
* Bump DATA_FILE_VERSION to some insanely high number <60 wink>.bwarsaw2002-03-061-1/+1
|
* _check_for_virtual_loopaddr(): Fixed this so duplicate virtual hostbwarsaw2002-03-051-5/+22
| | | | | | | | | | loop addresses don't get written. _do_create(): Fixed this so that the check for loop addrs happens after the original files get closed (otherwise they'd be zero lengthed). Also, fixed some formatting issues.
* intermediatebwarsaw2002-03-051-0/+107
|
* Add BAW comments so we know that these modules still need to bebwarsaw2002-03-051-1/+2
| | | | converted to the Site module abstractions.
* Bump copyright years.bwarsaw2002-03-051-1/+1
|
* Patches to help localize where file system layout decisions are made.bwarsaw2002-03-052-7/+4
| | | | | | Don't use PUBLIC_ARCHIVE_FILE_DIR and PRIVATE_ARCHIVE_FILE_DIR directly, use the archive_dir() method or the Site module methods instead.
* Patches to help localize where file system layout decisions are made.bwarsaw2002-03-051-6/+5
| | | | | Utils.list_exists(), Utils.list_names(): Don't use LIST_DATA_DIR directly, instead use Site.get_listpath() and Site.get_listnames().
* Patches to help localize where file system layout decisions are made.bwarsaw2002-03-051-9/+5
| | | | | | | - use fullpath() instead of _full_path directly - Don't os.path.join() up the list path, instead use Site.get_listpath()
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-2/+11
| | | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, process(): Add the X-Mailman-Copy: header if we're personalizing messages and this recipient has decided to not to filter out dups. As far as the public is concerned, "copies" are good, "duplicates" are bad. :)
* intermediatebwarsaw2002-03-051-4/+0
|
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-0/+73
| | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, This module handles filtering out duplicates for explicit recipients. Rewritten by Barry to remove the dup filtering on cross posted messages (Ben may re-port those changes separately).
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-0/+38
| | | | | | | | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. (Note: this patch was rewritten by Barry; parts of it was originally in GUIBase, but that wasn't the right place for it.) Specifically, GetConfigInfo(): Add support for the new_member_options attribute, which is a checkbox that the list owner can use to select the initial values for the member options fields. _setValue(): Handle setting the new_member_options attribute by converting it from a list of option names to a bitfield.
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-3/+23
| | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, main(), options_page(), global_options(): Added support for the nodupes option, including setting nodupes globally.
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-7/+12
| | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, OPTCOLUMNS: Let's parameterize this. membership_options(): Add a column for the nodupes field.
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-0/+2
| | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, NewVars(): Pick up the new_member_options attribute.
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-1/+1
| | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, DATA_FILE_VERSION: Bump to pick up the new_member_options attribute.
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-0/+4
| | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, addNewMember(): Set the member's initial user_options to the list's new_member_options value (if it's non-zero).
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-2/+3
| | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, InitVars(): Add the new_member_options attribute. (Also, untabbification)
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-7/+13
| | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, NODUPES: Description of the nodupes option. option_desc, option_info, options: Add nodupes.
* __handlepost(): Change the moderation header from X-Moderated: tobwarsaw2002-03-051-2/+1
| | | | | X-Mailman-Approved-At: and remove the address of the approver (it's always going to be some alias for the list's moderators or admins).
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-1/+2
| | | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, FormatOptionButton(): Add DontReceiveDuplicates to the list of options names. (Also, untabbification)
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-1/+9
| | | | | | | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, GLOBAL_PIPELINE: Add the AvoidDuplicates handler module. DEFAULT_NEW_MEMBER_OPTIONS: The default value as a bitfield for the new "new_member_options" attribute, which specifies the intial values for various member-specific option flags. DontReceiveDuplicates: Flag for control of the duplicate suppression feature.
* subscription_prompt(), subscription_confirm(): Remove the passwordbwarsaw2002-03-041-12/+19
| | | | | from the subscription confirmation form. The potential for mischief seems high.
* __init__(), _dispose(): Move the import of the DELIVERY_MODULE and thebwarsaw2002-03-041-5/+5
| | | | | | | | extraction of the process() method into the constructor. I don't think it's too much of a burden to have to restart the OutgoingRunner if you want to change the DELIVERY_MODULE (and I suspect it won't change that much anyway). This also seems to help control memory growth in the OutgoingRunner.
* Constructor simplification. Since most derived classes are justbwarsaw2002-03-028-25/+11
| | | | | | | specializing the queue directory, make QDIR a class attribute and have Runner's ctor use that instead of an __init__() argument. This lets us get rid of most of the __init__()'s in the derived classes. (OutgoingRunner still needs one though.)
* __del__(): Remove this because it prevents the garbage collector frombwarsaw2002-03-011-7/+0
| | | | | | | | | | | | | | | | | | | | | being able to free cycles containing MailList objects (see the gc module's documentation under the gc.garbage attribute for details). AFAICT, this has no effect on operations currently, because I believe we are pretty rigorous about unlocking MailList objects explicitly. This has a dramatic effect on memory leakage too, since there were/are cycles containing these fairly heavyweight objects that previously, the garbage collector couldn't free. We'll need to watch carefully for stale locks being left around, because I believe the MailList objects were at least being finalized during process shutdown, but maybe not, and it's a very dubious practice to be depending on anyway. Note: this doesn't completely eliminate the unbounded memory growth, although this in conjunction with shutting off the archiver appears to improve the steady state of memory usage (and perhaps not coincidentally greatly improves performance).
* __init__(), ParseMailCommands(), __makedispatch(): Don't set up thebwarsaw2002-03-011-1/+6
| | | | | | | __dispatch table in the constructor, as this creates some circular references that are unnecessary most of the time. Only when ParseMailCommands() is run and the dispatch table is empty do we create the table. This should only happen in the CommandRunner.
* __repr__(): Give LockFile objects a repr for better debugging.bwarsaw2002-03-011-0/+6
|
* __verpbounce(), __scanbounce(): Use self._open_list() to get abwarsaw2002-03-011-3/+2
| | | | MailList object instead of instantiating one explicitly.
* Remove the import of MailList; this isn't used anywhere in this file.bwarsaw2002-03-011-1/+0
|
* GetConfigInfo(): Ron Jarrell reported a typo.bwarsaw2002-03-011-1/+1
|
* do_discard(): Set up the outer bounce message the same way we set upbwarsaw2002-03-011-5/+4
| | | | | the admin message in other checkins; specifically, we use set_type() to set the Content-Type:
* BounceMessage(): Set up the outer bounce message the same way we setbwarsaw2002-03-011-4/+5
| | | | | up the admin message in __sendAdminBounceNotice(); specifically, we use set_type() to set the Content-Type:
* do_reject(): Better grammar for the reject message.bwarsaw2002-03-011-3/+3
|
* checkperms(): Fix this for the new files aliases and virtual-mailman.bwarsaw2002-03-011-33/+43
|
* HoldUnsubscription(): Pass the list's preferred language to thebwarsaw2002-03-011-14/+20
| | | | | | | | UserNotification constructor so that the admin gets the unsub request notice in the proper language. __refuse(): Be sure to create the Subject: header and other i18n text in the language of the recipient of the rejection message.