e4f10eeac2
The objective of this diff is to simplify the code inside engine/netx while moving more bits of code inside netxlite. See https://github.com/ooni/probe/issues/2121
40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
// Package httptransport contains HTTP transport extensions.
|
|
package httptransport
|
|
|
|
import (
|
|
"crypto/tls"
|
|
|
|
"github.com/ooni/probe-cli/v3/internal/model"
|
|
"github.com/ooni/probe-cli/v3/internal/netxlite"
|
|
)
|
|
|
|
// Config contains the configuration required for constructing an HTTP transport
|
|
type Config struct {
|
|
Dialer model.Dialer
|
|
QUICDialer model.QUICDialer
|
|
TLSDialer model.TLSDialer
|
|
TLSConfig *tls.Config
|
|
}
|
|
|
|
// NewHTTP3Transport creates a new HTTP3Transport instance.
|
|
//
|
|
// Deprecation warning
|
|
//
|
|
// New code should use netxlite.NewHTTP3Transport instead.
|
|
func NewHTTP3Transport(config Config) model.HTTPTransport {
|
|
// Rationale for using NoLogger here: previously this code did
|
|
// not use a logger as well, so it's fine to keep it as is.
|
|
return netxlite.NewHTTP3Transport(model.DiscardLogger,
|
|
config.QUICDialer, config.TLSConfig)
|
|
}
|
|
|
|
// NewSystemTransport creates a new "system" HTTP transport. That is a transport
|
|
// using the Go standard library with custom dialer and TLS dialer.
|
|
//
|
|
// Deprecation warning
|
|
//
|
|
// New code should use netxlite.NewHTTPTransport instead.
|
|
func NewSystemTransport(config Config) model.HTTPTransport {
|
|
return netxlite.NewOOHTTPBaseTransport(config.Dialer, config.TLSDialer)
|
|
}
|