Defer implicit default HTTP client fallback to first use

This commit is contained in:
世界 2026-04-17 16:26:51 +08:00
parent 16fe1e7ee0
commit 6e4f70f155
No known key found for this signature in database
GPG key ID: CD109927C34A63C4

View file

@ -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
}