Beta 0.7.3 network socket, UDP, WebSocket, HTTPS, and UPnP adversity gate
Summary¶
Replay network adversity after Broadband changes to bind policy, UDP handling, HTTPS, WebSocket, static-file handling, accepted-client lifetime, and UPnP/NAT mapping code.
Acceptance Criteria¶
- [x] Live profiles write
BindInterface=hide.me, keep P2PBindAddrempty, and enable P2P UPnP. - [x] WebServer bind policy remains separate from P2P bind policy.
- [x] HTTP and HTTPS socket adversity smoke passes with resource thresholds.
- [x] WebSocket accepted-client, queued-send, TLS WANT_READ/WANT_WRITE, and stop/start churn probes pass.
- [x] UDP control sender and malformed receive probes pass without deadlock or overread.
- [x] UPnP/NAT mapping changes are either validated or explicitly deferred with no release-blocking claim.
- [x] Static WebServer file serving still rejects traversal and bounded-memory risks.
Validation¶
python -m emule_workspace test live-e2e --config Release --platform x64 --suite rest-api --rest-socket-adversity-budget smoke --rest-leak-churn-budget smoke- Focused UDP, bind-policy, WebSocket, HTTPS, and UPnP tests through supported
python -m emule_workspacecommands.
Completion Evidence¶
Closed on 2026-05-09 with the following Beta 0.7.3 replay evidence:
python -m emule_workspace test live-e2e --config Release --platform x64 --suite rest-api --rest-socket-adversity-budget smoke --rest-leak-churn-budget smokepassed with HTTP artifactEMULE_WORKSPACE_ROOT\repos\emulebb-build-tests\reports\rest-api-smoke\20260509-153020-eMule-main-release. The run completed7raw socket adversity probes,100/100HTTP leak-churn cycles,0resource-threshold violations, and0failed REST contract routes.python -m emule_workspace test live-e2e --config Release --platform x64 --suite rest-api --rest-webserver-scheme https --rest-socket-adversity-budget off --rest-tls-handshake-adversity-budget smoke --rest-leak-churn-budget smokepassed with HTTPS artifactEMULE_WORKSPACE_ROOT\repos\emulebb-build-tests\reports\rest-api-smoke\20260509-153452-eMule-main-release. HTTPS replay completed3TLS handshake adversity probes,100/100HTTPS leak-churn cycles,0resource-threshold violations, and0failed REST contract routes. The harness keeps raw socket adversity HTTP-only, so HTTPS adversity uses the supported TLS-handshake probe path.- Both live profiles wrote the required P2P network settings:
[eMule] BindInterface=hide.me,[eMule] BindAddr=empty, andEnableUPnP=1. The WebServer stayed separately bound through[WebServer] BindAddr=127.0.0.1, proving the web bind policy remains separate from P2P bind policy. python -m emule_workspace test all --config Release --platform x64passed with native coverage artifactEMULE_WORKSPACE_ROOT\repos\emulebb-build-tests\reports\native-coverage\20260509-152156-eMulebb-workspace-v0.72a-eMule-main-x64-Release. The Release parity suite passed501/501cases and the web API suite passed72/72cases.- Native coverage includes WebSocket HTTP request parsing, duplicate and oversized header rejection, accepted-client thread fanout bounds, rejected-IP accept-drain behavior, TLS PEM loading, UDP control sender queue and wakeup policy, client and server UDP malformed-packet logging bounds, UDP obfuscation framing, async socket readiness/close classification, bind-startup policy, MiniUPnP mapping matching, UPnP wrapper ordering, and REST/WebServer static-file traversal and bounded-memory policy.
- NAT mapping modernization remains non-blocking where live router proof is unavailable: FEAT-032 keeps MiniUPnP active, documents PCP/NAT-PMP live proof as deferred, and has native wrapper-order coverage.