mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-10-27 13:36:57 +00:00
Defer implicit default HTTP client fallback to first use
This commit is contained in:
@@ -69,21 +69,25 @@ func (m *Manager) Start(stage adapter.StartStage) error {
|
|||||||
return E.Cause(err, "resolve default http client")
|
return E.Cause(err, "resolve default http client")
|
||||||
}
|
}
|
||||||
m.defaultTransport = sharedTransport
|
m.defaultTransport = sharedTransport
|
||||||
} else if m.defaultTransportFallback != nil {
|
|
||||||
transport, err := m.defaultTransportFallback()
|
|
||||||
if err != nil {
|
|
||||||
return E.Cause(err, "create default http client")
|
|
||||||
}
|
|
||||||
m.trackTransport(transport)
|
|
||||||
m.defaultTransport = &sharedManagedTransport{
|
|
||||||
managed: transport,
|
|
||||||
shared: &sharedState{},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Manager) DefaultTransport() adapter.HTTPTransport {
|
func (m *Manager) DefaultTransport() adapter.HTTPTransport {
|
||||||
|
m.access.Lock()
|
||||||
|
defer m.access.Unlock()
|
||||||
|
if m.defaultTransport == nil && m.defaultTransportFallback != nil {
|
||||||
|
transport, err := m.defaultTransportFallback()
|
||||||
|
if err != nil {
|
||||||
|
m.logger.Error(E.Cause(err, "create default http client"))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
m.managedTransports = append(m.managedTransports, transport)
|
||||||
|
m.defaultTransport = &sharedManagedTransport{
|
||||||
|
managed: transport,
|
||||||
|
shared: &sharedState{},
|
||||||
|
}
|
||||||
|
}
|
||||||
if m.defaultTransport == nil {
|
if m.defaultTransport == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user