Documentation
¶
Overview ¶
Package filter provides different functions to filter out DNS requests (to block them)
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrInvalidFilterMethod = errors.New("filter: invalid filter method") ErrInvalidDomainRule = errors.New("filter: invalid domain rule") ErrInvalidIPAddress = errors.New("filter: invalid ip address") ErrInvalidName = errors.New("filter: invalid name") ErrNoSuchRule = errors.New("filter: no such rule") )
View Source
var (
ErrNoSuchFilter = errors.New("filter: no such filter")
)
Functions ¶
This section is empty.
Types ¶
type DefaultEngine ¶
type DefaultEngine struct {
// contains filtered or unexported fields
}
func (*DefaultEngine) AddFilter ¶
func (e *DefaultEngine) AddFilter(f Filter) error
type DefaultStore ¶
type DefaultStore struct { }
type Engine ¶
type Engine interface { AddFilter(Filter) error GetFilter(*net.IP) (*Filter, error) Match(net.IP, dns.Message) (bool, dns.Message, error) }
func NewDefaultEngine ¶
type Filter ¶
type Filter struct { // FilterMode defines how the filter should answer a filtered request FilterMode FilterMode // TTL defines the TTL (in seconds) returned by filtered answers TTL int // Address defines the IP address of this DNS server Address net.IP // Rules stores a map of rules Rules map[string]net.IP }
func (*Filter) Mode ¶
func (f *Filter) Mode() FilterMode
func (*Filter) ParseRule ¶
ParseRule parses a filter rule with the following format: '<ip-address> <domain>'. Example: '0.0.0.0 example.com'
func (*Filter) RemoveRule ¶
type FilterMode ¶
type FilterMode int
const ( NxDomainMode FilterMode = iota LocalIPMode NoDataMode NullMode )
func MethodFromString ¶
func MethodFromString(m string) (FilterMode, error)
func (FilterMode) String ¶
func (m FilterMode) String() string
Click to show internal directories.
Click to hide internal directories.