internal

package
v0.0.0-...-11e21a6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2020 License: BSD-3-Clause Imports: 19 Imported by: 0

Documentation

Overview

Package internal contains internal code.

Index

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 NewDialer

func NewDialer(
	beginning time.Time, handler modelx.Handler,
) (d *Dialer)

NewDialer creates a new Dialer.

func (*Dialer) ConfigureDNS

func (d *Dialer) ConfigureDNS(network, address string) error

ConfigureDNS implements netx.Dialer.ConfigureDNS.

func (*Dialer) Dial

func (d *Dialer) Dial(network, address string) (net.Conn, error)

Dial creates a TCP or UDP connection. See net.Dial docs.

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) DialTLS

func (d *Dialer) DialTLS(network, address string) (net.Conn, error)

DialTLS is like Dial, but creates TLS connections.

func (*Dialer) DialTLSContext

func (d *Dialer) DialTLSContext(
	ctx context.Context, network, address string,
) (net.Conn, error)

DialTLSContext is like DialTLS, but with context

func (*Dialer) ForceSkipVerify

func (d *Dialer) ForceSkipVerify() error

ForceSkipVerify forces to skip certificate verification

func (*Dialer) ForceSpecificSNI

func (d *Dialer) ForceSpecificSNI(sni string) error

ForceSpecificSNI forces using a specific SNI.

func (*Dialer) SetCABundle

func (d *Dialer) SetCABundle(path string) error

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.

func (*HTTPTransport) RoundTrip

func (t *HTTPTransport) RoundTrip(
	req *http.Request,
) (resp *http.Response, err error)

RoundTrip executes a single HTTP transaction, returning a Response for the provided Request.

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL