network

package
v2.1.13 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Network contains a default implementation of the network.

Please see mtglib.Network interface to get some basic idea behind this abstraction.

This implementation is more simple that v1 because life shows that all this complexity, especially around circuit breakers and DoH is not really required. There is no chance that if DNS address is spoofed, that real IP would work as expected.

Index

Constants

View Source
const (
	// DefaultTimeout is a default timeout for establishing TCP connection.
	DefaultTimeout = 10 * time.Second

	// DefaultHTTPTimeout defines a default timeout for making HTTP request.
	DefaultHTTPTimeout = 10 * time.Second

	// DefaultIdleTimeout defines a timeout for idle HTTP connections
	DefaultIdleTimeout = time.Minute

	// DefaultTCPKeepAlivePeriod defines a time period between 2 consecuitive
	// probes.
	DefaultTCPKeepAlivePeriod = 10 * time.Second
)

Variables

View Source
var ErrCannotDial = errors.New("cannot dial to any address")

Functions

func GetDNS

func GetDNS(u *url.URL) (*net.Resolver, error)

func NewProxyNetwork

func NewProxyNetwork(base Network, proxyURL *url.URL) (*proxyNetwork, error)

Types

type Network

type Network interface {
	mtglib.Network

	NativeDialer() *net.Dialer
}

func Join

func Join(networks ...Network) (Network, error)

func New

func New(
	dnsResolver *net.Resolver,
	userAgent string,
	tcpTimeout,
	httpTimeout,
	idleTimeout time.Duration,
) Network

Jump to

Keyboard shortcuts

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