mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-09-01 14:21:38 +00:00
Defer implicit default HTTP client fallback to first use
This commit is contained in:
parent
16fe1e7ee0
commit
6e4f70f155
1 changed files with 14 additions and 10 deletions
|
|
@ -69,21 +69,25 @@ func (m *Manager) Start(stage adapter.StartStage) error {
|
|||
return E.Cause(err, "resolve default http client")
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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 {
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue