sdns: github.com/semihalev/sdns/dnsutil Index | Files

package dnsutil

import "github.com/semihalev/sdns/dnsutil"

Index

Package Files

dnsutil.go ttl.go

Constants

const (
    // IP4arpa is the reverse tree suffix for v4 IP addresses.
    IP4arpa = ".in-addr.arpa."
    // IP6arpa is the reverse tree suffix for v6 IP addresses.
    IP6arpa = ".ip6.arpa."
    // DefaultMsgSize EDNS0 message size
    DefaultMsgSize = 1232
)
const (
    // MinimalDefaultTTL is the absolute lowest TTL.
    MinimalDefaultTTL = 5 * time.Second
    // MaximumDefaulTTL is the maximum TTL.
    MaximumDefaulTTL = 24 * time.Hour
)

func ClearDNSSEC Uses

func ClearDNSSEC(msg *dns.Msg) *dns.Msg

ClearDNSSEC returns cleared RRSIG and NSECx message

func ClearOPT Uses

func ClearOPT(msg *dns.Msg) *dns.Msg

ClearOPT returns cleared opt message

func ExchangeInternal Uses

func ExchangeInternal(ctx context.Context, r *dns.Msg) (*dns.Msg, error)

ExchangeInternal exchange dns request internal

func ExtractAddressFromReverse Uses

func ExtractAddressFromReverse(reverseName string) string

ExtractAddressFromReverse turns a standard PTR reverse record name into an IP address. This works for ipv4 or ipv6.

54.119.58.176.in-addr.arpa. becomes 176.58.119.54. If the conversion fails the empty string is returned.

func GenerateServerCookie Uses

func GenerateServerCookie(secret, remoteip, cookie string) string

GenerateServerCookie return generated edns server cookie

func IsReverse Uses

func IsReverse(name string) int

IsReverse returns 0 is name is not in a reverse zone. Anything > 0 indicates name is in a reverse zone. The returned integer will be 1 for in-addr.arpa. (IPv4) and 2 for ip6.arpa. (IPv6).

func MinimalTTL Uses

func MinimalTTL(m *dns.Msg, mt response.Type) time.Duration

MinimalTTL scans the message returns the lowest TTL found taking into the response.Type of the message.

func NotSupported Uses

func NotSupported(w dns.ResponseWriter, req *dns.Msg) error

NotSupported response to writer a empty notimplemented message

func ParsePurgeQuestion Uses

func ParsePurgeQuestion(req *dns.Msg) (qname string, qtype uint16, ok bool)

ParsePurgeQuestion can parse query for purge questions

func SetEdns0 Uses

func SetEdns0(req *dns.Msg) (*dns.OPT, int, string, bool, bool)

SetEdns0 returns replaced or new opt rr and if request has do

func SetRcode Uses

func SetRcode(req *dns.Msg, rcode int, do bool) *dns.Msg

SetRcode returns message specified with rcode.

Package dnsutil imports 12 packages (graph) and is imported by 7 packages. Updated 2020-10-29. Refresh now. Tools for package owners.