Documentation ¶
Overview ¶
Package internal contains internal code.
Index ¶
- func ChainResolvers(primary, secondary modelx.DNSResolver) modelx.DNSResolver
- func NewResolver(beginning time.Time, handler modelx.Handler, network, address string) (modelx.DNSResolver, error)
- type Dialer
- func (d *Dialer) ConfigureDNS(network, address string) error
- func (d *Dialer) Dial(network, address string) (net.Conn, error)
- func (d *Dialer) DialContext(ctx context.Context, network, address string) (conn net.Conn, err error)
- func (d *Dialer) DialTLS(network, address string) (net.Conn, error)
- func (d *Dialer) DialTLSContext(ctx context.Context, network, address string) (net.Conn, error)
- func (d *Dialer) ForceSkipVerify() error
- func (d *Dialer) ForceSpecificSNI(sni string) error
- func (d *Dialer) SetCABundle(path string) error
- func (d *Dialer) SetResolver(r modelx.DNSResolver)
- type HTTPTransport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChainResolvers ¶
func ChainResolvers(primary, secondary modelx.DNSResolver) modelx.DNSResolver
ChainResolvers chains a primary and a secondary resolver such that we can fallback to the secondary if primary is broken.
func NewResolver ¶
func NewResolver( beginning time.Time, handler modelx.Handler, network, address string, ) (modelx.DNSResolver, error)
NewResolver returns a new resolver
Types ¶
type Dialer ¶
type Dialer struct { Beginning time.Time Handler modelx.Handler Resolver modelx.DNSResolver TLSConfig *tls.Config }
Dialer defines the dialer API. We implement the most basic form of DNS, but more advanced resolutions are possible.
func (*Dialer) ConfigureDNS ¶
ConfigureDNS implements netx.Dialer.ConfigureDNS.
func (*Dialer) DialContext ¶
func (d *Dialer) DialContext( ctx context.Context, network, address string, ) (conn net.Conn, err error)
DialContext is like Dial but the context allows to interrupt a pending connection attempt at any time.
func (*Dialer) DialTLSContext ¶
DialTLSContext is like DialTLS, but with context
func (*Dialer) ForceSkipVerify ¶
ForceSkipVerify forces to skip certificate verification
func (*Dialer) ForceSpecificSNI ¶
ForceSpecificSNI forces using a specific SNI.
func (*Dialer) SetCABundle ¶
SetCABundle configures the dialer to use a specific CA bundle.
func (*Dialer) SetResolver ¶
func (d *Dialer) SetResolver(r modelx.DNSResolver)
SetResolver implements netx.Dialer.SetResolver.
type HTTPTransport ¶
type HTTPTransport struct { Transport *http.Transport Handler modelx.Handler Beginning time.Time // contains filtered or unexported fields }
HTTPTransport performs single HTTP transactions and emits measurement events as they happen.
func NewHTTPTransport ¶
func NewHTTPTransport( beginning time.Time, handler modelx.Handler, dialer *Dialer, disableKeepAlives bool, proxyFunc func(*http.Request) (*url.URL, error), ) *HTTPTransport
NewHTTPTransport creates a new Transport.
func (*HTTPTransport) CloseIdleConnections ¶
func (t *HTTPTransport) CloseIdleConnections()
CloseIdleConnections closes the idle connections.
Directories ¶
Path | Synopsis |
---|---|
Package connid contains code to generate the connectionID
|
Package connid contains code to generate the connectionID |
Package dialer contains the dialer's API.
|
Package dialer contains the dialer's API. |
connx
Package connx contains net.Conn extensions
|
Package connx contains net.Conn extensions |
dialerbase
Package dialerbase contains the base dialer functionality.
|
Package dialerbase contains the base dialer functionality. |
dnsdialer
Package dnsdialer contains a dialer with DNS lookups.
|
Package dnsdialer contains a dialer with DNS lookups. |
tlsdialer
Package tlsdialer contains the TLS dialer
|
Package tlsdialer contains the TLS dialer |
Package errwrapper contains our error wrapper
|
Package errwrapper contains our error wrapper |
Package httptransport contains HTTP transport extensions.
|
Package httptransport contains HTTP transport extensions. |
bodytracer
Package bodytracer contains the HTTP body tracer.
|
Package bodytracer contains the HTTP body tracer. |
tracetripper
Package tracetripper contains the tracing round tripper
|
Package tracetripper contains the tracing round tripper |
transactioner
Package transactioner contains the transaction assigning round tripper
|
Package transactioner contains the transaction assigning round tripper |
Package resolver contains code to create a resolver
|
Package resolver contains code to create a resolver |
bogondetector
Package bogondetector contains code to determine if an IP is private/bogon.
|
Package bogondetector contains code to determine if an IP is private/bogon. |
brokenresolver
Package brokenresolver is a broken resolver
|
Package brokenresolver is a broken resolver |
chainresolver
Package chainresolver allows to chain two resolvers
|
Package chainresolver allows to chain two resolvers |
dnstransport/dnsoverhttps
Package dnsoverhttps implements DNS over HTTPS.
|
Package dnsoverhttps implements DNS over HTTPS. |
dnstransport/dnsovertcp
Package dnsovertcp implements DNS over TCP.
|
Package dnsovertcp implements DNS over TCP. |
dnstransport/dnsoverudp
Package dnsoverudp implements DNS over UDP.
|
Package dnsoverudp implements DNS over UDP. |
ooniresolver
Package ooniresolver is OONI's DNS resolver.
|
Package ooniresolver is OONI's DNS resolver. |
parentresolver
Package parentresolver contains the parent resolver
|
Package parentresolver contains the parent resolver |
systemresolver
Package systemresolver contains the system resolver
|
Package systemresolver contains the system resolver |
Package transactionid contains code to share the transactionID
|
Package transactionid contains code to share the transactionID |