From 7ec3c9cbbb0bb8fa4b966a52c51a9c916b8e690e Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Sun, 6 Mar 2016 12:25:06 -0800 Subject: Better logging of DMARC lookup DNS exceptions. --- Mailman/Utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mailman/Utils.py b/Mailman/Utils.py index f821f13a..37336e0d 100644 --- a/Mailman/Utils.py +++ b/Mailman/Utils.py @@ -1267,7 +1267,7 @@ def _DMARCProhibited(mlist, email, dmarc_domain): except DNSException, e: syslog('error', 'DNSException: Unable to query DMARC policy for %s (%s). %s', - email, dmarc_domain, e.__class__) + email, dmarc_domain, e.__doc__) return 'continue' else: # people are already being dumb, don't trust them to provide honest DNS -- cgit v1.2.3 From bf7b73081b17eda9589e5cd6ee0242912633d306 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Sun, 6 Mar 2016 22:27:49 -0800 Subject: Fixed CommandRunner shunting a message with a null byte in the body. --- Mailman/Queue/CommandRunner.py | 3 ++- NEWS | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Mailman/Queue/CommandRunner.py b/Mailman/Queue/CommandRunner.py index c5cc3d94..a9f6f000 100644 --- a/Mailman/Queue/CommandRunner.py +++ b/Mailman/Queue/CommandRunner.py @@ -134,7 +134,8 @@ class Results: handler = sys.modules[modname] # ValueError can be raised if cmd has dots in it. # and KeyError if cmd is otherwise good but ends with a dot. - except (ImportError, ValueError, KeyError): + # and TypeError if cmd has a null byte. + except (ImportError, ValueError, KeyError, TypeError): # If we're on line zero, it was the Subject: header that didn't # contain a command. It's possible there's a Re: prefix (or # localized version thereof) on the Subject: line that's messing diff --git a/NEWS b/NEWS index b4549610..bb41216d 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,9 @@ Here is a history of user visible changes to Mailman. Bug fixes and other patches + - Fixed an issue with CommandRunner shunting a malformed message with a + null byte in the body. (LP: #1553888) + - Don't collapse multipart with a single sub-part inside multipart/signed parts. (LP: #1551075) -- cgit v1.2.3 From b6a4156c595f57d0793bb2ac4bb4e093bd2cc4c7 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Wed, 9 Mar 2016 11:37:20 -0800 Subject: The Brazilian Portugese translation has been updated. --- NEWS | 5 ++ messages/pt_BR/LC_MESSAGES/mailman.po | 157 ++++++++++++++++++++-------------- 2 files changed, 100 insertions(+), 62 deletions(-) mode change 100755 => 100644 messages/pt_BR/LC_MESSAGES/mailman.po diff --git a/NEWS b/NEWS index bb41216d..26596c37 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,11 @@ Here is a history of user visible changes to Mailman. 2.1.22 (xx-xxx-xxxx) + i18n + + - The Brazilian Portugese translation has been updated by Emerson Ribeiro + de Mello. + Bug fixes and other patches - Fixed an issue with CommandRunner shunting a malformed message with a diff --git a/messages/pt_BR/LC_MESSAGES/mailman.po b/messages/pt_BR/LC_MESSAGES/mailman.po old mode 100755 new mode 100644 index 88378134..593c7c40 --- a/messages/pt_BR/LC_MESSAGES/mailman.po +++ b/messages/pt_BR/LC_MESSAGES/mailman.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mailman\n" "POT-Creation-Date: Sat Feb 27 14:41:07 2016\n" -"PO-Revision-Date: 2015-06-13 16:06-0300\n" +"PO-Revision-Date: 2016-03-09 14:12+0000\n" "Last-Translator: Emerson Ribeiro de Mello \n" "Language-Team: Portuguese \n" "Language: pt_BR\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 1.8.1\n" +"X-Generator: Poedit 1.8.7\n" #: Mailman/Archiver/HyperArch.py:123 msgid "size not available" @@ -206,8 +206,7 @@ msgstr "por voc msgid "by the list administrator" msgstr "pelo administrador da lista" -#: Mailman/Bouncer.py:48 Mailman/Bouncer.py:293 -#: Mailman/Commands/cmd_set.py:182 +#: Mailman/Bouncer.py:48 Mailman/Bouncer.py:293 Mailman/Commands/cmd_set.py:182 msgid "for unknown reasons" msgstr "por razões desconhecidas" @@ -246,11 +245,11 @@ msgstr "Moderador" msgid "Administrator" msgstr "Administrador" -#: Mailman/Cgi/admin.py:80 Mailman/Cgi/admindb.py:116 -#: Mailman/Cgi/confirm.py:62 Mailman/Cgi/edithtml.py:71 -#: Mailman/Cgi/listinfo.py:55 Mailman/Cgi/options.py:95 -#: Mailman/Cgi/private.py:108 Mailman/Cgi/rmlist.py:64 -#: Mailman/Cgi/roster.py:59 Mailman/Cgi/subscribe.py:63 +#: Mailman/Cgi/admin.py:80 Mailman/Cgi/admindb.py:116 Mailman/Cgi/confirm.py:62 +#: Mailman/Cgi/edithtml.py:71 Mailman/Cgi/listinfo.py:55 +#: Mailman/Cgi/options.py:95 Mailman/Cgi/private.py:108 +#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:59 +#: Mailman/Cgi/subscribe.py:63 msgid "No such list %(safelistname)s" msgstr "A lista %(safelistname)s não existe" @@ -880,8 +879,8 @@ msgstr "Enviar mensagens de boas vindas para novos inscritos?" #: Mailman/Gui/Privacy.py:128 Mailman/Gui/Privacy.py:161 #: Mailman/Gui/Privacy.py:214 Mailman/Gui/Privacy.py:316 #: Mailman/Gui/Privacy.py:333 Mailman/Gui/Privacy.py:473 -#: Mailman/Gui/Privacy.py:492 Mailman/Gui/Usenet.py:52 -#: Mailman/Gui/Usenet.py:56 Mailman/Gui/Usenet.py:93 Mailman/Gui/Usenet.py:105 +#: Mailman/Gui/Privacy.py:492 Mailman/Gui/Usenet.py:52 Mailman/Gui/Usenet.py:56 +#: Mailman/Gui/Usenet.py:93 Mailman/Gui/Usenet.py:105 msgid "No" msgstr "Não" @@ -891,26 +890,26 @@ msgstr "N #: Mailman/Cgi/create.py:388 Mailman/Cgi/create.py:426 #: Mailman/Cgi/rmlist.py:230 Mailman/Gui/Archive.py:33 #: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62 -#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:120 -#: Mailman/Gui/Bounce.py:146 Mailman/Gui/Bounce.py:155 -#: Mailman/Gui/Bounce.py:164 Mailman/Gui/ContentFilter.py:74 -#: Mailman/Gui/ContentFilter.py:116 Mailman/Gui/ContentFilter.py:120 -#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 -#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:223 -#: Mailman/Gui/General.py:229 Mailman/Gui/General.py:307 -#: Mailman/Gui/General.py:334 Mailman/Gui/General.py:361 -#: Mailman/Gui/General.py:372 Mailman/Gui/General.py:375 -#: Mailman/Gui/General.py:385 Mailman/Gui/General.py:390 -#: Mailman/Gui/General.py:396 Mailman/Gui/General.py:416 -#: Mailman/Gui/General.py:448 Mailman/Gui/General.py:471 -#: Mailman/Gui/General.py:488 Mailman/Gui/NonDigest.py:45 -#: Mailman/Gui/NonDigest.py:53 Mailman/Gui/NonDigest.py:140 -#: Mailman/Gui/NonDigest.py:162 Mailman/Gui/Privacy.py:110 -#: Mailman/Gui/Privacy.py:128 Mailman/Gui/Privacy.py:161 -#: Mailman/Gui/Privacy.py:214 Mailman/Gui/Privacy.py:316 -#: Mailman/Gui/Privacy.py:333 Mailman/Gui/Privacy.py:473 -#: Mailman/Gui/Privacy.py:492 Mailman/Gui/Usenet.py:52 -#: Mailman/Gui/Usenet.py:56 Mailman/Gui/Usenet.py:93 Mailman/Gui/Usenet.py:105 +#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:120 Mailman/Gui/Bounce.py:146 +#: Mailman/Gui/Bounce.py:155 Mailman/Gui/Bounce.py:164 +#: Mailman/Gui/ContentFilter.py:74 Mailman/Gui/ContentFilter.py:116 +#: Mailman/Gui/ContentFilter.py:120 Mailman/Gui/Digest.py:46 +#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89 +#: Mailman/Gui/General.py:223 Mailman/Gui/General.py:229 +#: Mailman/Gui/General.py:307 Mailman/Gui/General.py:334 +#: Mailman/Gui/General.py:361 Mailman/Gui/General.py:372 +#: Mailman/Gui/General.py:375 Mailman/Gui/General.py:385 +#: Mailman/Gui/General.py:390 Mailman/Gui/General.py:396 +#: Mailman/Gui/General.py:416 Mailman/Gui/General.py:448 +#: Mailman/Gui/General.py:471 Mailman/Gui/General.py:488 +#: Mailman/Gui/NonDigest.py:45 Mailman/Gui/NonDigest.py:53 +#: Mailman/Gui/NonDigest.py:140 Mailman/Gui/NonDigest.py:162 +#: Mailman/Gui/Privacy.py:110 Mailman/Gui/Privacy.py:128 +#: Mailman/Gui/Privacy.py:161 Mailman/Gui/Privacy.py:214 +#: Mailman/Gui/Privacy.py:316 Mailman/Gui/Privacy.py:333 +#: Mailman/Gui/Privacy.py:473 Mailman/Gui/Privacy.py:492 +#: Mailman/Gui/Usenet.py:52 Mailman/Gui/Usenet.py:56 Mailman/Gui/Usenet.py:93 +#: Mailman/Gui/Usenet.py:105 msgid "Yes" msgstr "Sim" @@ -7071,12 +7070,12 @@ msgstr "" " membros" #: Mailman/Gui/Privacy.py:233 -#, fuzzy msgid "" "Ceiling on acceptable number of member posts, per interval,\n" " before automatic moderation." msgstr "" -"Impondo um limite aceitável no número de destinatários para uma mensagem." +"Impondo um número aceitável de mensagens, por intervalo de tempo,\n" +" antes da moderação automática." #: Mailman/Gui/Privacy.py:236 msgid "" @@ -7098,6 +7097,25 @@ msgid "" " this can be triggered by a single post cross-posted to\n" " multiple lists or by a single post to an umbrella list." msgstr "" +"Se um membro enviar muitas mensagens dentro de um período de tempo\n" +" este será automaticamente moderado. Use 0 para desativar. " +"Veja\n" +" member_verbosity_interval para obter mais detalhes sobre " +"esse tempo.\n" +"\n" +"

