Documentation
¶
Overview ¶
Package httptransport contains HTTP transport extensions.
Index ¶
- type ByteCountingTransport
- type Config
- type Dialer
- type HTTP3Dialer
- type HTTP3Transport
- type Logger
- type LoggingTransport
- type Resolver
- type RoundTripper
- type SaverBodyHTTPTransport
- type SaverMetadataHTTPTransport
- type SaverPerformanceHTTPTransport
- type SaverTransactionHTTPTransport
- type TLSDialer
- type UserAgentTransport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ByteCountingTransport ¶
type ByteCountingTransport struct {
RoundTripper
Counter *bytecounter.Counter
}
ByteCountingTransport is a RoundTripper that counts bytes.
type Config ¶
type Config struct {
Dialer Dialer
HTTP3Dialer HTTP3Dialer
TLSDialer TLSDialer
}
Config contains the configuration required for constructing an HTTP transport
type Dialer ¶
type Dialer interface {
DialContext(ctx context.Context, network, address string) (net.Conn, error)
}
Dialer is the definition of dialer assumed by this package.
type HTTP3Dialer ¶ added in v0.20.0
type HTTP3Dialer interface {
Dial(network, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlySession, error)
}
HTTP3Dialer is the definition of dialer for HTTP3 transport assumed by this package.
type HTTP3Transport ¶ added in v0.20.0
type HTTP3Transport struct {
http3.RoundTripper
}
HTTP3Transport is a httptransport.RoundTripper using the http3 protocol.
func (*HTTP3Transport) CloseIdleConnections ¶ added in v0.20.0
func (t *HTTP3Transport) CloseIdleConnections()
CloseIdleConnections closes all the connections opened by this transport.
type LoggingTransport ¶
type LoggingTransport struct {
RoundTripper
Logger Logger
}
LoggingTransport is a logging transport
type Resolver ¶
type Resolver interface {
LookupHost(ctx context.Context, hostname string) (addrs []string, err error)
Network() string
Address() string
}
Resolver is the interface we expect from a resolver
type RoundTripper ¶
type RoundTripper interface {
RoundTrip(req *http.Request) (*http.Response, error)
CloseIdleConnections()
}
RoundTripper is the definition of http.RoundTripper used by this package.
func NewHTTP3Transport ¶ added in v0.20.0
func NewHTTP3Transport(config Config) RoundTripper
NewHTTP3Transport creates a new HTTP3Transport instance.
func NewSystemTransport ¶
func NewSystemTransport(config Config) RoundTripper
NewSystemTransport creates a new "system" HTTP transport. That is a transport using the Go standard library with custom dialer and TLS dialer.
type SaverBodyHTTPTransport ¶ added in v0.11.0
type SaverBodyHTTPTransport struct {
RoundTripper
Saver *trace.Saver
SnapshotSize int
}
SaverBodyHTTPTransport is a RoundTripper that saves body events occurring during the round trip
type SaverMetadataHTTPTransport ¶ added in v0.11.0
type SaverMetadataHTTPTransport struct {
RoundTripper
Saver *trace.Saver
Transport string
}
SaverMetadataHTTPTransport is a RoundTripper that saves events related to HTTP request and response metadata
type SaverPerformanceHTTPTransport ¶ added in v0.11.0
type SaverPerformanceHTTPTransport struct {
RoundTripper
Saver *trace.Saver
}
SaverPerformanceHTTPTransport is a RoundTripper that saves performance events occurring during the round trip
type SaverTransactionHTTPTransport ¶ added in v0.11.0
type SaverTransactionHTTPTransport struct {
RoundTripper
Saver *trace.Saver
}
SaverTransactionHTTPTransport is a RoundTripper that saves events related to the HTTP transaction
type TLSDialer ¶
type TLSDialer interface {
DialTLSContext(ctx context.Context, network, address string) (net.Conn, error)
}
TLSDialer is the definition of a TLS dialer assumed by this package.
type UserAgentTransport ¶
type UserAgentTransport struct {
RoundTripper
}
UserAgentTransport is a transport that ensures that we always set an OONI specific default User-Agent header.