aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add True/False compatibility for older Pythons. Closes SF bug #955381.bwarsaw2004-05-181-0/+6
|
* Set us up for 2.1.6bwarsaw2004-05-181-3/+3
|
* 2.1.5 final.bwarsaw2004-05-151-3/+3
|
* _oneloop(): Switchboard.dequeue() can't really return Nones for msg or msgdatabwarsaw2004-05-151-25/+29
| | | | | any more (they were error signals in the previous switchboard implementation), so simplify the loop. We can't have 'lost data files'.
* main(): Add discard checkbox above the last submit button too.bwarsaw2004-04-301-0/+5
|
* 2.1.5c2bwarsaw2004-04-251-2/+2
|
* Turkish language support by Kerem Erkan.bwarsaw2004-04-251-0/+1
|
* main(), process_form(): Due to popular demand, added SF patch # 810675 whichbwarsaw2004-04-251-1/+13
| | | | | adds a "discard all messages marked Defer" for quicker admindb maintenance. Patch by Eddie Kohler, SF id xexd.
* 2.1.5 release candidate 1.bwarsaw2004-04-241-2/+2
|
* process(): Disallow multiple password retrievals. Patch by Tokio Kikuchi.bwarsaw2004-04-241-1/+5
|
* Load(): Improve the log message.bwarsaw2004-03-041-1/+1
|
* Load(): Only gain the lock and attempt to repair the config file if file ==bwarsaw2004-03-041-9/+11
| | | | plast or file == dlast.
* Load(), __fix_corrupt_pckfile(): We should only rotate the corrupt picklebwarsaw2004-03-041-8/+21
| | | | files when the list lock is held.
* Load(): Another shutil EPERM elimination patch; os.remove any existing safetybwarsaw2004-02-291-3/+15
| | | | file.
* Load(): Before creating the .safety file, move any existing .pck or .db filebwarsaw2004-02-291-0/+10
| | | | | to a .corrupt file, since it could not be read. This should eliminate the shutil EPERM exceptions.
* process_request(): Catch base class of EmailAddressError so eitherbwarsaw2004-02-291-2/+2
| | | | MMBadEmailError or MMHostileAddress will be caught.
* __load(): Catch unpicking errors too.bwarsaw2004-02-291-1/+1
|
* main(): The list lock must be held in order to pend unsubscription requests.bwarsaw2004-02-291-12/+13
|
* __repr__(): Watch out for Unicode fullname or password.bwarsaw2004-02-291-4/+14
|
* __handlepost(): sender or subject could be Header instances, so str-ify thembwarsaw2004-02-291-2/+2
| | | | before trying to call replace on them for the rejection notice substitution.
* 2.1.5 beta 1bwarsaw2004-02-291-3/+3
|
* Bump to alpha 4.bwarsaw2004-02-221-2/+2
|
* __repr__(): Added for better logging.bwarsaw2004-02-221-1/+4
|
* Much refactoring to improve bounce processing. The basic change moves thebwarsaw2004-02-221-63/+41
| | | | | | | | | | | | | | | | | | | | | queuing of bounce events out of the process's memory and into a 'bounce event' file, essentially consisting of a stream of pickles. Every once in a while the qrunner wakes up and processes the event file, which is named to be specific to each qrunner instance. The actually processing is factored out into a mixin class which is now subclassed by both the BounceRunner and OutgoingRunner classes (since the latter has to handle SMTP rejects as bounces). Specific changes here include: OutgoingRunner: Use BounceMixin as a base class. We can now get rid of the whole _permfailures and _permfail_counter stuff since we'll just use the mixin class as the basic logic for bounce handling. _dispose(): Simplified since we can just use _queue_bounces() when a message is rejected at SMTP time, although if that triggers a probe, the attached message will be the one for which delivery was attempted since there really isn't any bounce. Also, make this method handle probe bounces.
* Much refactoring to improve bounce processing. The basic change moves thebwarsaw2004-02-221-57/+119
| | | | | | | | | | | | | | | | | | | | | queuing of bounce events out of the process's memory and into a 'bounce event' file, essentially consisting of a stream of pickles. Every once in a while the qrunner wakes up and processes the event file, which is named to be specific to each qrunner instance. The actually processing is factored out into a mixin class which is now subclassed by both the BounceRunner and OutgoingRunner classes (since the latter has to handle SMTP rejects as bounces). Specific changes include: REGISTER_BOUNCES_EVERY: Promote to a Defaults.py.in variable. BounceMixin: Mixin class for handling the basics of bounce event queuing, periodic processing, and registering, as well as cleanup. It also contains a _probe_bounce() method for handling bounces of the probe message (which cause an immediate disable). BounceRunner: Add BounceMixin as a base class.
* sendProbe(): Add key 'probe_token' to the metadata. This is used by thebwarsaw2004-02-221-2/+4
| | | | | OutgoingRunner for easier handling of probe messages which are rejected at SMTP time.
* REGISTER_BOUNCES_EVERY: Promoted to a global configuration variable.bwarsaw2004-02-221-0/+3
|
* InitTempVars(): Initialize _full_path to the empty string, not None.bwarsaw2004-02-191-1/+1
|
* _escape(): Everything except the 'info' variable gets the normal web-safebwarsaw2004-02-171-8/+19
| | | | | escaping. 'info' sanitizes just <script> and </script> tags. This partially closes bugs 870028 and 881369.
* handleForm(): Call out to self._escape() to make any entered data web-safe.bwarsaw2004-02-171-3/+7
| | | | | This allows subclasses to override where necessary. The default implementaton is to call Utils.websafe().
* main(): It's possible that if you're logged in as the list admin, you can getbwarsaw2004-02-171-3/+5
| | | | | | | to the end of the function trying to present the options page for a non-existant user, causing a traceback. At the last second, do one more isMember() check and return the loginpage if the address isn't a member of the list.
* Rewritten, simplified, and made more bullet-proof. The file read/written isbwarsaw2004-02-171-77/+66
| | | | | | | | | | | | | | | | | | | now a pickle instead the less secure marshal. Other changes: __filename(): Removed. We'll use the instance variable __filename instead. __opendb(): Simplified by removing upgrade logic largely duplicated in _UpdateRecords(). __closedb(): Use pickles and the __filename instance variable. __request_id(): Removed this since it wasn't thread-safe. It didn't require the acquisition of the list lock. Replaced with __nextid() which not only asserts the list lock, but also ensures that the id returned will be unique. HoldMessage(): Always flush and fsync the heldmsg file. Various other code improvement.
* enqueue(), dequeue(), files(): Implementation of new, more efficient,bwarsaw2004-02-101-226/+37
| | | | | | | | | | | one-file-per-queued-message architecture. The message object and metadata dictionary are now written to the same .pck file -- in that order -- instead of to separate files which were more complicated to manage. dequeue() especially simplifies considerably. Also, get rid of the special _Switchboard hack, as well as the MarshalSwitchboard, ASCIISwitchboard, and BSDDBSwitchboard implementations. Also get rid of the DumperSwitchboard class.
* _dispose(), verp_probe(): Add logic to parse and handle probe bounce verps.bwarsaw2004-02-101-1/+55
|
* hold_for_approval(): Convert to the new pending database interface.bwarsaw2004-02-101-2/+2
|
* main(), subscription_cancel(), unsubscription_cancel(), addrchange_cancel()bwarsaw2004-02-101-17/+36
| | | | | | | | addrchange_confirm(), heldmsg_cancel(), heldmsg_confirm(), reenable_confirm(): Convert to the new pending database interface. expunge(): A helper function which ensures that the list is locked before expunging an item from the confirmation database.
* Bump the version number to 2.1.5a3. Also bump the PENDING_FILE_SCHEMA_VERSIONbwarsaw2004-02-101-4/+4
| | | | to indicate that we're now saving things in a per-list database.
* Simplification and re-implementation as a per-list (and thus MailList mixinbwarsaw2004-02-101-231/+132
| | | | class), pending database.
* MailList: Add the Pending.Pending class to the list of base classes.bwarsaw2004-02-101-11/+10
| | | | | InviteNewMember(), AddMember(), ChangeMemberAddress(), ProcessConfirmation(), ConfirmUnsubscription(): Convert to the new pending database interface.
* sendProbe(): Method implementing the actual sending of the probe message to abwarsaw2004-02-101-1/+39
| | | | member whose bounce score is greater than the threshold.
* VERP_PROBE_FORMAT, VERP_PROBE_REGEXP: A new template and pattern for handlingbwarsaw2004-02-101-32/+7
| | | | | | | | | | | | the probe verps, which are different than the normal message verps because the former has a token hash in the address extension. METAFMT_MARSHAL, METAFMT_BSDDB_NATIVE, METAFMT_ASCII, METADATA_FORMAT: Remove all this since they don't make sense with the new rewritten single-file qrunner architecture. PENDINGDB_LOCK_TIMEOUT, PENDINGDB_LOCK_ATTEMPTS: These are no longer necessary given the new per-list pending database.
* Hook in the new bounce processing actions. Specifically,bwarsaw2004-02-101-7/+10
| | | | | | | | | | | registerBounce(): When the bounce score is higher than the threshold, instead of disabling the address right way, we send a probe message, then we reset the bounce score to zero. disableBouncingMember(): Use the new pending db interface and update the log messages. sendNextNotification(): Use the new pending db interface.
* _dispose(): Fix typo in comparison to site-list owner address. Fix given bybwarsaw2004-01-231-2/+2
| | | | SHIGENO Kazutaka.
* updated commentsbwarsaw2004-01-221-1/+3
|
* bulkdeliver(): Add a comment about recent alternative interpretations forbwarsaw2004-01-221-1/+4
| | | | munging Sender and Errors-To headers.
* whitespace normalizationbwarsaw2004-01-201-3/+3
|
* GetConfigInfo(): Elaborate on the details for bounce_score_threshold.bwarsaw2004-01-201-2/+14
|
* __checkone(): Patch 869644, ignore NotAMemberError that can get raisedbwarsaw2004-01-031-2/+5
| | | | | | from AuthContextInfo() when old cookie data is for someone no longer a member of the mailing list. Closes SF bug # 869647. Bug and patch by Stephan Berndts.
* Bump version number, post release.bwarsaw2004-01-021-5/+5
|
* Prep for 2.1.4 final.bwarsaw2003-12-311-3/+3
|