v0.12.0 Latest Latest

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

Go to latest
Published: Sep 18, 2021 License: MIT Imports: 7 Imported by: 1



Package dnssrv provides an Instancer implementation for DNS SRV records.



This section is empty.


View Source
var ErrPortZero = errors.New("resolver returned SRV record with port 0")

ErrPortZero is returned by the resolve machinery when a DNS resolver returns an SRV record with its port set to zero.


This section is empty.


type Instancer added in v0.5.0

type Instancer struct {
	// contains filtered or unexported fields

Instancer yields instances from the named DNS SRV record. The name is resolved on a fixed schedule. Priorities and weights are ignored.

func NewInstancer added in v0.5.0

func NewInstancer(
	name string,
	ttl time.Duration,
	logger log.Logger,
) *Instancer

NewInstancer returns a DNS SRV instancer.

func NewInstancerDetailed added in v0.5.0

func NewInstancerDetailed(
	name string,
	refresh *time.Ticker,
	lookup Lookup,
	logger log.Logger,
) *Instancer

NewInstancerDetailed is the same as NewInstancer, but allows users to provide an explicit lookup refresh ticker instead of a TTL, and specify the lookup function instead of using net.LookupSRV.

func (*Instancer) Deregister added in v0.5.0

func (in *Instancer) Deregister(ch chan<- sd.Event)

Deregister implements Instancer.

func (*Instancer) Register added in v0.5.0

func (in *Instancer) Register(ch chan<- sd.Event)

Register implements Instancer.

func (*Instancer) Stop added in v0.5.0

func (in *Instancer) Stop()

Stop terminates the Instancer.

type Lookup

type Lookup func(service, proto, name string) (cname string, addrs []*net.SRV, err error)

Lookup is a function that resolves a DNS SRV record to multiple addresses. It has the same signature as net.LookupSRV.

Jump to

Keyboard shortcuts

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