Skip to content

Workflow status is tracked in GitHub: https://github.com/emulebb/emulebb/issues/105. This local document is retained as an engineering spec/evidence record.

REF-051 - Remove legacy SOCKS and proxy support

Summary

Remove the legacy SOCKS/proxy stack from the app instead of continuing to carry, test, and harden a rarely used routing feature. Current network policy work is centered on explicit bind/interface selection, VPN hardening, firewall diagnostics, and REST/controller automation. SOCKS proxy behavior is a separate legacy surface that increases connection-path complexity and audit burden.

Intended Shape

  • Remove SOCKS/proxy preference UI, persistence, and validation.
  • Remove proxy connection setup paths from client/server/direct-download networking where they only exist to route through the legacy proxy feature.
  • Remove proxy error enums, logs, resource strings, and dead fallback branches.
  • Keep ordinary direct networking, explicit bind policy, VPN/interface diagnostics, and WebServer/REST behavior intact.
  • Update docs to avoid advertising SOCKS/proxy as a supported route.

Scope Constraints

  • Do not remove VPN/interface binding or BindInterface support.
  • Do not remove WebServer/REST reverse-proxy deployment guidance if it exists; this item is about the app's outbound SOCKS/proxy client path.
  • Do not change stock eD2K/Kad wire semantics.
  • Do not keep compatibility aliases for deleted proxy preferences unless a migration audit finds a crash or load failure without them.

Acceptance Criteria

  • [ ] SOCKS/proxy preferences are absent from UI, persistence, and docs.
  • [ ] Proxy-specific socket setup and direct-download branches are removed.
  • [ ] Proxy error resources and dead diagnostic paths are removed.
  • [ ] Startup with old proxy preferences ignores or drops them without failing.
  • [ ] Network bind, VPN, REST, and direct-download tests still pass without proxy support.

Validation

  • python -m emule_workspace validate
  • focused native network/direct-download tests after proxy removal
  • preference-load regression with old proxy keys present
  • x64 Debug and Release app builds before implementation commit