Documentation ¶
Index ¶
- Constants
- Variables
- func Byte2DnsMsg(buf []byte) (dnsMsg D.Msg, err error)
- func DnsMapAdd(dnsMap DnsMap)
- func DnsMapOnEvict(key interface{}, value interface{})
- func DnsMsg2Byte(p interface{}) (rb []byte, err error)
- func DnsMsgAdd(dnsMsg DnsMsgMap)
- func IPDomainMapOnEvict(key interface{}, value interface{})
- func NewDomainFilter(domains []string) *domainFilter
- func ReCreateServer(addr string, resolver *Resolver, mapper *ResolverEnhancer) error
- type Config
- type DnsMap
- type DnsMsgMap
- type EnhancedMode
- type FallbackFilter
- type NameServer
- type Resolver
- func (r *Resolver) Exchange(m *D.Msg) (msg *D.Msg, err error)
- func (r *Resolver) ExchangeContext(ctx context.Context, m *D.Msg) (msg *D.Msg, err error)
- func (r *Resolver) ResolveIP(host string) (ip net.IP, err error)
- func (r *Resolver) ResolveIPv4(host string) (ip net.IP, err error)
- func (r *Resolver) ResolveIPv6(host string) (ip net.IP, err error)
- type ResolverEnhancer
- func (h *ResolverEnhancer) FakeIPEnabled() bool
- func (h *ResolverEnhancer) FindHostByIP(ip net.IP) (string, bool)
- func (h *ResolverEnhancer) IsExistFakeIP(ip net.IP) bool
- func (h *ResolverEnhancer) IsFakeIP(ip net.IP) bool
- func (h *ResolverEnhancer) MappingEnabled() bool
- func (h *ResolverEnhancer) PatchFrom(o *ResolverEnhancer)
- type Server
Constants ¶
View Source
const MapDomainDnsMsg string = "mapDomain-DnsMsg"
View Source
const MapIPDomain string = "mapIP-Domain"
const MapDomainIPs string = "mapDomain-IPs" const MapDomainIPttl string = "mapDomainIP-ttl"
View Source
const MaxDnsMsgAge = 3 * 24 * 3600
Variables ¶
View Source
var ( // EnhancedModeMapping is a mapping for EnhancedMode enum EnhancedModeMapping = map[string]EnhancedMode{ NORMAL.String(): NORMAL, FAKEIP.String(): FAKEIP, MAPPING.String(): MAPPING, } )
Functions ¶
func DnsMapOnEvict ¶
func DnsMapOnEvict(key interface{}, value interface{})
func DnsMsg2Byte ¶
func IPDomainMapOnEvict ¶
func IPDomainMapOnEvict(key interface{}, value interface{})
func NewDomainFilter ¶
func NewDomainFilter(domains []string) *domainFilter
func ReCreateServer ¶
func ReCreateServer(addr string, resolver *Resolver, mapper *ResolverEnhancer) error
Types ¶
type Config ¶
type Config struct {
Main, Fallback []NameServer
Default []NameServer
IPv6 bool
EnhancedMode EnhancedMode
FallbackFilter FallbackFilter
Pool *fakeip.Pool
Hosts *trie.DomainTrie
Policy map[string]NameServer
}
type EnhancedMode ¶
type EnhancedMode int
const ( NORMAL EnhancedMode = iota FAKEIP MAPPING )
func (EnhancedMode) MarshalJSON ¶
func (e EnhancedMode) MarshalJSON() ([]byte, error)
MarshalJSON serialize EnhancedMode with json
func (EnhancedMode) MarshalYAML ¶
func (e EnhancedMode) MarshalYAML() (interface{}, error)
MarshalYAML serialize EnhancedMode with yaml
func (EnhancedMode) String ¶
func (e EnhancedMode) String() string
func (*EnhancedMode) UnmarshalJSON ¶
func (e *EnhancedMode) UnmarshalJSON(data []byte) error
UnmarshalJSON unserialize EnhancedMode with json
func (*EnhancedMode) UnmarshalYAML ¶
func (e *EnhancedMode) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unserialize EnhancedMode with yaml
type FallbackFilter ¶
type NameServer ¶
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
func NewResolver ¶
func (*Resolver) ExchangeContext ¶
ExchangeContext a batch of dns request with context.Context, and it use cache
func (*Resolver) ResolveIPv4 ¶
ResolveIPv4 request with TypeA
type ResolverEnhancer ¶
type ResolverEnhancer struct {
// contains filtered or unexported fields
}
func NewEnhancer ¶
func NewEnhancer(cfg Config) *ResolverEnhancer
func (*ResolverEnhancer) FakeIPEnabled ¶
func (h *ResolverEnhancer) FakeIPEnabled() bool
func (*ResolverEnhancer) FindHostByIP ¶
func (h *ResolverEnhancer) FindHostByIP(ip net.IP) (string, bool)
func (*ResolverEnhancer) IsExistFakeIP ¶
func (h *ResolverEnhancer) IsExistFakeIP(ip net.IP) bool
func (*ResolverEnhancer) MappingEnabled ¶
func (h *ResolverEnhancer) MappingEnabled() bool
func (*ResolverEnhancer) PatchFrom ¶
func (h *ResolverEnhancer) PatchFrom(o *ResolverEnhancer)
Click to show internal directories.
Click to hide internal directories.