| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
to indicate that we're now saving things in a per-list database.
|
|
|
|
| |
class), pending database.
|
|
|
|
|
| |
InviteNewMember(), AddMember(), ChangeMemberAddress(), ProcessConfirmation(),
ConfirmUnsubscription(): Convert to the new pending database interface.
|
|
|
|
| |
member whose bounce score is greater than the threshold.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
SHIGENO Kazutaka.
|
| |
|
|
|
|
| |
munging Sender and Errors-To headers.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
it must be ascii. Coerce to an 8-bit string so the bogus u'' doesn't show
up. Closes SF 862906.
|
|
|
|
|
| |
patch # 865661. Encode the subject header in the list's preferred
character set and make sure it is all on one line.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
utility function that returns a header in an i18n-safe way such that
it is guaranteed to span exactly one line.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
of the year).
|
|
|
|
|
|
| |
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 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
archive bloat by deleting the html_body attribute on Article objects.
Closes SF bug #835332.
This only reduces bloat on new articles. See bin/rb-archfix to clean
up older archives.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
process(): Reworked the way we calculate the List-Id header in the
face of i18n descriptions which may need to be quoted (if ASCII and
containing RFC 2822 special chars).
What we do now is RFC 2047 encode just the description part, if there
is one, then use formataddr() to combine that with the email
address-like list identification.
|
|
|
|
|
|
|
|
|
| |
message is originally received and the time the digest is sent. If
the configuration changes by setting ARCHIVE_HTML_SANITIZER to 0, a
DiscardMessage exception can occur during the scrubbing. Catch this
error.
Closes SF #860135 with basic solution by Martin Pool.
|
|
|
|
|
| |
in case there are any special characters (in the RFC 2822) in the
description.
|
| |
|
|
|
|
| |
Mueller.
|
| |
|
|
|
|
|
| |
HeaderParseError, so if that happens just ignore the Subject header for
command purposes.
|
| |
|
|
|
|
| |
header_filter_rules.
|
|
|
|
|
|
| |
process(): When we encode the text, catch ValueError along with UnicodeError
and LookupError. The ValueError can be raised if the charset is the empty
string. Closes SF bug # 834486.
|
|
|
|
|
|
| |
process(): When we encode the text, catch ValueError along with UnicodeError
and LookupError. The ValueError can be raised if the charset is the empty
string. Closes SF bug # 834486.
|
| |
|
|
|
|
| |
handleForm(): Close a very minor, potential CSS hole.
|
|
|
|
|
| |
collects regular expression rules to match against the message's outer
headers, along with the action to take when a match occurs.
|
|
|
|
| |
in the Privacy.py file.
|
|
|
|
| |
when the wrong admin password is given in a confirmation message.
|
|
|
|
| |
Closes SF bug # 816410.
|
|
|
|
|
|
|
|
| |
build the interface from header_filter_rules. Here you can specify a set of
regular expressions to test against a message's (outer) headers. You can also
specify the action to take when a rule matches.
These are available on Privacy->Spam Filters page.
|