diff --git a/adapter/outbound/manager.go b/adapter/outbound/manager.go index 1bbad69e..52c5b6aa 100644 --- a/adapter/outbound/manager.go +++ b/adapter/outbound/manager.go @@ -55,7 +55,7 @@ func (m *Manager) Start(stage adapter.StartStage) error { } m.started = true m.stage = stage - if stage == adapter.StartStateStart { + if stage == adapter.StartStateInitialize { if m.defaultTag != "" && m.defaultOutbound == nil { defaultEndpoint, loaded := m.endpoint.Get(m.defaultTag) if !loaded { @@ -74,20 +74,19 @@ func (m *Manager) Start(stage adapter.StartStage) error { m.outboundByTag[directOutbound.Tag()] = directOutbound m.defaultOutbound = directOutbound } - outbounds := m.outbounds - m.access.Unlock() + } + outbounds := m.outbounds + m.access.Unlock() + if stage == adapter.StartStateStart { return m.startOutbounds(append(outbounds, common.Map(m.endpoint.Endpoints(), func(it adapter.Endpoint) adapter.Outbound { return it })...)) - } else { - outbounds := m.outbounds - m.access.Unlock() - for _, outbound := range outbounds { - name := "outbound/" + outbound.Type() + "[" + outbound.Tag() + "]" - done := adapter.LogElapsed(m.logger, stage, " ", name) - err := adapter.LegacyStart(outbound, stage) - done() - if err != nil { - return E.Cause(err, stage, " ", name) - } + } + for _, outbound := range outbounds { + name := "outbound/" + outbound.Type() + "[" + outbound.Tag() + "]" + done := adapter.LogElapsed(m.logger, stage, " ", name) + err := adapter.LegacyStart(outbound, stage) + done() + if err != nil { + return E.Cause(err, stage, " ", name) } } return nil diff --git a/dns/transport_manager.go b/dns/transport_manager.go index e289ccea..873cae82 100644 --- a/dns/transport_manager.go +++ b/dns/transport_manager.go @@ -56,7 +56,7 @@ func (m *TransportManager) Start(stage adapter.StartStage) error { } m.started = true m.stage = stage - if stage == adapter.StartStateStart { + if stage == adapter.StartStateInitialize { if m.defaultTag != "" && m.defaultTransport == nil { m.access.Unlock() return E.New("default DNS server not found: ", m.defaultTag) @@ -71,17 +71,16 @@ func (m *TransportManager) Start(stage adapter.StartStage) error { m.transportByTag[defaultTransport.Tag()] = defaultTransport m.defaultTransport = defaultTransport } - transports := m.transports - m.access.Unlock() + } + transports := m.transports + m.access.Unlock() + if stage == adapter.StartStateStart { return m.startTransports(transports) - } else { - transports := m.transports - m.access.Unlock() - for _, outbound := range transports { - err := adapter.LegacyStart(outbound, stage) - if err != nil { - return E.Cause(err, stage, " dns/", outbound.Type(), "[", outbound.Tag(), "]") - } + } + for _, transport := range transports { + err := adapter.LegacyStart(transport, stage) + if err != nil { + return E.Cause(err, stage, " dns/", transport.Type(), "[", transport.Tag(), "]") } } return nil