From 2e4c13d8c4b8ebae98d7d1a2bcf950c2d3fc31ac Mon Sep 17 00:00:00 2001 From: Hamed Yousefi Date: Fri, 6 Nov 2026 09:57:42 -0800 Subject: [PATCH] Inbound: Close and remove the handler when it fails to start (#7223) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/XTLS/Xray-core/pull/7223#pullrequestreview-5722817769 --------- Co-authored-by: 风扇滑翔翼 --- app/proxyman/inbound/inbound.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/proxyman/inbound/inbound.go b/app/proxyman/inbound/inbound.go index c0ced47aa..62b2a7ceb 100644 --- a/app/proxyman/inbound/inbound.go +++ b/app/proxyman/inbound/inbound.go @@ -51,7 +51,17 @@ func (m *Manager) AddHandler(ctx context.Context, handler inbound.Handler) error } if m.running { - return handler.Start() + if err := handler.Start(); err != nil { + if len(tag) > 0 { + delete(m.taggedHandlers, tag) + } else { + m.untaggedHandlers = m.untaggedHandlers[:len(m.untaggedHandlers)-1] + } + if err := handler.Close(); err != nil { + errors.LogWarningInner(ctx, err, "failed to close handler ", tag) + } + return err + } } return nil