common

package
v4.0.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2019 License: BSD-3-Clause, GPL-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BALANCE_INTERVAL      = 60 * time.Second
	SPEED_UPDATE_INTERVAL = 10 // Second
	LOOKUP_TIMEOUT        = 5 * time.Second
	SRV_LOOKUP_TIMEOUT    = 3 * time.Second // system default 5s * 2
	AUTH_TIMEOUT          = 2 * time.Second // RTO=1
	RECV_IV_TIMEOUT       = 2 * time.Second
	DIAL_TIMEOUT          = 36 * time.Second
	SRV_DIAL_TIMEOUT      = 16 * time.Second // system default 63s
	LOGIN_GAP             = 10
	MAXDATASIZE           = 1<<16 - 16
	DEFAULTSIZE           = 1 << 15
	WINDOWSIZE            = 4 * 1024 * 1024
	DIALRETRY             = 2
	DNSRETRY              = 2
	DNS_MAX_CACHE         = 1024
	DEBUG_FRAME           = false
	DEBUG_DNS             = false
	DEBUG_CRYPTO          = false
	MIN_TLS_VERSION       = tls.VersionTLS13
)

https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

Variables

WRITE_TIMEOUT = 1 * time.Second

View Source
var CurvePreferences []tls.CurveID = []tls.CurveID{
	tls.X25519,
}
View Source
var (
	ErrFalseDialer = errors.New("not allow to dail")
)
View Source
var TlsCipherText = map[uint16]string{
	tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: "ECDHE_ECDSA_AES128GCM_SHA256",
	tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:   "ECDHE_RSA_AES128GCM_SHA256",
	tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: "ECDHE_ECDSA_AES256GCM_SHA384",
	tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:   "ECDHE_RSA_AES256GCM_SHA384",
	tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305:  "ECDHE_ECDSA_CHACHA20_POLY1305",
	tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305:    "ECDHE_RSA_CHACHA20_POLY1305",
	tls.TLS_AES_128_GCM_SHA256:                  "AES128GCM_SHA256",
	tls.TLS_AES_256_GCM_SHA384:                  "AES256GCM_SHA384",
	tls.TLS_CHACHA20_POLY1305_SHA256:            "CHACHA20_POLY1305_SHA256",
}
View Source
var TlsVersionText = map[uint16]string{
	tls.VersionTLS12: "TLS12",
	tls.VersionTLS13: "TLS13",
}

Functions

func CopyLink(dst, src io.ReadWriteCloser)

func DebugDNS

func DebugDNS(quiz, resp *dns.Msg)

func Dur2Str

func Dur2Str(d time.Duration) (s string)

func FormatTlsState

func FormatTlsState(conn *tls.Conn) (s string)

func GetServersFromConf

func GetServersFromConf(conffile string) (addrs []string, err error)

func ListenAndServe

func ListenAndServe(network, address string, handler Handler) (err error)

func ListenAndServeFunc

func ListenAndServeFunc(network, address string, handle func(net.Conn) error) (err error)

func LoadJson

func LoadJson(configfile string, cfg interface{}) (err error)

func Serve

func Serve(listener net.Listener, handler Handler) (err error)

func ServeFunc

func ServeFunc(listener net.Listener, handle func(net.Conn) error) (err error)

func SetLogging

func SetLogging(logfile, loglevel string)

func UDPListenAndServe

func UDPListenAndServe(network, address string, handler UDPHandler) (err error)

func UDPListenAndServeFunc

func UDPListenAndServeFunc(network, address string, handle func(*net.UDPConn) error) (err error)

func WriteFull

func WriteFull(w io.Writer, b []byte) (err error)

Types

type Dialer

type Dialer interface {
	Dial(string, string) (net.Conn, error)
	DialTimeout(string, string, time.Duration) (net.Conn, error)
}
var Default4Dialer Dialer = &Net4Dialer{}
var DefaultDialer Dialer = &NetDialer{}
var DefaultFalseDialer Dialer = &FalseDialer{}

type DnsExchanger

type DnsExchanger struct {
	Servers []string
	// contains filtered or unexported fields
}

func NewDnsExchanger

func NewDnsExchanger(servers []string, dnsnet string) (d *DnsExchanger)

func (*DnsExchanger) Exchange

func (dxchg *DnsExchanger) Exchange(quiz *dns.Msg) (resp *dns.Msg, err error)

func (*DnsExchanger) ExchangeContext

func (dxchg *DnsExchanger) ExchangeContext(ctx context.Context, quiz *dns.Msg) (resp *dns.Msg, d time.Duration, err error)

type ExchangeResolver

type ExchangeResolver struct {
	Exchanger
}

func (*ExchangeResolver) LookupIP

func (xchg *ExchangeResolver) LookupIP(host string) (addrs []net.IP, err error)

func (*ExchangeResolver) LookupIPContext

func (xchg *ExchangeResolver) LookupIPContext(ctx context.Context, host string) (addrs []net.IP, err error)

type Exchanger

type Exchanger interface {
	Exchange(*dns.Msg) (*dns.Msg, error)
	ExchangeContext(context.Context, *dns.Msg) (*dns.Msg, time.Duration, error)
}
var DefaultExchanger Exchanger

type FalseDialer

type FalseDialer struct {
}

func (*FalseDialer) Dial

func (fd *FalseDialer) Dial(network, address string) (conn net.Conn, err error)

func (*FalseDialer) DialTimeout

func (fd *FalseDialer) DialTimeout(network, address string, timeout time.Duration) (conn net.Conn, err error)

type Handler

type Handler interface {
	ServeConn(net.Conn) error
}

type Net4Dialer

type Net4Dialer struct {
}

func (*Net4Dialer) Dial

func (nd *Net4Dialer) Dial(network, address string) (conn net.Conn, err error)

func (*Net4Dialer) DialTimeout

func (nd *Net4Dialer) DialTimeout(network, address string, timeout time.Duration) (conn net.Conn, err error)

type NetDialer

type NetDialer struct {
}

func (*NetDialer) Dial

func (nd *NetDialer) Dial(network, address string) (conn net.Conn, err error)

func (*NetDialer) DialTimeout

func (nd *NetDialer) DialTimeout(network, address string, timeout time.Duration) (conn net.Conn, err error)

type NetResolver

type NetResolver struct {
	net.Resolver
}

func (*NetResolver) LookupIP

func (n *NetResolver) LookupIP(host string) (addrs []net.IP, err error)

func (*NetResolver) LookupIPContext

func (n *NetResolver) LookupIPContext(ctx context.Context, host string) (addrs []net.IP, err error)

type Resolver

type Resolver interface {
	LookupIP(string) ([]net.IP, error)
	LookupIPContext(context.Context, string) ([]net.IP, error)
}
var DefaultResolver Resolver = &NetResolver{}

type UDPHandler

type UDPHandler interface {
	ServeConn(*net.UDPConn) error
}

Jump to

Keyboard shortcuts

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