dnsutil

package
v0.0.0-...-970fe13 Latest Latest
Warning

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

Go to latest
Published: May 7, 2024 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const MaxUdpMsgSize = 1232

Variables

Functions

func CheckAndSetEdns

func CheckAndSetEdns(req, resp *dns.Msg) error

checks for edns0 in req, sets edns0 in resp

func EqualNames

func EqualNames(a, b string) bool

fast, ascii-only, case-insensitive equality check

func FixNames

func FixNames(rrs []dns.RR, question *dns.Question)

make names of rrs match case of name in question

func GetAddrProtocol

func GetAddrProtocol(addr net.Addr, cstate *tls.ConnectionState) string

func GetWriterProtocol

func GetWriterProtocol(w dns.ResponseWriter) string

func LowerName

func LowerName(s string) string

fast, ascii-only string case lower-er

func MaybeTruncate

func MaybeTruncate(req, resp *dns.Msg, net string)

determines max size, edns0 aware, truncates if necessary

func MsgAcceptFunc

func MsgAcceptFunc(dh dns.Header) dns.MsgAcceptAction

Types

type DnssecProvider

type DnssecProvider struct {
	Ksk        *dns.DNSKEY
	Zsk        *dns.DNSKEY
	ZskPrivKey crypto.Signer
	KeySig     *dns.RRSIG
	NsecTypes  []uint16
}

func GenerateDnssecProvider

func GenerateDnssecProvider(name string, algo uint8, rrTtl, validFrom, validTo uint32) (*DnssecProvider, error)

func (*DnssecProvider) DS

func (p *DnssecProvider) DS() (*dns.DS, error)

func (*DnssecProvider) PrivKeyBytes

func (p *DnssecProvider) PrivKeyBytes() ([]byte, error)

func (*DnssecProvider) Prove

func (p *DnssecProvider) Prove(req, resp *dns.Msg, validFrom, validTo uint32) error

adds DNSSEC signatures to resp

func (*DnssecProvider) ProvideKeys

func (p *DnssecProvider) ProvideKeys(req, resp *dns.Msg) bool

adds DNSSEC keys (and keysig) to resp if requested by req, returns true iff keys were added

func (*DnssecProvider) SetPrivKeyBytes

func (p *DnssecProvider) SetPrivKeyBytes(b []byte) error

func (*DnssecProvider) Sign

func (p *DnssecProvider) Sign(rrs []dns.RR, validFrom, validTo uint32) (sigs []dns.RR, err error)

type LoggingHandler

type LoggingHandler struct {
	Logger *log.Logger

	dns.Handler
	// contains filtered or unexported fields
}

func (*LoggingHandler) RequestCount

func (h *LoggingHandler) RequestCount() uint64

func (*LoggingHandler) ServeDNS

func (h *LoggingHandler) ServeDNS(w dns.ResponseWriter, req *dns.Msg)

type LoggingResponseWriter

type LoggingResponseWriter struct {
	dns.ResponseWriter
	Rcode   int
	AnCount int
	NsCount int
	ExCount int
	Written bool
}

func (*LoggingResponseWriter) ConnectionState

func (w *LoggingResponseWriter) ConnectionState() *tls.ConnectionState

func (*LoggingResponseWriter) WriteMsg

func (w *LoggingResponseWriter) WriteMsg(m *dns.Msg) error

type RecordGenerator

type RecordGenerator interface {
	GenerateRecords(question *dns.Question, zone string) (rrs []dns.RR, validName bool)
}

type SimpleHandler

type SimpleHandler struct {
	Zone           string
	Ns             []string
	HostMasterMbox string
	RecordGenerator
	UpdateHandler
	*DnssecProvider
}

func (*SimpleHandler) Init

func (h *SimpleHandler) Init(privKeyBytes []byte) *SimpleHandler

func (*SimpleHandler) SOA

func (h *SimpleHandler) SOA(q *dns.Question) dns.RR

func (*SimpleHandler) ServeDNS

func (h *SimpleHandler) ServeDNS(w dns.ResponseWriter, req *dns.Msg)

type UpdateHandler

type UpdateHandler interface {
	HandleUpdate(w dns.ResponseWriter, req *dns.Msg, zone string)
}

Jump to

Keyboard shortcuts

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