Repository navigation
oida 1.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