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 MulticastInterfaces(filters ...string) []*net.Interface
- 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) IsVisibleAtInterface(n string) bool
- 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 ¶
func MulticastInterfaces ¶
MulticastInterfaces returns a list of all active multicast network interfaces.
Types ¶
type AddFunc ¶
type AddFunc func(BrowseEntry)
type BrowseEntry ¶
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 ¶
func (e BrowseEntry) ServiceInstanceName() string
type Config ¶
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 ¶
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 ¶
IPsAtInterface returns the ip address at a specific interface.
func (*Service) Interfaces ¶
Interfaces returns the network interfaces for which the service is registered, or all multicast network interfaces, if no IP addresses are specified.
func (*Service) IsVisibleAtInterface ¶
IsVisibleAtInterface returns true, if the service is published at the network interface with name n.
func (Service) ServiceInstanceName ¶
func (Service) ServiceName ¶
func (Service) ServicesMetaQueryName ¶
func (*Service) SetHostname ¶
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
browse
Command browse browses for specific dns-sd service types.
|
Command browse browses for specific dns-sd service types. |
debug
Command debug logs dns packets to the console.
|
Command debug logs dns packets to the console. |
register
Command register registers a dns-sd service instance.
|
Command register registers a dns-sd service instance. |
resolve
Command resolve resolves a dns-sd service instance.
|
Command resolve resolves a dns-sd service instance. |