netutil

package
v0.0.0-...-761797c Latest Latest
Warning

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

Go to latest
Published: May 25, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package netutil contains network-related utilities common among dnsproxy packages.

TODO(a.garipov): Move improved versions of these into netutil in module golibs.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ListenConfig

func ListenConfig() (lc *net.ListenConfig)

ListenConfig returns the default net.ListenConfig used by the plain-DNS servers in this module.

TODO(a.garipov): Add tests.

TODO(a.garipov): Add an option to not set SO_REUSEPORT on Unix to prevent issues with OpenWrt.

See https://github.com/AdguardTeam/AdGuardHome/issues/5872.

TODO(a.garipov): DRY with AdGuard DNS when we can.

func ParseSubnet

func ParseSubnet(s string) (p netip.Prefix, err error)

ParseSubnet parses s either as a CIDR prefix itself, or as an IP address, returning the corresponding single-IP CIDR prefix.

TODO(e.burkov): Replace usages with netutil.Prefix.

func UDPGetOOBSize

func UDPGetOOBSize() (oobSize int)

UDPGetOOBSize returns maximum size of the received OOB data.

func UDPRead

func UDPRead(
	conn *net.UDPConn,
	buf []byte,
	udpOOBSize int,
) (n int, localIP netip.Addr, remoteAddr *net.UDPAddr, err error)

UDPRead reads the message from conn using buf and receives a control-message payload of size udpOOBSize from it. It returns the number of bytes copied into buf and the source address of the message.

TODO(s.chzhen): Consider using netip.Addr.

func UDPSetOptions

func UDPSetOptions(c *net.UDPConn) (err error)

UDPSetOptions sets flag options on a UDP socket to be able to receive the necessary OOB data.

func UDPWrite

func UDPWrite(
	data []byte,
	conn *net.UDPConn,
	remoteAddr *net.UDPAddr,
	localIP netip.Addr,
) (n int, err error)

UDPWrite writes the data to the remoteAddr using conn.

TODO(s.chzhen): Consider using netip.Addr.

Types

This section is empty.

Jump to

Keyboard shortcuts

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