hosts

package
v0.0.0-...-c3705ec Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2017 License: Apache-2.0 Imports: 18 Imported by: 0

README

hosts

hosts enables serving zone data from a /etc/hosts style file.

The hosts middleware is useful for serving zones from a /etc/hosts file. It serves from a preloaded file that exists on disk. It checks the file for changes and updates the zones accordingly. This middleware only supports A, AAAA, and PTR records. The hosts middleware can be used with readily available hosts files that block access to advertising servers.

Syntax

hosts [FILE [ZONES...]] {
    fallthrough
}
  • FILE the hosts file to read and parse. If the path is relative the path from the root directive will be prepended to it. Defaults to /etc/hosts if omitted
  • ZONES zones it should be authoritative for. If empty, the zones from the configuration block are used.
  • fallthrough If zone matches and no record can be generated, pass request to the next middleware.

Examples

Load /etc/hosts file.

hosts

Load example.hosts file in the current directory.

hosts example.hosts

Load example.hosts file and only serve example.org and example.net from it and fall through to the next middleware if query doesn't match.

hosts example.hosts example.org example.net {
    fallthrough
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hosts

type Hosts struct {
	Next middleware.Handler
	*Hostsfile

	Fallthrough bool
}

Hosts is the middleware handler

func (Hosts) Name

func (h Hosts) Name() string

Name implements the middleware.Handle interface.

func (Hosts) ServeDNS

func (h Hosts) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)

ServeDNS implements the middleware.Handle interface.

type Hostsfile

type Hostsfile struct {
	sync.Mutex

	// list of zones we are authoritive for
	Origins []string
	// contains filtered or unexported fields
}

Hostsfile contains known host entries.

func (*Hostsfile) LookupStaticAddr

func (h *Hostsfile) LookupStaticAddr(addr string) []string

LookupStaticAddr looks up the hosts for the given address from the hosts file.

func (*Hostsfile) LookupStaticHostV4

func (h *Hostsfile) LookupStaticHostV4(host string) []net.IP

LookupStaticHostV4 looks up the IPv4 addresses for the given host from the hosts file.

func (*Hostsfile) LookupStaticHostV6

func (h *Hostsfile) LookupStaticHostV6(host string) []net.IP

LookupStaticHostV6 looks up the IPv6 addresses for the given host from the hosts file.

func (*Hostsfile) Parse

func (h *Hostsfile) Parse(file io.Reader)

Parse reads the hostsfile and populates the byName and byAddr maps.

func (*Hostsfile) ReadHosts

func (h *Hostsfile) ReadHosts()

ReadHosts determines if the cached data needs to be updated based on the size and modification time of the hostsfile.

Jump to

Keyboard shortcuts

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