util

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Diff

func Diff(a, b []string) ([]string, []string)

Diff computes the diff of two string slices a and b, returns a-b and b-a

func IsClosedErr added in v0.11.1

func IsClosedErr(err error) bool

IsClosedErr is a helper function to check for "already closed" errors, which are usually harmless but still show up in logs, code adapted from https://stackoverflow.com/questions/44974984/how-to-check-a-net-conn-is-closed

func Member

func Member(list []string, a string) bool

check is list contains element a

func NewFileConn added in v0.11.3

func NewFileConn(file *os.File) net.Conn

NewFileConn returns a wrapper that shows an os.File as a net.Conn.

func Remove

func Remove(ss []string, e string) []string

Remove removes a given element from string slice

func Unique

func Unique(s []string) []string

Unique returns unique elements in a string slice

Types

type Endpoint added in v0.16.2

type Endpoint struct {
	// contains filtered or unexported fields
}

Endpoint is a pair of an IP prefix and a port range.

func ParseEndpoint added in v0.16.2

func ParseEndpoint(ep string) (*Endpoint, error)

ParseEndpoint parses an endpoint from the canonical format: "<IP>[optional slash and prefix length]:<minPort-maxPort)."

func (*Endpoint) Contains added in v0.16.2

func (ep *Endpoint) Contains(ip net.IP) bool

Contains reports whether the endppoint network includes ip.

func (*Endpoint) Match added in v0.16.2

func (ep *Endpoint) Match(ip net.IP, port int) bool

Contains reports whether the endppoint network includes ip and port. If port is zero then port-matching is disabled.

func (*Endpoint) Network added in v0.16.2

func (ep *Endpoint) Network() string

func (*Endpoint) String added in v0.16.2

func (ep *Endpoint) String() string

type FileConn added in v0.11.3

type FileConn struct {
	// contains filtered or unexported fields
}

func (*FileConn) Close added in v0.11.3

func (f *FileConn) Close() error

func (*FileConn) LocalAddr added in v0.11.3

func (f *FileConn) LocalAddr() net.Addr

func (*FileConn) Read added in v0.11.3

func (f *FileConn) Read(b []byte) (n int, err error)

func (*FileConn) RemoteAddr added in v0.11.3

func (f *FileConn) RemoteAddr() net.Addr

func (*FileConn) SetDeadline added in v0.11.3

func (f *FileConn) SetDeadline(t time.Time) error

func (*FileConn) SetReadDeadline added in v0.11.3

func (f *FileConn) SetReadDeadline(t time.Time) error

func (*FileConn) SetWriteDeadline added in v0.11.3

func (f *FileConn) SetWriteDeadline(t time.Time) error

func (*FileConn) Write added in v0.11.3

func (f *FileConn) Write(b []byte) (n int, err error)

type FileConnAddr added in v0.11.3

type FileConnAddr struct {
	File *os.File
}

func (*FileConnAddr) Network added in v0.11.3

func (s *FileConnAddr) Network() string

func (*FileConnAddr) String added in v0.11.3

func (s *FileConnAddr) String() string

type PacketConnPool added in v0.14.1

type PacketConnPool interface {
	// Make creates a PacketConnPool, caller must make sure to close the sockets.
	Make(network, address string) ([]net.PacketConn, error)
	// Size returns the number of sockets in the pool.
	Size() int
}

PacketConnPool is a factory to create pools of related PacketConns, which may either be a set of PacketConns bound to the same local IP using SO_REUSEPORT (on unix, under certain circumstances) that can do multithreaded readloops, or a single PacketConn as a fallback for non-unic architectures and for testing.

func NewPacketConnPool added in v0.14.1

func NewPacketConnPool(listenerName string, vnet transport.Net, threadNum int) PacketConnPool

NewPacketConnPool creates a new packet connection pool. Pooling is disabled if threadNum is zero or if we are running on top of transport.VNet (which does not support reuseport), or if we are on non-unix, see the fallback in socketpool.go.

Jump to

Keyboard shortcuts

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