aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman (unfollow)
Commit message (Collapse)AuthorFilesLines
2004-04-252.1.5c2bwarsaw1-2/+2
2004-04-25Turkish language support by Kerem Erkan.bwarsaw1-0/+1
2004-04-25main(), process_form(): Due to popular demand, added SF patch # 810675 whichbwarsaw1-1/+13
adds a "discard all messages marked Defer" for quicker admindb maintenance. Patch by Eddie Kohler, SF id xexd.
2004-04-242.1.5 release candidate 1.bwarsaw1-2/+2
2004-04-24process(): Disallow multiple password retrievals. Patch by Tokio Kikuchi.bwarsaw1-1/+5
2004-03-04Load(): Improve the log message.bwarsaw1-1/+1
2004-03-04Load(): Only gain the lock and attempt to repair the config file if file ==bwarsaw1-9/+11
plast or file == dlast.
2004-03-04Load(), __fix_corrupt_pckfile(): We should only rotate the corrupt picklebwarsaw1-8/+21
files when the list lock is held.
2004-02-29Load(): Another shutil EPERM elimination patch; os.remove any existing safetybwarsaw1-3/+15
file.
2004-02-29Load(): Before creating the .safety file, move any existing .pck or .db filebwarsaw1-0/+10
to a .corrupt file, since it could not be read. This should eliminate the shutil EPERM exceptions.
2004-02-29process_request(): Catch base class of EmailAddressError so eitherbwarsaw1-2/+2
MMBadEmailError or MMHostileAddress will be caught.
2004-02-29__load(): Catch unpicking errors too.bwarsaw1-1/+1
2004-02-29main(): The list lock must be held in order to pend unsubscription requests.bwarsaw1-12/+13
2004-02-29__repr__(): Watch out for Unicode fullname or password.bwarsaw1-4/+14
2004-02-29__handlepost(): sender or subject could be Header instances, so str-ify thembwarsaw1-2/+2
before trying to call replace on them for the rejection notice substitution.
2004-02-292.1.5 beta 1bwarsaw1-3/+3
2004-02-22Bump to alpha 4.bwarsaw1-2/+2
2004-02-22__repr__(): Added for better logging.bwarsaw1-1/+4
2004-02-22Much refactoring to improve bounce processing. The basic change moves thebwarsaw1-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.
2004-02-22Much refactoring to improve bounce processing. The basic change moves thebwarsaw1-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.
2004-02-22sendProbe(): Add key 'probe_token' to the metadata. This is used by thebwarsaw1-2/+4
OutgoingRunner for easier handling of probe messages which are rejected at SMTP time.
2004-02-22REGISTER_BOUNCES_EVERY: Promoted to a global configuration variable.bwarsaw1-0/+3
2004-02-19InitTempVars(): Initialize _full_path to the empty string, not None.bwarsaw1-1/+1
2004-02-17_escape(): Everything except the 'info' variable gets the normal web-safebwarsaw1-8/+19
escaping. 'info' sanitizes just <script> and </script> tags. This partially closes bugs 870028 and 881369.
2004-02-17handleForm(): Call out to self._escape() to make any entered data web-safe.bwarsaw1-3/+7
This allows subclasses to override where necessary. The default implementaton is to call Utils.websafe().
2004-02-17main(): It's possible that if you're logged in as the list admin, you can getbwarsaw1-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.
2004-02-17Rewritten, simplified, and made more bullet-proof. The file read/written isbwarsaw1-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.
2004-02-10enqueue(), dequeue(), files(): Implementation of new, more efficient,bwarsaw1-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.
2004-02-10_dispose(), verp_probe(): Add logic to parse and handle probe bounce verps.bwarsaw1-1/+55
2004-02-10hold_for_approval(): Convert to the new pending database interface.bwarsaw1-2/+2
2004-02-10main(), subscription_cancel(), unsubscription_cancel(), addrchange_cancel()bwarsaw1-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.
2004-02-10Bump the version number to 2.1.5a3. Also bump the PENDING_FILE_SCHEMA_VERSIONbwarsaw1-4/+4
to indicate that we're now saving things in a per-list database.
2004-02-10Simplification and re-implementation as a per-list (and thus MailList mixinbwarsaw1-231/+132
class), pending database.
2004-02-10MailList: Add the Pending.Pending class to the list of base classes.bwarsaw1-11/+10
InviteNewMember(), AddMember(), ChangeMemberAddress(), ProcessConfirmation(), ConfirmUnsubscription(): Convert to the new pending database interface.
2004-02-10sendProbe(): Method implementing the actual sending of the probe message to abwarsaw1-1/+39
member whose bounce score is greater than the threshold.
2004-02-10VERP_PROBE_FORMAT, VERP_PROBE_REGEXP: A new template and pattern for handlingbwarsaw1-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.
2004-02-10Hook in the new bounce processing actions. Specifically,bwarsaw1-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.
2004-01-23_dispose(): Fix typo in comparison to site-list owner address. Fix given bybwarsaw1-2/+2
SHIGENO Kazutaka.
2004-01-22updated commentsbwarsaw1-1/+3
2004-01-22bulkdeliver(): Add a comment about recent alternative interpretations forbwarsaw1-1/+4
munging Sender and Errors-To headers.
2004-01-20whitespace normalizationbwarsaw1-3/+3
2004-01-20GetConfigInfo(): Elaborate on the details for bounce_score_threshold.bwarsaw1-2/+14
2004-01-03__checkone(): Patch 869644, ignore NotAMemberError that can get raisedbwarsaw1-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.
2004-01-02Bump version number, post release.bwarsaw1-5/+5
2003-12-31Prep for 2.1.4 final.bwarsaw1-3/+3
2003-12-27show_pending_subs(): The address in the pending database may be a unicode, butbwarsaw1-1/+3
it must be ascii. Coerce to an 8-bit string so the bogus u'' doesn't show up. Closes SF 862906.
2003-12-27show_helds_overview(), show_post_requests(): Another part of TK'sbwarsaw1-2/+13
patch # 865661. Encode the subject header in the list's preferred character set and make sure it is all on one line.
2003-12-26hold_for_approval(): Another part of TK's patch # 865661. Encode thebwarsaw1-2/+7
subject header in the list's preferred character set and make sure it is all on one line, when sent back to the original author.
2003-12-26oneline(): Another part of TK's patch # 865661. This one adds abwarsaw1-0/+15
utility function that returns a header in an i18n-safe way such that it is guaranteed to span exactly one line.
2003-12-26Article.__init__(): Provide a default charset if the message doesn'tbwarsaw1-3/+7
have one. Part of TK's patch #865661. __processbody_URLquote(): One chunk of TK's patch # 865661 for improving the i18n of the 'at' substitutions for archives.