proxyutil

package
v0.45.3 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2022 License: Apache-2.0 Imports: 10 Imported by: 4

Documentation

Overview

Package proxyutil contains helper functions that are used in all other dnsproxy packages

Index

Constants

View Source
const ErrTooLarge errors.Error = "dns message is too large"

ErrTooLarge means that a DNS message is larger than 64KiB.

Variables

This section is empty.

Functions

func AddPrefix added in v0.43.0

func AddPrefix(b []byte) (m []byte)

AddPrefix adds a 2-byte prefix with the DNS message length.

func AppendIPAddrs

func AppendIPAddrs(ipAddrs *[]net.IPAddr, answers []dns.RR)

AppendIPAddrs appends the IP addresses got from dns.RR to the specified array

func ContainsIP added in v0.28.0

func ContainsIP(nets []*net.IPNet, ip net.IP) (ok bool)

ContainsIP returns true if any of nets contains ip.

func DNSSize added in v0.33.0

func DNSSize(isUDP bool, r *dns.Msg) int

DNSSize returns if buffer size *advertised* in the requests OPT record. Or when the request was over TCP, we return the maximum allowed size of 64K.

func IPFromRR added in v0.41.0

func IPFromRR(rr dns.RR) (ip net.IP)

IPFromRR returns the IP address from rr if any.

func ReadPrefixed added in v0.33.0

func ReadPrefixed(conn net.Conn) ([]byte, error)

ReadPrefixed reads a DNS message with a 2-byte prefix containing message length from conn.

func SortIPAddrs

func SortIPAddrs(ipAddrs []net.IPAddr) []net.IPAddr

SortIPAddrs sorts the specified IP addresses array IPv4 addresses go first, then IPv6 addresses

func UDPGetOOBSize added in v0.33.0

func UDPGetOOBSize() (oobSize int)

UDPGetOOBSize returns maximum size of the received OOB data.

func UDPRead added in v0.33.0

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

UDPRead udpRead reads the message from c using buf receives payload of size udpOOBSize from the UDP socket. It returns the number of bytes copied into buf, the number of bytes copied with OOB and the source address of the message.

func UDPSetOptions added in v0.33.0

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 added in v0.33.0

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

UDPWrite writes the data to the remoteAddr using conn.

func WritePrefixed added in v0.33.0

func WritePrefixed(b []byte, conn net.Conn) error

WritePrefixed writes a DNS message to a TCP connection it first writes a 2-byte prefix followed by the message itself.

Types

This section is empty.

Jump to

Keyboard shortcuts

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