Skip to content

oida 1.0.5

Choose a tag to compare

@github-actions github-actions released this 30 Sep 21:07
v1.0.5

v1.0.5 - 2026-09-30

Added

  • Move sweep connect-stage output behind -v

Chore

  • Move DTLSSocket behind an opt-in dtls extra

  • Ignore /.worktrees/

  • Pull dtls into the all meta-extra for the standalone binaries

Fixed

  • Suppress third-party import warnings leaking to stderr on discovery runs

  • Report raw-socket denial and bad interface as failures

  • Split multi-value DNS fields per record, add mapping types

  • Uniform connect-failure line and JSON error contract

  • Align DNS A/AAAA records by resp_type, not position

  • Record error when interface init fails

  • Skip TCP cause probe for serial and udp transports

  • Rescue unknown connect causes with a TCP probe

  • Adopt record_connect_failure in every connect runner

  • Shared connect-failure contract (GH #59)

  • Encode target port in the CIP path, not a bare host

  • Route remaining connect failures through the shared contract

  • Stamp mms_port in results before mms-enum connect

  • Pass probed=True so record_connect_failure never double-probes

  • Drop duplicate Connecting banner from create_conn_obj

  • Banner shows the effective port, not the class default

  • Stamp the DTLS port before the DTLS hard-fail record

  • Honor explicit -p across TLS defaulting and stamp auth-reject as failure

  • --tls actually dials 2762; banner and prefixes show it

  • Retarget banner/prefixes at the alternate port before connecting

  • Satisfy the mypy gate on union-typed args/results

  • Pre-existing mypy-gate errors - knx async callbacks never ran

  • Surface TLS config errors and the effective TLS port

  • Discriminate TLS-config failures by attribute presence, not isinstance

  • Surface TLS-config failures without probe or isinstance

  • Disambiguate pyiec61850 connection-rejected timeout vs refused

  • Forward --timeout and classify from the stored exception

  • Classify mms-enum failures without a second full wait

  • Guard logger.extra sync with isinstance

  • Pass the exception object to the classifier

  • Emit sweep console output as per-target blocks

  • Clear pending progress line before block prints on tty

  • Print the description on vulnerability-found lines

  • Classify ConnectionRefusedError by type, not errno

  • Skip the dtls extra in PROTOCOL_DEPENDENCIES

Other

  • Merge branch 'worktree-fix-gh-59-62': fixes #59-#62 (connect-failure contract, discovery error reporting, DNS pcap alignment)

  • Merge branch 'fix/unified-connect-failure': harden unified connect-failure contract (#59)

Classifier gains elapsed-vs-budget timeout discrimination for
pyiec61850's collapsed connection-rejected message; tase2 forwards
--timeout and classifies from the stored exception (no double wait);
goose mms-enum runs on an explicit budget; TLS-config failures surface
without a probe; mock-logger isinstance guards; stale test pins
updated to the canonical vocabulary. release_check --full: 11/11.

Tests

  • Assert exported scan error on bad interface

  • Fix 5 tests asserting output --nolog suppresses

  • Enforce connect-failure contract fleet-wide

  • Fleet-wide connect-output integration test

  • Update stale assertions to the unified connect-failure contract

  • Effective-port consistency contract across the CLI

  • Collect-then-assert in test_runner_source_parses

  • Pin canonical connect-failure vocabulary

  • Stop the connect-failure rescue probe from hitting the network

Full Changelog: v1.0.4...v1.0.5