summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* __oneloop(): Stick the queue directory in the message metadata so thatbwarsaw2002-03-111-0/+2
| | | | we can unshunt it to the correct queue.
* process(): A slight improvement for robustness. Now we assign thebwarsaw2002-03-111-1/+14
| | | | | | | `undelivered' key in the message metadata to the list of chunks the message will be sent to. If something breaks during delivery of this message, the list of undelivered recipients will be saved with the metadata, and should be restored when the message is unshunted.
* hold_for_approval(): When crafting the notification message destinedbwarsaw2002-03-111-0/+2
| | | | | for the list owner, unset the charset parameter on the multipart/mixed Content-Type: header.
* main(): Fix the warnings for "one last digest", "must digest", andbwarsaw2002-03-101-3/+10
| | | | "can't digest". Noticed by Marc MERLIN.
* CanonicalizeUserOptions(): Two changes. First, when migratingbwarsaw2002-03-091-0/+9
| | | | | | | | | | | user_options, skip the key if its not a member. This can happen when upgrading legacy databases because I believe there were bugs long ago that caused some keys to appear in user_options but not in members or digest_members. Also, we now have a mini-version id for the user_options stuff so CanonicalizeUserOptions() won't try to run every time some other part of the schema changes.
* ScanMessages(): Provide the name of the module being processed in thebwarsaw2002-03-091-1/+6
| | | | syslog error message.
* process(): Fixed the calculation of whether to VERP or not.bwarsaw2002-03-091-9/+15
| | | | Previously we were forgetting about VERP_PERSONALIZED_DELIVERIES.
* A substantial rewrite to support deferring the final stitching of thebwarsaw2002-03-091-107/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | message until SMTP delivery time. This makes VERPish delivery much more efficient. One casualty is that threaded delivery (which was always marked as experimental) is now gone. It might be resurrected as a separate delivery module -- possibly called SMTPThreaded.py -- if there is enough pressure. Specific changes: Connection: New class which abstracts away the handling of disconnect and re-establishment of a connection to the SMTP server in response to the new SMTP_MAX_SESSIONS_PER_CONNECTION setting. process(): Streamline this function now that threaded delivery is gone, but add in the calculation of two types of single-threaded delivery: verpdeliver() for any VERP or personalized delivery, and bulkdeliver() for delivery of an identical copy to a set of recipients. Note that verpdeliver() calls bulkdeliver() after setting up the per-recipient specializations. pre_deliver(), threaded_deliver(): Gone; a victim of threaded delivery removal. verpdeliver(): New function which takes a list of recipients and crafts an in-memory copy of the message to be specialized and delivered to exactly one recipient. bulkdeliver(): Deliver an identical copy to a list of recipients. That list may be of length 1 <wink>.
* We're removing the entire Personalize.py module. It's no longer needbwarsaw2002-03-091-65/+0
| | | | as its functionality has been subsumed by SMTPDirect.py
* process(): Largely unchanged since this still does the job ofbwarsaw2002-03-091-1/+1
| | | | | | decorating a message with its headers and footers. The only change is that the msgdata key is now a directive instead of state (i.e. `personalized' -> `personalize').
* process(): To support VERP+personalizing in SMTPDirect.py, we nobwarsaw2002-03-091-7/+1
| | | | longer munge the Sender: or Errors-To: headers in this module.
* Two changesbwarsaw2002-03-091-2/+7
| | | | | | | | | | | | | | | | | | | | | | - We need to make VERPish delivery much more efficient from a disk utilization pov. To that end, we no longer create a new copy on the disk of every message for every recipient. Instead we'll stitch the message together in memory as we're stuffing it down the SMTP socket. GLOBAL_PIPELINE: Don't call Decorate from the pipeline since we'll need to defer this as late as possible. SMTPDirect.py will call it now in the proper context (Decorate.py still does largely the same job as before though). Also, don't call Personalize. This module will go away as its functionality has been subsumed into SMTPDirect.py - Second change: Some MTAs have a limit on the number of SMTP sessions they'll allow on a single connection. SMTP_MAX_SESSIONS_PER_CONNECTION is the new variable that controls how many sessions Mailman will stuff down the socket before it tears it down and re-connects.
* A Majordomo -> Mailman 2.0 conversion script by Heiko Rommel. Thisbwarsaw2002-03-081-0/+691
| | | | probably needs porting to MM2.1.
* Updates to the web pages.bwarsaw2002-03-085-7/+15
| | | | | | - New Finnish translator - Fixed urls in the FAQ - Updates to TODO
* process(): Application of Jason Mastaler's patch #509386 which loosensbwarsaw2002-03-071-9/+10
| | | | | | | | | | | | | | | | | | | the membership test to check additional headers. I've modified Jason's patch in the following ways: - get_author() -> get_senders() even though I suggested the former. ;) I'd like to eventually deprecate get_sender() so this will be its eventual replacement. - Some implementation details. do_discard(): Changed the message that gets sent with auto-discarded messages. It might have been discarded because of the default non-member action, in which case the old message wasn't really accurate. I don't think the reason for discarding is all that important right now. Translators: beware!
* get_senders(): Application of Jason Mastaler's patch #509386 whichbwarsaw2002-03-071-0/+43
| | | | | | | | | | | | | | | loosens the membership test to check additional headers. I've modified Jason's patch in the following ways: - get_author() -> get_senders() even though I suggested the former. ;) I'd like to eventually deprecate get_sender() so this will be its eventual replacement. - added an optional `headers' argument which defaults to None, meaning the list of headers we agreed on previously. This allows you to pass in the exact headers you want to consult (and their order). - Some implementation details.
* _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.
* Marc MERLIN points out that Debian has a different activation procedure.bwarsaw2002-03-071-0/+6
|
* Marc MERLIN's update for the wrapper renaming.bwarsaw2002-03-071-1/+1
|
* whymatches(): Add a comment which explains the intended semantics.bwarsaw2002-03-071-1/+3
|
* Actually, Marc's patch was closer than mine.bwarsaw2002-03-071-37/+40
|
* main(): Catch any IndexError exceptions for the args.pop() calls.bwarsaw2002-03-071-36/+40
| | | | These mean usage errors.
* Fix the links in the Stripmime and Demime urls.bwarsaw2002-03-071-7/+10
|
* Integrated suggestions from Marc Merlin <marc@merlins.org>wilane2002-03-061-2/+2
| | | | Thanks Marc.
* Marc MERLIN's --fromall patch (slightly modified). This allows you tobwarsaw2002-03-061-24/+51
| | | | | remove a particular set of addresses from every mailing list at the site.
* 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.
* Added Finnish (fi).bwarsaw2002-03-062-2/+2
|
* LC_DESCRIPTIONS: Added Finnish.bwarsaw2002-03-061-0/+1
|
* Finnish catalog by Pekka Haavisto.bwarsaw2002-03-062-0/+7924
|
* Finnish README by Pekka Haavisto.bwarsaw2002-03-061-0/+12
|
* New Finnish templates by Pekka Haavisto.bwarsaw2002-03-0630-0/+1155
|
* statusp(): Renamed to whymatches() for clarity.bwarsaw2002-03-061-3/+3
| | | | | main(): Forgot to check the value of the nomail flag when filtering out disableds.
* Bump DATA_FILE_VERSION to some insanely high number <60 wink>.bwarsaw2002-03-061-1/+1
|
* `nodupes option' translated.wilane2002-03-061-0/+7
|
* `no copies option' translated.wilane2002-03-061-40/+64
|
* update_qfiles(): Make sure the qfiles/in directory exists before webwarsaw2002-03-051-1/+5
| | | | try to move files into it.
* _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.
* The start of a Site-wide customization module.bwarsaw2002-03-050-0/+0
|
* intermediatebwarsaw2002-03-051-0/+107
|