Documentation
¶
Overview ¶
Package httptransport contains HTTP transport extensions. Here we define a http.Transport that emits events.
Index ¶
- Variables
- func NewSystemTransport(dialer Dialer, tlsDialer TLSDialer) *http.Transport
- type ByteCountingTransport
- type Config
- type Dialer
- 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 ¶
var CertPool *x509.CertPool
CertPool is the certificate pool we're using by default
Functions ¶
Types ¶
type ByteCountingTransport ¶
type ByteCountingTransport struct {
RoundTripper
Counter *bytecounter.Counter
}
ByteCountingTransport is a RoundTripper that counts bytes.
type Config ¶
type Config struct {
BaseResolver Resolver // default: system resolver
BogonIsError bool // default: bogon is not error
ByteCounter *bytecounter.Counter // default: no explicit byte counting
CacheResolutions bool // default: no caching
ContextByteCounting bool // default: no implicit byte counting
DNSCache map[string][]string // default: cache is empty
DialSaver *trace.Saver // default: not saving dials
Dialer Dialer // default: dialer.DNSDialer
FullResolver Resolver // default: base resolver + goodies
HTTPSaver *trace.Saver // default: not saving HTTP
Logger Logger // default: no logging
NoTLSVerify bool // default: perform TLS verify
ProxyURL *url.URL // default: no proxy
ReadWriteSaver *trace.Saver // default: not saving read/write
ResolveSaver *trace.Saver // default: not saving resolves
TLSConfig *tls.Config // default: attempt using h2
TLSDialer TLSDialer // default: dialer.TLSDialer
TLSSaver *trace.Saver // defaukt: not saving TLS
}
Config contains configuration for creating a new transport. When any field of Config is nil/empty, we will use a suitable default.
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 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
func NewResolver ¶ added in v0.11.0
NewResolver creates a new resolver from the specified config
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 New ¶
func New(config Config) RoundTripper
New creates a new RoundTripper. You can further extend the returned RoundTripper before wrapping it into an http.Client.
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
}
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.
func NewTLSDialer ¶ added in v0.11.0
NewTLSDialer creates a new TLSDialer from the specified config
type UserAgentTransport ¶
type UserAgentTransport struct {
RoundTripper
}
UserAgentTransport is a transport that ensures that we always set an OONI specific default User-Agent header.