Code cleanup

This commit is contained in:
Sean Whalen
2024-03-31 20:25:10 -04:00
parent 8936193280
commit acef7bdd6e
2 changed files with 40 additions and 17 deletions
+37 -15
View File
@@ -1029,16 +1029,25 @@ def parsed_forensic_reports_to_csv(reports):
return csv_file.getvalue()
def parse_report_email(input_, offline=False, ip_db_path=None,
nameservers=None, dns_timeout=2.0,
strip_attachment_payloads=False,
keep_alive=None):
def parse_report_email(
input_,
offline=False,
ip_db_path=None,
always_use_local_files=False,
reverse_dns_map_path=None,
reverse_dns_map_url=None,
nameservers=None, dns_timeout=2.0,
strip_attachment_payloads=False,
keep_alive=None):
"""
Parses a DMARC report from an email
Args:
input_: An emailed DMARC report in RFC 822 format, as bytes or a string
ip_db_path (str): Path to a MMDB file from MaxMind or DBIP
always_use_local_files (bool): Do not download files
reverse_dns_map_path (str): Path to a reverse DNS map
reverse_dns_map_url (str): URL to a reverse DNS map
offline (bool): Do not query online for geolocation on DNS
nameservers (list): A list of one or more nameservers to use
dns_timeout (float): Sets the DNS timeout in seconds
@@ -1148,6 +1157,9 @@ def parse_report_email(input_, offline=False, ip_db_path=None,
aggregate_report = parse_aggregate_report_xml(
payload,
ip_db_path=ip_db_path,
always_use_local_files=always_use_local_files,
reverse_dns_map_path=reverse_dns_map_path,
reverse_dns_map_url=reverse_dns_map_url,
offline=offline,
nameservers=ns,
timeout=dns_timeout,
@@ -1177,6 +1189,10 @@ def parse_report_email(input_, offline=False, ip_db_path=None,
sample,
date,
offline=offline,
ip_db_path=ip_db_path,
always_use_local_files=always_use_local_files,
reverse_dns_map_path=reverse_dns_map_path,
reverse_dns_map_url=reverse_dns_map_url,
nameservers=nameservers,
dns_timeout=dns_timeout,
strip_attachment_payloads=strip_attachment_payloads)
@@ -1239,10 +1255,12 @@ def parse_report_file(input_, nameservers=None, dns_timeout=2.0,
content,
ip_db_path=ip_db_path,
always_use_local_files=always_use_local_files,
offline=offline,
nameservers=nameservers,
dns_timeout=dns_timeout,
keep_alive=keep_alive)
reverse_dns_map_path=reverse_dns_map_path,
reverse_dns_map_url=reverse_dns_map_url,
offline=offline,
nameservers=nameservers,
dns_timeout=dns_timeout,
keep_alive=keep_alive)
results = OrderedDict([("report_type", "aggregate"),
("report", report)])
except InvalidAggregateReport:
@@ -1253,13 +1271,17 @@ def parse_report_file(input_, nameservers=None, dns_timeout=2.0,
except InvalidSMTPTLSReport:
try:
sa = strip_attachment_payloads
results = parse_report_email(content,
ip_db_path=ip_db_path,
offline=offline,
nameservers=nameservers,
dns_timeout=dns_timeout,
strip_attachment_payloads=sa,
keep_alive=keep_alive)
results = parse_report_email(
content,
ip_db_path=ip_db_path,
always_use_local_files=always_use_local_files,
reverse_dns_map_path=reverse_dns_map_path,
reverse_dns_map_url=reverse_dns_map_url,
offline=offline,
nameservers=nameservers,
dns_timeout=dns_timeout,
strip_attachment_payloads=sa,
keep_alive=keep_alive)
except InvalidDMARCReport:
raise ParserError("Not a valid report")
return results
+3 -2
View File
@@ -330,8 +330,9 @@ def get_service_from_reverse_dns_base_domain(base_domain,
base_domain = base_domain.lower().strip()
if url is None:
url = ("https://raw.githubusercontent.com/domainaware/parsedmarc/master/"
"parsedmarc/resources/maps/base_reverse_dns_map.csv")
url = ("https://raw.githubusercontent.com/domainaware"
"/parsedmarc/master/parsedmarc/"
"resources/maps/base_reverse_dns_map.csv")
if reverse_dns_map is None:
reverse_dns_map = dict()
csv_file = io.StringIO()