mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-11 10:23:13 +00:00
Deleting a client attached to a remote-node inbound could silently fail to reach the node, so the node's next traffic snapshot resurrected the client once the 90s delete tombstone expired. Two paths in the single-client delete (Delete -> DelInboundClientByEmail): - A disabled client was skipped entirely: the node-propagation and mark-dirty block sat behind the client's enable flag (needApiDel), so a disabled client on a node never detached and never marked the node dirty. The bulk and multi-client delete paths already handle the node case independently of enable state; mirror that structure here. - Remote.DeleteUser returned nil when resolveRemoteID failed, hiding the failure from the caller so the node was never marked dirty. Surface the error like AddClient/UpdateUser do, so the caller marks the node dirty and the next reconcile converges. Add a regression test asserting a disabled node client's deletion marks the node dirty. |
||
|---|---|---|
| .. | ||
| local.go | ||
| manager.go | ||
| remote.go | ||
| remote_test.go | ||
| runtime.go | ||
| tls_client.go | ||
| tls_client_property_test.go | ||
| tls_client_test.go | ||