Isso foi projetado para coibir pessoas que ingressam nas " +"listas e então\n" +" fazem uso de robôs para enviar spam em um curto intervalo de " +"tempo.\n" +"\n" +"

Seja cuidadoso ao usar essa configuração. Se você definir " +"um período muito curto,\n" +" essa configuração poderá ser ativada por uma simples mensagem " +"enviada para múltiplas listas\n" +" ou mesmo, enviada para uma lista guarda-chuva (que agrupa " +"diversas outras listas)." #: Mailman/Gui/Privacy.py:249 msgid "" @@ -7105,6 +7123,9 @@ msgid "" " member_verbosity_threshold for automatic moderation of a\n" " member." msgstr "" +"Número de segundos para usado por essa lista para\n" +" determinar o member_verbosity_threshold para moderação automática " +"de um membro." #: Mailman/Gui/Privacy.py:253 msgid "" @@ -7118,6 +7139,18 @@ msgid "" " member_verbosity_threshold enabled that arrived within that\n" " list's member_verbosity_interval." msgstr "" +"Se o total de mensagens enviadas por um membro para todas as listas nessa\n" +" instalação for definido como member_verbosity_threshold e esse " +"atingir\n" +" o limite da lista member_verbosity_threshold, então o membro " +"será automaticamente\n" +" moderado nessa lista.\n" +"\n" +"

Só serão contabilizadas as mensagens que forem enviadas para " +"listas\n" +" que estiverem com o member_verbosity_threshold ativado e que " +"chegarem\n" +" com member_verbosity_interval da lista." #: Mailman/Gui/Privacy.py:265 msgid "" @@ -7261,17 +7294,16 @@ msgstr "" "de spam dos destinatários." #: Mailman/Gui/Privacy.py:334 -#, fuzzy msgid "" "Shall the above dmarc_moderation_action apply to messages\n" " From: domains with DMARC p=none as well as p=quarantine and\n" " p=reject" msgstr "" "Deveria a dmarc_moderation_action acima ser aplicada para mensagens\n" -" De: domínios com DMARC p=quarentena assim como p=rejeitar" +" De: domínios com DMARC p=none assim como p=quarentena e " +"p=rejeitar" #: Mailman/Gui/Privacy.py:338 -#, fuzzy msgid "" "