github domainaware/parsedmarc 9.3.0

8 hours ago

Added

  • SIGHUP-based configuration reload for watch mode — update output destinations, DNS/GeoIP settings, processing flags, and log level without restarting the service or interrupting in-progress report processing.
    • Use systemctl reload parsedmarc when running under systemd.
    • On a successful reload, old output clients are closed and recreated.
    • On a failed reload, the previous configuration remains fully active.
  • close() methods on GelfClient, KafkaClient, SyslogClient, WebhookClient, HECClient, and S3Client for clean resource teardown on reload.
  • config_reloading parameter on all MailboxConnection.watch() implementations and watch_inbox() to ensure SIGHUP never triggers a new email batch mid-reload.
  • Elasticsearch and OpenSearch connections are now tracked and cleaned up on reload via _close_output_clients().
  • Extracted _parse_config_file() and _init_output_clients() from _main() in cli.py to support config reload and reduce code duplication.

Fixed

  • get_index_prefix() crashed on forensic reports with TypeError due to report() instead of report[] dict access.
  • Missing exit(1) after IMAP user/password validation failure allowed execution to continue with None credentials.

Don't miss a new parsedmarc release

NewReleases is sending notifications on new releases.