3x-ui/database/model
MHSanaei ad8d58c2b6
fix(xray): heal shadowsocks per-client method across all start paths
xray-core's multi-user shadowsocks insists the per-client `method` matches
the inbound's top-level cipher exactly for legacy ciphers, and is empty for
2022-blake3-*. The previous code (xray.go) copied `Client.Security` into
the per-client `method` blindly, so a multi-protocol client created with
the VMess default `"auto"` poisoned the SS config with `method: "auto"` →
"unsupported cipher method: auto".

Fix in two parts:

- GetXrayConfig no longer projects `Client.Security` into the SS entry;
  the inbound's top-level method is now the single source of truth.
- HealShadowsocksClientMethods moves to `database/model` and is invoked
  from `Inbound.GenXrayInboundConfig`, so the runtime add/update path
  (runtime.AddInbound) is normalised in addition to the full-restart
  path. For legacy ciphers heal now overwrites mismatched per-client
  methods rather than preserving them, so stale DB rows are also healed.
2026-05-27 03:11:51 +02:00
..
model.go fix(xray): heal shadowsocks per-client method across all start paths 2026-05-27 03:11:51 +02:00
model_test.go refactor(backend): retire hysteria2 as a top-level protocol 2026-05-27 00:58:37 +02:00