diff --git a/app/proxyman/inbound/inbound.go b/app/proxyman/inbound/inbound.go index 5d64c5b2..8e484965 100644 --- a/app/proxyman/inbound/inbound.go +++ b/app/proxyman/inbound/inbound.go @@ -17,7 +17,7 @@ import ( // Manager manages all inbound handlers. type Manager struct { access sync.RWMutex - untaggedHandler []inbound.Handler + untaggedHandlers []inbound.Handler taggedHandlers map[string]inbound.Handler running bool } @@ -47,7 +47,7 @@ func (m *Manager) AddHandler(ctx context.Context, handler inbound.Handler) error } m.taggedHandlers[tag] = handler } else { - m.untaggedHandler = append(m.untaggedHandler, handler) + m.untaggedHandlers = append(m.untaggedHandlers, handler) } if m.running { @@ -94,8 +94,8 @@ func (m *Manager) ListHandlers(ctx context.Context) []inbound.Handler { m.access.RLock() defer m.access.RUnlock() - var response []inbound.Handler - copy(m.untaggedHandler, response) + response := make([]inbound.Handler, len(m.untaggedHandlers)) + copy(response, m.untaggedHandlers) for _, v := range m.taggedHandlers { 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 { return err } @@ -138,7 +138,7 @@ func (m *Manager) Close() error { errs = append(errs, err) } } - for _, handler := range m.untaggedHandler { + for _, handler := range m.untaggedHandlers { if err := handler.Close(); err != nil { errs = append(errs, err) } diff --git a/app/proxyman/outbound/outbound.go b/app/proxyman/outbound/outbound.go index ed47b778..244fcffe 100644 --- a/app/proxyman/outbound/outbound.go +++ b/app/proxyman/outbound/outbound.go @@ -150,8 +150,8 @@ func (m *Manager) ListHandlers(ctx context.Context) []outbound.Handler { m.access.RLock() defer m.access.RUnlock() - var response []outbound.Handler - copy(m.untaggedHandlers, response) + response := make([]outbound.Handler, len(m.untaggedHandlers)) + copy(response, m.untaggedHandlers) for _, v := range m.taggedHandler { response = append(response, v)