resolvehandler

package
v0.0.0-...-2e26f47 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetAllBesideTORResolver

func GetAllBesideTORResolver(c *config.Config, ch []cachehandler.CacheHandler) map[string][]ResolveHandler

Types

type CacheResolve

type CacheResolve struct {
	CacheHandler cachehandler.CacheHandler
	DnsTTL       int
}

func (*CacheResolve) Close

func (s *CacheResolve) Close() error

func (*CacheResolve) GetName

func (s *CacheResolve) GetName() string

func (*CacheResolve) Init

func (s *CacheResolve) Init() error

func (*CacheResolve) Resolve

func (s *CacheResolve) Resolve(q string) ([]dns.RR, error)

type DoTResolve

type DoTResolve struct {
	ServerHosts string
	ServerOpts  []dotdns.DoTOption
	DNSCache    []cachehandler.CacheHandler // to support cache

	DnsTTL int
	// contains filtered or unexported fields
}

func (*DoTResolve) Close

func (dt *DoTResolve) Close() error

func (*DoTResolve) GetName

func (dt *DoTResolve) GetName() string

func (*DoTResolve) Init

func (dt *DoTResolve) Init() error

func (*DoTResolve) Resolve

func (dt *DoTResolve) Resolve(q string) ([]dns.RR, error)

type MemoryResolve

type MemoryResolve struct {
	Records map[string]string
	Name    string
	DnsTTL  int
}

MemoryResolve implement ResolveHandler so we can

func (*MemoryResolve) Close

func (m *MemoryResolve) Close() error

func (*MemoryResolve) GetName

func (m *MemoryResolve) GetName() string

func (*MemoryResolve) Init

func (m *MemoryResolve) Init() error

func (*MemoryResolve) Resolve

func (m *MemoryResolve) Resolve(q string) ([]dns.RR, error)

type ResolveHandler

type ResolveHandler interface {
	Init() error                      // To initialize upstream
	Resolve(string) ([]dns.RR, error) // To resolve the query from DNS to A
	GetName() string
	Close() error
}

ResolveHandler is interface to handle all resolving options, currently we support local memory and tor network we can add another options in the future

type TorResolve

type TorResolve struct {
	OnionDNSServer string
	Name           string
	DNSCache       []cachehandler.CacheHandler // to support cache

	DnsTTL int
	// contains filtered or unexported fields
}

func GetTORResolver

func GetTORResolver(c *config.Config, ch []cachehandler.CacheHandler) *TorResolve

func (*TorResolve) Close

func (tr *TorResolve) Close() error

Close function is a function to close any open connections/processes to upstream

func (*TorResolve) GetName

func (tr *TorResolve) GetName() string

func (*TorResolve) Init

func (tr *TorResolve) Init() error

func (*TorResolve) Resolve

func (tr *TorResolve) Resolve(q string) ([]dns.RR, error)

Jump to

Keyboard shortcuts

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