From d1ac59a016bcd6b3592aa146c7efb34170993d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kov=C3=A1=C4=8Dik?= Date: Mon, 29 Dec 2025 18:05:07 +0100 Subject: [PATCH] fix #641 (#642) * fix smtptls and forensic reports for GELF * add policy_domain, policy_type and failed_session_count to record row * Remove unused import of json in gelf.py --------- Co-authored-by: Sean Whalen <44679+seanthegeek@users.noreply.github.com> --- parsedmarc/__init__.py | 9 +++++++++ parsedmarc/gelf.py | 7 ++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/parsedmarc/__init__.py b/parsedmarc/__init__.py index 0011a87..4160d70 100644 --- a/parsedmarc/__init__.py +++ b/parsedmarc/__init__.py @@ -595,9 +595,18 @@ def parsed_smtp_tls_reports_to_csv_rows( if "mx_host_patterns" in policy: record["mx_host_patterns"] = "|".join(policy["mx_host_patterns"]) successful_record = record.copy() + successful_record["policy_domain"] = policy[ + "policy_domain" + ] + successful_record["policy_type"] = policy[ + "policy_type" + ] successful_record["successful_session_count"] = policy[ "successful_session_count" ] + successful_record["failed_session_count"] = policy[ + "failed_session_count" + ] rows.append(successful_record) if "failure_details" in policy: for failure_details in policy["failure_details"]: diff --git a/parsedmarc/gelf.py b/parsedmarc/gelf.py index 61b949a..67f4f5d 100644 --- a/parsedmarc/gelf.py +++ b/parsedmarc/gelf.py @@ -2,7 +2,6 @@ from __future__ import annotations -import json import logging import logging.handlers import threading @@ -62,9 +61,11 @@ class GelfClient(object): def save_forensic_report_to_gelf(self, forensic_reports: list[dict[str, Any]]): rows = parsed_forensic_reports_to_csv_rows(forensic_reports) for row in rows: - self.logger.info(json.dumps(row)) + log_context_data.parsedmarc = row + self.logger.info("parsedmarc forensic report") def save_smtp_tls_report_to_gelf(self, smtp_tls_reports: dict[str, Any]): rows = parsed_smtp_tls_reports_to_csv_rows(smtp_tls_reports) for row in rows: - self.logger.info(json.dumps(row)) + log_context_data.parsedmarc = row + self.logger.info("parsedmarc smtptls report")