| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
has dots in it, so treat this the same as an ImportError.
|
| |
|
|
|
| |
calculating the verp header, we log a message and skip this recipient,
because we can't possibly deliver to this person via verp.
|
| |
|
|
|
|
|
| |
which does not accept the strict flag to mimetypes.guess_type().
main(): If guess_type() returns None, use text/html so that the
private archive summary page displays correctly.
|
| |
|
|
|
|
|
|
| |
cookie problem. We can't use the Cookie module to parse the cookie
because it's too strict in what it accepts. Parse it ourselves using
re.split().
Should close SF bug # 664466.
|
| |
|
|
| |
text. You can't splitlines None.
|
| |
|
|
|
| |
interpolation, log a message to logs/error so it's a little easier to
debug.
|
| | |
|
| | |
|
| |
|
|
| |
it's one of the valid language.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
http://online.securityfocus.com/archive/1/308154
Closes SF bug # 674533 by Tokio Kikuchi
Specifically,
main(), loginpage(): Check the `user' cgi var for validity and print
an innocuous (and non-privacy leaking) message if it fails that test.
Don't pass the entire cgidata object to loginpage; instead give just
the language argument which is all the latter function uses.
Also, be sure to use `safeuser' everywhere we print a message to the
results page. safeuser is the escaped version of the `user' cgi var.
Unrelated:
main(): Sanity check the `language' cgi variable and use the mailing
lists's preferred language if it is deliberately invalid.
|
| |
|
|
| |
successfully called makedirs().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've modified it though, so any brokenness is my fault. Specifically,
KEEP: Removed in favor of Default.py.in's MIME_DIGEST_KEEP_HEADERS.
process(): Use Generator.flatten() instead of the deprecated __call__
syntax.
send_i18n_digest(): Make sure things like the Subject headers in the
toc are coerced to the language the digest is being sent in (i.e. the
list's preferred language). Make sure the masthead, header and footer
attachments also get the right matching charset attribute. Make sure
that the username extracted from the From header is also in the right
character set. Use the Header object for proper wrapping of the
Subject lines in the toc, not Utils.wrap() which was broken and not
i18n aware.
Add a blank line between entries in the toc (might be controversial).
Send messages in the plain text digest through the scrubber so
attachments (and their MIME goo) don't mess up the plain text digests.
lheader(): New convenience function.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
even after adding the prefix. Specifically,
uheader(): Accepts a continuation_ws parameter which is passed
straight through to the Header constructor call.
prefix_subject(): Split the pre-prefixed Subject: header into lines
and get the continuation_ws character from the first continuation line
(it won't matter if there is no continuation line). Pass this to
uheader().
|
| |
|
|
|
|
|
|
| |
so I've renamed it to PLAIN_DIGEST_KEEP_HEADERS.
MIME_DIGEST_KEEP_HEADERS: Added this for use in ToDigest.py -- it's
essentially a copy of the KEEP module global from that module (which
will be removed).
|
| |
|
|
|
|
| |
this better.
Whitespace normalization.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
guess_all_extensions(): Python 2.1 doesn't have mimetypes.common_types.
guess_extension(): all could be empty.
process(): Need separate try/except clauses for the conversion to
unicode, and the conversion to 8-bit strings.
Also, use endswith() instead of t[-1] to be more robust against empty
strings.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to fix the other scrubber bugs, and use better Message API.
Specifically,
guess_extension(): Use mimetypes.guess_all_extensions() to try to find
a match between the claimed extension and the claimed content-type.
If they match, then just believe it, otherwise, use the first
extension guessed. We can still get weird ones because mimetypes has
no notion of a priority of mappings from extension to type.
process(): Everywhere we set a part's payload to the "scrubbed"
message text, first delete the Content-Type header, allowing
set_payload() with a character set to set the header, along with the
proper charset parameter.
|
| |
|
|
| |
normalization.
|
| |
|
|
| |
deprecated .get_type() method.
|
| |
|
|
| |
the year is weird (e.g. 1969). Also, code cleanup.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
message.get_param(). Such beasts are RFC 2231 charsets which need to
be converted to unicode.
|
| |
|
|
|
|
|
|
|
| |
header to the headers and footers parts as a hint to persnickety
clients (not mentioning Outlook here) that the text should be
displayed inline instead of as attachments.
It does no harm so even if it doesn't completely fix the problem it
sounds like a good idea.
|
| |
|
|
|
| |
system call) during the conn.sendmail() call. This just sets the
message up to retry later.
|
| |
|
|
|
|
| |
code which would delete any list with a matching prefix
(i.e. "bin/rmlist foo" would also delete the stanza for "foo-one" and
"foo-two").
|
| |
|
|
|
|
|
|
|
|
|
|
| |
"you are already using that email address" message if the newaddress
matches the case-preserved (subscribed) address.
Also, in the set_address section, if cpuser is None, set it to the the
user address, since that's what we'll use now as the old address in
the ChangeMemberAddress() call.
This and related changes should fix problems when the address we're
changing to differs for the current address by case only.
|
| | |
|
| |
|
|
|
|
|
| |
done. First remove the old member, then add the new member. Also fix
the setting of user options so that this is done on the newaddress
(lowercased). This should avoid MMAlreadyAMember errors when the
address changes by case only.
|
| |
|
|
|
|
|
|
|
|
| |
global change.
ApprovedChangeMemberAddress(): Don't worry about trying to reduce the
amount of work by testing on isMember(). This doesn't work anyway
when we're changing an address for case only. Just do the
changeMemberAddress() call and be done with it. Same goes for when
deciding whether to do the change in the other lists.
|
| | |
|
| | |
|
| |
|
|
|
| |
correct character set for the matching language. Closes SF bug
#659157.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
point where the i18n and doc languages are set. Also, get the
languages using GetLanguageDescr() so that the language pull down list
is also in the correct language.
Fixes SF #658213 reported and patches by Daniel Buchmann.
subscription_cancel(): Set the language to the user's preferred so
that the cancel message is given in the right language.
subscription_confirm(): Set the i18n and doc languages to the language
from the form so it also shows up in the correct language.
|
| |
|
|
|
|
|
|
| |
ProcessConfirmation(): In the Pending.SUBSCRIPTION section, move the
concatenation of the context with the userdesc to before we extract
the addr, fullname, password, digest, and lang. This is so we can
correctly pick up any changes made in the confirmation page, e.g. the
user's preferred language.
|
| |
|
|
|
|
| |
unsubscribe them, and then pass this to the SendUnsubscribeAck()
call. This is so the notification message can get sent in the correct
language -- i.e. the user's language while they were a member.
|
| |
|
|
|
| |
argument, because by the time we get here, the member has already been
unsubscribed.
|
| |
|
|
| |
lt should use iso-8859-13
|
| |
|
|
| |
in email obscuring in the body of the message.
|
| | |
|
| | |
|
| |
|
|
| |
messages when ARCHIVER_OBSCURES_EMAILADDRS is true.
|
| |
|
|
|
|
|
| |
If a non-member sends a message which is held, but then the sender
subsequently subscribes to the list, a confusing admindb page is
shown. Now we include a message that the sender has since joined the
list.
|
| | |
|
| |
|
|
| |
list's preferred language. Closes SF #629616.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch restores MIME charset capabilities for article archiving in
CVS Mailman. It:
- removes the .charset attribute from articles; all yarticles are
encoded in the list's charset,
- decodes subject and author to Unicode; if this fails, no decoding
(not even MIME) is done to subject and author,
- MIME-decodes the body in the constructor using get_payload, removes
the hand-crafted qp decoding from _get_body,
- Unicode-decodes the body in the constructor if the body's charset
differs from the list's charset,
- fixes processbody_URLquote to always return byte strings (by
escaping the URL also); comparing the old and the new string is no
longer possible since the old string is Unicode and the new string
is a list-encoded byte string.
- changes text archiving to have the archives in the list's encoding,
with unsupported characters 'replace'd
With these changes, I can process the playground archives correctly,
to get mojibake-free pages.
|
| |
|
|
|
|
|
| |
the archiver. Martin says:
- Fixes a bug in the scrubber, where a content-transfer-encoding might
have survived flattening of the message.
|
| | |
|