From 12737ecf786a8d0315bc6a9a4448831cc19eead2 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Thu, 25 Feb 2016 20:45:44 -0800 Subject: Further refactoring of the Organizational Domain fix. --- Mailman/Defaults.py.in | 7 +++++++ Mailman/Utils.py | 3 +-- NEWS | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Mailman/Defaults.py.in b/Mailman/Defaults.py.in index 8c5d9e7b..4881bbba 100755 --- a/Mailman/Defaults.py.in +++ b/Mailman/Defaults.py.in @@ -1130,6 +1130,13 @@ DMARC_RESOLVER_TIMEOUT = seconds(3) # The total time to spend trying to get an answer to the question. DMARC_RESOLVER_LIFETIME = seconds(5) +# A URL from which to retrieve the data for the algorithm that computes +# Organizational Domains for DMARC policy lookup purposes. This can be +# anything handled by the Python urllib2.urlopen function. See +# https://publicsuffix.org/list/ for info. +DMARC_ORGANIZATIONAL_DOMAIN_DATA_URL = \ +'https://publicsuffix.org/list/public_suffix_list.dat' + # Should the list server auto-moderate members who post too frequently # This is intended to stop people who join a list and then use a bot to # send many spam messages in a short interval. These are default settings diff --git a/Mailman/Utils.py b/Mailman/Utils.py index 4a5dddef..8a54bfc5 100644 --- a/Mailman/Utils.py +++ b/Mailman/Utils.py @@ -1162,7 +1162,6 @@ def suspiciousHTML(html): # algorithm at https://publicsuffix.org/list/ to find the "Organizational # Domain corresponding to a From: domain. -URL = 'https://publicsuffix.org/list/public_suffix_list.dat' s_dict = {} def get_suffixes(url): @@ -1205,7 +1204,7 @@ def get_org_dom(domain): Domain which may be the same as the input.""" global s_dict if not s_dict: - get_suffixes(URL) + get_suffixes(mm_cfg.DMARC_ORGANIZATIONAL_DOMAIN_DATA_URL) hits = [] d = domain.split('.') d.reverse() diff --git a/NEWS b/NEWS index 8d9f452b..dedfacf0 100644 --- a/NEWS +++ b/NEWS @@ -52,7 +52,10 @@ Here is a history of user visible changes to Mailman. Bug fixes and other patches - If DMARC lookup fails to find a policy, also try the Organizational - Domain. (LP: #1549420) + Domain. Associated with this is a new mm_cfg.py setting + DMARC_ORGANIZATIONAL_DOMAIN_DATA_URL which sets the URL used to + retrieve the data for the algorithm that computes the Organizational + Domain. See https://publicsuffix.org/list/ for info. (LP: #1549420) - Modified contrib/mmdsr to correctly report No such list names that contain ". -- cgit v1.2.3