Documentation
¶
Index ¶
- Variables
- func A(srv Service, iface *net.Interface) []*dns.A
- func AAAA(srv Service, iface *net.Interface) []*dns.AAAA
- func DNSSDServicesPTR(srv Service) *dns.PTR
- func LookupType(ctx context.Context, service string, add AddFunc, rmv RmvFunc) (err error)
- func NSEC(rr dns.RR, srv Service, iface *net.Interface) *dns.NSEC
- func PTR(srv Service) *dns.PTR
- func SRV(srv Service) *dns.SRV
- func TXT(srv Service) *dns.TXT
- type AddFunc
- type BrowseEntry
- type Cache
- type Config
- type MDNSConn
- type Query
- type ReadFunc
- type Request
- type Responder
- type Response
- type RmvFunc
- type Service
- func (s Service) Copy() *Service
- func (s Service) Hostname() string
- func (s *Service) IPsAtInterface(iface *net.Interface) []net.IP
- func (s *Service) Interfaces() []*net.Interface
- func (s Service) ServiceInstanceName() string
- func (s Service) ServiceName() string
- func (s Service) ServicesMetaQueryName() string
- func (s *Service) SetHostname(hostname string)
- type ServiceHandle
Constants ¶
This section is empty.
Variables ¶
var ( IPv4LinkLocalMulticast = net.ParseIP("224.0.0.251") IPv6LinkLocalMulticast = net.ParseIP("ff02::fb") AddrIPv4LinkLocalMulticast = &net.UDPAddr{ IP: IPv4LinkLocalMulticast, Port: 5353, } AddrIPv6LinkLocalMulticast = &net.UDPAddr{ IP: IPv6LinkLocalMulticast, Port: 5353, } TTLDefault uint32 = 75 * 60 // Default ttl for mDNS resource records TTLHostname uint32 = 120 // TTL for mDNS resource records containing the host name )
Functions ¶
func DNSSDServicesPTR ¶
func LookupType ¶
Types ¶
type AddFunc ¶ added in v1.2.0
type AddFunc func(BrowseEntry)
type BrowseEntry ¶ added in v1.2.0
type BrowseEntry struct {
IPs []net.IP
Host string
Port int
IfaceName string
Name string
Type string
Domain string
Text map[string]string
}
func (BrowseEntry) ServiceInstanceName ¶ added in v1.2.0
func (e BrowseEntry) ServiceInstanceName() string
type Config ¶ added in v1.1.0
type Config struct {
// Name of the service
Name string
// Type is the service type, for example "_hap._tcp".
Type string
// Domain is the name of the domain, for example "local".
// If empty, "local" is used.
Domain string
// Host is the name of the host (no trailing dot).
// If empty the local host name is used.
Host string
// Txt records
Text map[string]string
// IP addresses of the service.
// This field is deprecated and should not be used.
IPs []net.IP
// Port is the port of the service.
Port int
// Interfaces at which the service should be registered
Ifaces []string
}
type MDNSConn ¶
type MDNSConn interface {
// SendQuery sends a mDNS query.
SendQuery(q *Query) error
// SendResponse sends a mDNS response
SendResponse(resp *Response) error
// Read returns a channel which receives mDNS messages
Read(ctx context.Context) <-chan *Request
// Clears the connection buffer
Drain(ctx context.Context)
// Close closes the connection
Close()
}
MDNSConn represents a mDNS connection. It encapsulates an IPv4 and IPv6 UDP connection.
func NewMDNSConn ¶
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
Request represents an incoming mDNS message
type Responder ¶
type Responder interface {
// Add adds a service to the responder.
// Use the returned service handle to update service properties.
Add(srv Service) (ServiceHandle, error)
// Remove removes the service associated with the service handle from the responder.
Remove(srv ServiceHandle)
// Respond makes the receiver announcing and managing services.
Respond(ctx context.Context) error
// Debug calls a function for every dns request the responder receives.
Debug(ctx context.Context, fn ReadFunc)
}
Responder represents a mDNS responder.
func NewResponder ¶
type Response ¶
type Response struct {
// contains filtered or unexported fields
}
Response is a mDNS response
type RmvFunc ¶ added in v1.2.0
type RmvFunc func(BrowseEntry)
type Service ¶
type Service struct {
Name string
Type string
Domain string
Host string
Text map[string]string
TTL time.Duration // Original time to live
Port int
IPs []net.IP
Ifaces []string
// contains filtered or unexported fields
}
Service represents a DNS-SD service instance
func LookupInstance ¶
LookupInstance resolves a service by its service instance name.
func NewService ¶
func ProbeService ¶
ProbeService probes for the hostname and service instance name of srv. If err == nil, the returned service is verified to be unique on the local network.
func (*Service) IPsAtInterface ¶ added in v1.1.0
IPsAtInterface returns the ip address at a specific interface.
func (*Service) Interfaces ¶ added in v1.2.0
Interfaces returns the network interfaces for which the service is registered, or all multicast network interfaces, if no IP addresses are specified.
func (Service) ServiceInstanceName ¶
func (Service) ServiceName ¶
func (Service) ServicesMetaQueryName ¶
func (*Service) SetHostname ¶
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
bct
command
|
|
|
browse
command
Command browse browses for specific dns-sd service types.
|
Command browse browses for specific dns-sd service types. |
|
debug
command
Command debug logs dns packets to the console.
|
Command debug logs dns packets to the console. |
|
register
command
Command register registers a dns-sd service instance.
|
Command register registers a dns-sd service instance. |
|
resolve
command
Command resolve resolves a dns-sd service instance.
|
Command resolve resolves a dns-sd service instance. |