Add NSURLSession http client engine

This commit is contained in:
世界
2026-04-14 00:14:05 +08:00
parent ccfdbf2d57
commit 334dd6e5c0
42 changed files with 3331 additions and 1057 deletions

View File

@@ -39,9 +39,6 @@ func NewCertificateProvider(ctx context.Context, _ log.ContextLogger, tag string
return nil, E.New("missing tailscale endpoint tag")
}
endpointManager := service.FromContext[adapter.EndpointManager](ctx)
if endpointManager == nil {
return nil, E.New("missing endpoint manager in context")
}
rawEndpoint, loaded := endpointManager.Get(options.Endpoint)
if !loaded {
return nil, E.New("endpoint not found: ", options.Endpoint)

View File

@@ -171,9 +171,9 @@ func (t *DNSTransport) createResolver(directDialer func() N.Dialer, resolver *dn
tlsConfig := common.Must1(tls.NewClient(t.ctx, t.logger, serverAddr.AddrString(), option.OutboundTLSOptions{
ALPN: []string{http2.NextProtoTLS, "http/1.1"},
}))
return transport.NewHTTPRaw(t.TransportAdapter, t.logger, myDialer, serverURL, http.Header{}, tlsConfig, option.HTTPClientOptions{}, http.MethodPost)
return transport.NewHTTPRaw(t.TransportAdapter, t.logger, myDialer, serverURL, http.Header{}, tlsConfig, http.MethodPost)
case "http":
return transport.NewHTTPRaw(t.TransportAdapter, t.logger, myDialer, serverURL, http.Header{}, nil, option.HTTPClientOptions{}, http.MethodPost)
return transport.NewHTTPRaw(t.TransportAdapter, t.logger, myDialer, serverURL, http.Header{}, nil, http.MethodPost)
// case "tls":
default:
return nil, E.New("unknown resolver scheme: ", serverURL.Scheme)

View File

@@ -219,10 +219,7 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL
}
dnsRouter := service.FromContext[adapter.DNSRouter](ctx)
httpClientManager := service.FromContext[adapter.HTTPClientManager](ctx)
if httpClientManager == nil {
return nil, E.New("missing HTTP client manager")
}
controlTransport, err := httpClientManager.ResolveTransport(logger, controlHTTPClientOptions)
controlTransport, err := httpClientManager.ResolveTransport(ctx, logger, controlHTTPClientOptions)
if err != nil {
return nil, E.Cause(err, "create control HTTP client")
}