Documentation ¶
Overview ¶
Package meshdns contains the Mesh DNS server.
Index ¶
- Constants
- type DomainOptions
- type Options
- type Server
- func (s *Server) DeregisterDomain(domain string)
- func (s *Server) ListenAndServe() error
- func (s *Server) ListenPort() int
- func (s *Server) ListenPortTCP() int
- func (s *Server) ListenPortUDP() int
- func (s *Server) PushForwarder(forwarder string)
- func (s *Server) RegisterDomain(opts DomainOptions) error
- func (s *Server) RemoveForwarder(forwarder string)
- func (s *Server) ReplaceForwarders(forwarders []string)
- func (s *Server) Shutdown(ctx context.Context) error
- func (s *Server) UpsertForwarder(forwarder string)
Constants ¶
const DefaultAdvertisePort = 53
DefaultAdvertisePort is the default port to advertise for Mesh DNS.
const DefaultListenTCP = "[::]:53"
DefaultListenTCP is the default TCP listen address.
const DefaultListenUDP = "[::]:53"
DefaultListenUDP is the default UDP listen address.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DomainOptions ¶ added in v0.1.2
type DomainOptions struct { // NodeID is the node ID to use for this domain. NodeID types.NodeID // MeshDomain is the domain to serve. MeshDomain string // MeshStorage is the storage for the mesh that this domain belongs to. MeshStorage storage.Provider // IPv6Only indicates that this domain should only respond to IPv6 requests. IPv6Only bool // SubscribeForwarders indicates that new forwarders added to the mesh should be // appeneded to the current server. SubscribeForwarders bool }
type Options ¶
type Options struct { // UDPListenAddr is the UDP address to listen on. UDPListenAddr string // TCPListenAddr is the TCP address to listen on. TCPListenAddr string // ReusePort enables SO_REUSEPORT on the listeners. // TODO: not implemented yet ReusePort int // Compression enables DNS compression. Compression bool // RequestTimeout is the timeout for DNS requests. // Defaults to 5 seconds. RequestTimeout time.Duration // Forwaders are the DNS forwarders to use. If empty, // the system DNS servers will be used. Forwarders []string // IncludeSystemResolvers includes the system DNS // servers in the forwarders list if it is non-empty. IncludeSystemResolvers bool // DisableForwarding disables forwarding requests to the // configured forwarders. DisableForwarding bool // CacheSize is the size of the remote DNS cache. CacheSize int }
Options are the Mesh DNS server options.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the MeshDNS server.
func (*Server) DeregisterDomain ¶ added in v0.14.2
DeregisterDomain deregisters a domain from the Mesh DNS server.
func (*Server) ListenAndServe ¶
ListenAndServe serves the Mesh DNS server.
func (*Server) ListenPort ¶ added in v0.14.2
ListenPort returns the UDP or TDP listen port in that order depending on which is available.
func (*Server) ListenPortTCP ¶ added in v0.14.2
ListenPortTCP returns the TCP listen port.
func (*Server) ListenPortUDP ¶ added in v0.14.2
ListenPortUDP returns the UDP listen port.
func (*Server) PushForwarder ¶ added in v0.13.7
PushForwarder pushes a forwarder to the front of the static forwarders list.
func (*Server) RegisterDomain ¶ added in v0.1.2
func (s *Server) RegisterDomain(opts DomainOptions) error
RegisterDomain registers a new domain to be served by the Mesh DNS server.
func (*Server) RemoveForwarder ¶ added in v0.13.7
RemoveForwarder removes a forwarder from the static forwarders list.
func (*Server) ReplaceForwarders ¶ added in v0.13.7
ReplaceForwarders replaces the static forwarders list with the given list.
func (*Server) UpsertForwarder ¶ added in v0.13.7
UpsertForwarder upserts a forwarder into the static forwarders list.