mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-10 18:03:13 +00:00
When a client expired or hit its traffic limit, XrayTrafficJob called RestartXray(true), stopping the whole process and dropping every live connection on every inbound (#5712 reported this as XHTTP on 443 dying) — even though disableInvalidClients had already removed the user from the running core over gRPC. The force restart existed only to re-sync the process's config snapshot. Switch the job to a non-forced restart and teach ComputeHotDiff to express a client-only inbound change as per-user AlterInbound operations for vless/vmess/trojan, so the reconcile is a no-op RemoveUser plus a snapshot update rather than a handler swap that would still blip that inbound's listener. Anything beyond the clients list still falls back to handler replacement or a full restart as before. Closes #5712 |
||
|---|---|---|
| .. | ||
| api.go | ||
| api_e2e_test.go | ||
| api_test.go | ||
| api_wireguard_test.go | ||
| client_traffic.go | ||
| config.go | ||
| config_test.go | ||
| hot_diff.go | ||
| hot_diff_test.go | ||
| inbound.go | ||
| inbound_test.go | ||
| log_writer.go | ||
| log_writer_race_test.go | ||
| mutation_audit_test.go | ||
| online_test.go | ||
| process.go | ||
| process_other.go | ||
| process_race_test.go | ||
| process_test.go | ||
| process_windows.go | ||
| traffic.go | ||