- Behavior: do not override when username has no recognized keys; fall back to escaper proxy_addr.
- HTTP error: username-derived NXDOMAIN returns 400 Bad Request with “Proxy targeting didn't find a
match” (CONNECT and Forward); other failures keep existing mappings (e.g., 530).
- Config/compute: allow empty separator; rename suffix_for_host → to_fqdn; add
username_has_known_key(..); keep global_label for compatibility but stop using it.
- Server config: use UsernameParamsToEscaperConfig directly; call
UsernameParamsToEscaperConfig::parse(..).
- Integration: HTTP writer gates mapping with username_has_known_key(..); 400 on invalid params; no
override otherwise. SOCKS negotiation gates similarly; uses Option<UpstreamAddr>; standard error on
invalid params.
- Escapers: divert_tcp ignores per-connection override (internal/transparent); remove unnecessary clones;
dedup connect logic via local connect_via_peer(..) helpers (no cross-module macro).
- Logging: restore SOCKS log_client_shutdown() parity with HTTP connect.
- Docs/examples: EN/ZH guides note “no recognized keys → use proxy_addr”; remove global_label from
examples.
- Tests: update for to_fqdn; remove “no params → global” test; adjust unknown-keys case; fix duplicate
#[test].
- Cleanup: remove unused imports and small style nits.