netutil

package
v1.14.1 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2023 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllIPAddr

func AllIPAddr() string

AllIPAddr returns a catch-all IP address to bind. If the machine supports IP dual stack, "::" is returned. Otherwise "0.0.0.0" is returned.

func BidiCopy added in v1.11.0

func BidiCopy(conn1, conn2 io.ReadWriteCloser, isClient bool) error

BidiCopy does bi-directional data copy.

func IsIPDualStack

func IsIPDualStack() bool

IsIPDualStack returns true if an IPv6 socket is able to send and receive both IPv4 and IPv6 packets.

This function only supports Linux. It always returns false if running other operating systems.

func LocalIPAddr added in v1.7.0

func LocalIPAddr() string

LocalIPAddr returns the localhost IP address.

func MaybeDecorateIPv6

func MaybeDecorateIPv6(addr string) string

MaybeDecorateIPv6 adds [ and ] before and after an IPv6 address. If the input string is a IPv4 address or not a valid IP address (e.g. is a domain), the same string is returned.

func ReuseAddrPort added in v1.4.0

func ReuseAddrPort(network, address string, conn syscall.RawConn) error

ReuseAddrPort sets SO_REUSEADDR and SO_REUSEPORT options to a given connection.

func SendReceive added in v1.11.0

func SendReceive(ctx context.Context, conn net.Conn, req []byte) (resp []byte, err error)

SendReceive sends a request to the connection and returns the response. The maxinum size of response is 4096 bytes.

func UnusedTCPPort added in v1.13.0

func UnusedTCPPort() (int, error)

UnusedTCPPort returns an unused TCP port.

func UnusedUDPPort added in v1.13.0

func UnusedUDPPort() (int, error)

UnusedUDPPort returns an unused UDP port.

func WaitForClose added in v1.9.1

func WaitForClose(conn net.Conn)

WaitForClose blocks the go routine. It returns when the peer closes the connection. In the meanwhile, everything send by the peer is discarded.

Types

type HierarchyConn added in v1.9.1

type HierarchyConn interface {
	net.Conn

	AddSubConnection(conn net.Conn)
}

HierarchyConn closes sub-connections when this connection is closed.

func WrapHierarchyConn added in v1.9.1

func WrapHierarchyConn(conn net.Conn) HierarchyConn

WrapHierarchyConn wraps an existing connection with HierarchyConn.

type IPVersion added in v1.4.0

type IPVersion int
const (
	IPVersionUnknown IPVersion = iota
	IPVersion4
	IPVersion6
)

func GetIPVersion added in v1.4.0

func GetIPVersion(addr string) IPVersion

GetIPVersion returns the IP version of the given network address.

type TransportProtocol added in v1.13.0

type TransportProtocol int
const (
	UnknownTransport TransportProtocol = iota
	UDPTransport
	TCPTransport
)

Jump to

Keyboard shortcuts

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