mdns

package
v2.0.13 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2020 License: BSD-2-Clause Imports: 21 Imported by: 9

Documentation

Index

Constants

View Source
const (
	DISCOVERY_SERVICE_QUERY = "_services._dns-sd._udp"
	MDNS_DEFAULT_DOMAIN     = "local."
	MDNS_DEFAULT_TTL        = 120

	QUERY_REPEAT   = 2   // Number of times to repeat a message
	DELTA_QUERY_MS = 500 // Maximum time to wait between repeats

	// Pulisher queue numbers
	QUEUE_MESSAGES = 0
	QUEUE_ERRORS   = 1
	QUEUE_NAME     = 2
	QUEUE_RECORD   = 3
)
View Source
const (
	EOF rune = -(iota + 1)
)

Variables

View Source
var (
	MULTICAST_ADDR_IPV4 = &net.UDPAddr{IP: net.ParseIP("224.0.0.251"), Port: 5353}
	MULTICAST_ADDR_IPV6 = &net.UDPAddr{IP: net.ParseIP("ff02::fb"), Port: 5353}
)
View Source
var (
	ErrParseError = errors.New("Parse Error")
)

Functions

func NewEvent

func NewEvent(source gopi.Unit, type_ gopi.RPCEventType, service gopi.RPCServiceRecord, ttl time.Duration) gopi.RPCEvent

func NewService

func NewService(zone string) *service

func NewTokenizer

func NewTokenizer(src string) *tokenizer

func Quote

func Quote(src string) string

func Unquote

func Unquote(src string) (string, error)

Unquote returns a bare string without quoted characters. The following Coversions happen: \\ \n \f \t \r Happen as normal \xFF returns a byte from hex \123 returns a byte from decimal \0123 returns a bype from octal

Types

type Discovery

type Discovery struct {
	Listener ListenerIface
}

func (Discovery) Name

func (Discovery) Name() string

func (Discovery) New

func (config Discovery) New(log gopi.Logger) (gopi.Unit, error)

type Listener

type Listener struct {
	Domain    string
	Interface net.Interface
	Flags     gopi.RPCFlag
}

func (Listener) FQDomain

func (config Listener) FQDomain() string

func (Listener) Name

func (Listener) Name() string

func (Listener) New

func (config Listener) New(log gopi.Logger) (gopi.Unit, error)

type ListenerIface

type ListenerIface interface {
	// Return properties
	Zone() string

	// Perform queries
	QueryAll(ctx context.Context, msg *dns.Msg, count uint) error

	// Send responses
	SendAll(msg *dns.Msg) error

	// Implements pub/sub interface
	gopi.Publisher
}

type Register

type Register struct {
	Listener ListenerIface
}

func (Register) Name

func (Register) Name() string

func (Register) New

func (config Register) New(log gopi.Logger) (gopi.Unit, error)

Jump to

Keyboard shortcuts

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