From 9c4dca05452115bccfdec54720631e7439ed884f Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Thu, 15 Nov 2018 15:48:10 -0500 Subject: [PATCH] 4.5.0 --- CHANGELOG.md | 7 +++++++ parsedmarc/__init__.py | 16 +++++++++++++++- parsedmarc/elastic.py | 2 +- setup.py | 2 +- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8a14034..e49de760 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +4.5.0 +----- + +- Bugfix: `fo` tag is a string, not an integer (closes issue #31) +- Bugfix: IDE email processing in Gmail/G-Suite accounts (closes issue #33) +- Cache DNS queries in memory + 4.4.1 ----- diff --git a/parsedmarc/__init__.py b/parsedmarc/__init__.py index 9c369c10..dcc9463a 100644 --- a/parsedmarc/__init__.py +++ b/parsedmarc/__init__.py @@ -38,7 +38,7 @@ from parsedmarc.utils import is_outlook_msg, convert_outlook_msg from parsedmarc.utils import timestamp_to_human, human_timestamp_to_datetime from parsedmarc.utils import parse_email -__version__ = "4.4.1" +__version__ = "4.5.0" logger = logging.getLogger("parsedmarc") logger.debug("parsedmarc v{0}".format(__version__)) @@ -1506,6 +1506,20 @@ def watch_inbox(host, username, password, callback, port=None, ssl=True, idle_start_time = time.monotonic() responses = server.idle_check(timeout=wait) if responses is not None: + if len(responses) == 0: + # Gmail/G-Suite does not generate anything in the responses + server.idle_done() + res = get_dmarc_reports_from_inbox(connection=server, + move_supported=ms, + reports_folder=rf, + archive_folder=af, + delete=delete, + test=test, + nameservers=ns, + dns_timeout=dt) + callback(res) + server.idle() + idle_start_time = time.monotonic() for response in responses: if response[1] == b'RECENT' and response[0] > 0: server.idle_done() diff --git a/parsedmarc/elastic.py b/parsedmarc/elastic.py index 6d454ff2..98544b4c 100644 --- a/parsedmarc/elastic.py +++ b/parsedmarc/elastic.py @@ -28,7 +28,7 @@ class _PublishedPolicy(InnerDoc): p = Text() sp = Text() pct = Integer() - fo = Integer() + fo = Text() class _DKIMResult(InnerDoc): diff --git a/setup.py b/setup.py index 72a152ef..d5b73451 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ from setuptools import setup from codecs import open from os import path -__version__ = "4.4.1" +__version__ = "4.5.0" description = "A Python package and CLI for parsing aggregate and " \ "forensic DMARC reports"