Skip to content

Add SIP003u support with protocol-specific plugin routing - #3082

Closed
MichaelSuen-thePointer wants to merge 5 commits into
shadowsocks:masterfrom
MichaelSuen-thePointer:feature/sip003u
Closed

MichaelSuen-thePointer wants to merge 5 commits into
shadowsocks:masterfrom
MichaelSuen-thePointer:feature/sip003u

Conversation

@MichaelSuen-thePointer

Copy link
Copy Markdown

Summary

Add --plugin-mode and the corresponding plugin_mode configuration option, supporting tcp_only (default), udp_only, and tcp_and_udp.

The plugin handles only the selected protocols. For example, with mode=tcp_and_udp and plugin_mode=udp_only, UDP traffic passes through the plugin while TCP traffic connects directly. The plugin mode must be a subset of the relay mode.

Changes

  • Apply protocol-specific routing in ss-local, ss-tunnel, and ss-redir.
  • Bind plugin-handled protocols to an internal listener in ss-server, while retaining the public listener for other protocols.
  • Support plugin mode configuration in ss-manager.
  • Check both TCP and UDP port availability when the plugin handles UDP.
  • Update CLI documentation and add regression coverage for mode parsing and all nine relay/plugin mode combinations.

The default remains TCP-only plugin handling, preserving existing SIP003 behavior.

Validation

Passed:

  • CLI documentation consistency checks and all 10 documentation regression tests.
  • No-heap lint, including its self-test.
  • git diff --check.
  • Compilation, CTest, and the added C++ regression tests.

Not yet run:

  • Stress tests and independent shadowsocks-rust interoperability tests.
  • End-to-end SIP003u plugin tests for TCP, UDP, and mixed-protocol routing.

@MichaelSuen-thePointer

Copy link
Copy Markdown
Author

close to re-organize commits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant