app/proxyman/inbound/inbound.go: Fix ListHandlers() (#4976)

Fixes https://github.com/XTLS/Xray-core/issues/4956
main
风扇滑翔翼 2025-08-03 19:02:08 +08:00 committed by GitHub
parent 7cbf5b004c
commit 00f3147242
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 8 deletions

View File

@ -17,7 +17,7 @@ import (
// Manager manages all inbound handlers. // Manager manages all inbound handlers.
type Manager struct { type Manager struct {
access sync.RWMutex access sync.RWMutex
untaggedHandler []inbound.Handler untaggedHandlers []inbound.Handler
taggedHandlers map[string]inbound.Handler taggedHandlers map[string]inbound.Handler
running bool running bool
} }
@ -47,7 +47,7 @@ func (m *Manager) AddHandler(ctx context.Context, handler inbound.Handler) error
} }
m.taggedHandlers[tag] = handler m.taggedHandlers[tag] = handler
} else { } else {
m.untaggedHandler = append(m.untaggedHandler, handler) m.untaggedHandlers = append(m.untaggedHandlers, handler)
} }
if m.running { if m.running {
@ -94,8 +94,8 @@ func (m *Manager) ListHandlers(ctx context.Context) []inbound.Handler {
m.access.RLock() m.access.RLock()
defer m.access.RUnlock() defer m.access.RUnlock()
var response []inbound.Handler response := make([]inbound.Handler, len(m.untaggedHandlers))
copy(m.untaggedHandler, response) copy(response, m.untaggedHandlers)
for _, v := range m.taggedHandlers { for _, v := range m.taggedHandlers {
response = append(response, v) response = append(response, v)
@ -117,7 +117,7 @@ func (m *Manager) Start() error {
} }
} }
for _, handler := range m.untaggedHandler { for _, handler := range m.untaggedHandlers {
if err := handler.Start(); err != nil { if err := handler.Start(); err != nil {
return err return err
} }
@ -138,7 +138,7 @@ func (m *Manager) Close() error {
errs = append(errs, err) errs = append(errs, err)
} }
} }
for _, handler := range m.untaggedHandler { for _, handler := range m.untaggedHandlers {
if err := handler.Close(); err != nil { if err := handler.Close(); err != nil {
errs = append(errs, err) errs = append(errs, err)
} }

View File

@ -150,8 +150,8 @@ func (m *Manager) ListHandlers(ctx context.Context) []outbound.Handler {
m.access.RLock() m.access.RLock()
defer m.access.RUnlock() defer m.access.RUnlock()
var response []outbound.Handler response := make([]outbound.Handler, len(m.untaggedHandlers))
copy(m.untaggedHandlers, response) copy(response, m.untaggedHandlers)
for _, v := range m.taggedHandler { for _, v := range m.taggedHandler {
response = append(response, v) response = append(response, v)