Skip to content

Releases: hivesolutions/netius

1.44.0

Choose a tag to compare

@joamag joamag released this 12 Apr 01:57
b503fec

Changed

  • Skip SSL error reason normalization for SSL_VALID_ERRORS (WANT_READ/WANT_WRITE) to avoid unnecessary string operations on the hot path

Fixed

  • Capture TLS version and cipher in quit_t before socket close instead of in on_close where the socket is already closed
  • Derive starttls from actual TLS negotiation state instead of the initial stls parameter
  • Add _ssl_reason fallback that parses str(error) when error.reason is None (eg: OpenSSL 3 error codes not mapped in the runtime's SSL data tables)

1.43.1

Choose a tag to compare

@joamag joamag released this 12 Apr 01:17
6e08e07

Fixed

  • Normalize SSL error reason in server.py and client.py for PyPy compatibility (9 additional sites missed in 1.41.1)

1.43.0

Choose a tag to compare

@joamag joamag released this 12 Apr 01:13
91aa1f0

Added

  • server_agent field in activity webhook payload using netius.IDENTIFIER
  • contents_size field in activity webhook payload

1.42.0

Choose a tag to compare

@joamag joamag released this 12 Apr 00:41
b57f850

Added

  • TLS session info (tls_version, tls_cipher, starttls) in SMTP client session deliverability data
  • EHLO capabilities list in session deliverability data
  • MX hostname (mx_host) from DNS resolution in session deliverability data
  • Per-session error field capturing exceptions from failed SMTP sessions
  • Message message_size in session deliverability data

1.41.1

Choose a tag to compare

@joamag joamag released this 12 Apr 00:17
0744bca

Fixed

  • Normalize SSL error reason string for PyPy compatibility so that SSL_SILENT_REASONS matching works on both CPython and PyPy runtimes

1.41.0

Choose a tag to compare

@joamag joamag released this 11 Apr 23:55
06a1ff1

Added

  • RFC 2047 encoded word subject decoding in ActivityRelaySMTPServer so that MIME-encoded subjects are posted as clean unicode strings
  • Per-domain SMTP session deliverability info (sessions list) in the activity webhook payload including remote host, port, greeting, queue response, duration and recipients
  • greeting, queue_response and start_time attributes on SMTPConnection (client) to capture remote server identification and delivery confirmation
  • context parameter passed to callback in SMTPClient.message() containing session deliverability data

Changed

  • Reordered on_relay_smtp and on_relay_error_smtp arguments to lead with connection, context (and exception for error) for consistency

1.40.0

Choose a tag to compare

@joamag joamag released this 11 Apr 22:53
e39a1be

Added

  • ActivityRelaySMTPServer middleware in extra/smtp_a.py that posts delivery status (delivered/failed) to an external HTTP endpoint after each relay operation, configurable via SMTP_ACTIVITY_URL and SMTP_ACTIVITY_SECRET environment variables
  • _ssl_reload() method on the base server to reload SSL contexts from disk when certificate files have changed, without requiring a process restart
  • reload(domains) and _mtime(domain) methods on TLSContextDict for mtime-based certificate change detection
  • datagram, socket_family, and socket_type fields to connection info_dict for socket-level diagnostics

Changed

  • Added RECORD_LAYER_FAILURE to SSL_SILENT_REASONS so that record layer failures are treated as expected (silent) SSL errors

1.39.6

Choose a tag to compare

@joamag joamag released this 10 Apr 16:24
0726cce

Fixed

  • Fix DNS client tests failing on Python 2 due to unbound method on class attribute callback storage

1.39.5

Choose a tag to compare

@joamag joamag released this 10 Apr 16:20
8ecbcd1

Fixed

  • Close datagram protocol after DNS query callback in DNSClient.query_s() to prevent connection leak

1.39.4

Choose a tag to compare

@joamag joamag released this 10 Apr 15:41
920282e

Added

  • Stack trace logging for connections created with None address to help diagnose origin of address-less connections