mirror of https://github.com/XTLS/Xray-core
				
				
				
			app/proxyman/inbound/inbound.go: Fix ListHandlers() (#4976)
Fixes https://github.com/XTLS/Xray-core/issues/4956pull/4980/head
							parent
							
								
									7cbf5b004c
								
							
						
					
					
						commit
						00f3147242
					
				| 
						 | 
				
			
			@ -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)
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue