Fix outbound start

This commit is contained in:
世界 2025-08-21 09:41:31 +08:00
parent 1468d83895
commit 22782ca6fc
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4

View File

@ -56,6 +56,14 @@ func (m *Manager) Start(stage adapter.StartStage) error {
m.started = true m.started = true
m.stage = stage m.stage = stage
if stage == adapter.StartStateStart { if stage == adapter.StartStateStart {
if m.defaultTag != "" && m.defaultOutbound == nil {
defaultEndpoint, loaded := m.endpoint.Get(m.defaultTag)
if !loaded {
m.access.Unlock()
return E.New("default outbound not found: ", m.defaultTag)
}
m.defaultOutbound = defaultEndpoint
}
if m.defaultOutbound == nil { if m.defaultOutbound == nil {
directOutbound, err := m.defaultOutboundFallback() directOutbound, err := m.defaultOutboundFallback()
if err != nil { if err != nil {
@ -66,14 +74,6 @@ func (m *Manager) Start(stage adapter.StartStage) error {
m.outboundByTag[directOutbound.Tag()] = directOutbound m.outboundByTag[directOutbound.Tag()] = directOutbound
m.defaultOutbound = directOutbound m.defaultOutbound = directOutbound
} }
if m.defaultTag != "" && m.defaultOutbound == nil {
defaultEndpoint, loaded := m.endpoint.Get(m.defaultTag)
if !loaded {
m.access.Unlock()
return E.New("default outbound not found: ", m.defaultTag)
}
m.defaultOutbound = defaultEndpoint
}
outbounds := m.outbounds outbounds := m.outbounds
m.access.Unlock() m.access.Unlock()
return m.startOutbounds(append(outbounds, common.Map(m.endpoint.Endpoints(), func(it adapter.Endpoint) adapter.Outbound { return it })...)) return m.startOutbounds(append(outbounds, common.Map(m.endpoint.Endpoints(), func(it adapter.Endpoint) adapter.Outbound { return it })...))