aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* show_pending_subs(): The address in the pending database may be a unicode, butbwarsaw2003-12-271-1/+3
| | | | | it must be ascii. Coerce to an 8-bit string so the bogus u'' doesn't show up. Closes SF 862906.
* show_helds_overview(), show_post_requests(): Another part of TK'sbwarsaw2003-12-271-2/+13
| | | | | patch # 865661. Encode the subject header in the list's preferred character set and make sure it is all on one line.
* hold_for_approval(): Another part of TK's patch # 865661. Encode thebwarsaw2003-12-261-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.
* oneline(): Another part of TK's patch # 865661. This one adds abwarsaw2003-12-261-0/+15
| | | | | utility function that returns a header in an i18n-safe way such that it is guaranteed to span exactly one line.
* Article.__init__(): Provide a default charset if the message doesn'tbwarsaw2003-12-261-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.
* Authenticate(): When authenticating AuthUser, wrap thebwarsaw2003-12-261-35/+40
| | | | | | | | | | | | | | | | | | | | | self.authenticateMember() call in a try/except catching and ignoring NotAMemberErrors. The effect of this is that other authcontexts being check will then proceed as normal. This fixes admin login to the private archives, and non-public rosters. Under the old code, if you tried to get into the private archives w/o entering an email address, but using the admin password, you'd be denied access. WebAuthenticate(): Removed the wrapping of .Authenticate() in try/except catching of NotAMemberError, since this should never percolate out now. Also, use True/False everywhere it's appropriate (but not in the cookie code). Original bug and patch by Stephan Berndts. Closes SF bug # 864676 and SF patch # 864674.
* Update version numbers (2.1.4 is definitely going out before the endbwarsaw2003-12-241-3/+3
| | | | of the year).
* adminy_overview(): Richard Barrett's patch # 828811 to reduce listinfobwarsaw2003-12-241-5/+6
| | | | | | and admin cgi process size by not keeping the entire mlist object alive through a reference in the advertised list. Only the information used in the overview is kept.
* listinfo_overview(): Richard Barrett's patch # 828811 to reducebwarsaw2003-12-241-5/+6
| | | | | | listinfo and admin cgi process size by not keeping the entire mlist object alive through a reference in the advertised list. Only the information used in the overview is kept.
* finished_update_article(): Richard Barrett's fix to reduce Pipermailbwarsaw2003-12-241-0/+9
| | | | | | | | | | | | | archive bloat by deleting the html_body attribute on Article objects. Closes SF bug #835332. This is a stub in the base class. _update_thread_index(): Call finished_update_article() when done. store_article(): squirrel away the html_body value when pickling the article. This only reduces bloat on new articles. See bin/rb-archfix to clean up older archives.