class Matter::MDNS::Responder

Overview

mDNS Responder for advertising Matter services

Handles:

Defined in:

matter/mdns/responder.cr

Constant Summary

DEFAULT_TTL = 120.seconds
MDNS_IPV4 = Socket::IPAddress.new("224.0.0.251", MDNS_PORT)
MDNS_IPV6 = Socket::IPAddress.new("ff02::fb", MDNS_PORT)
MDNS_PORT = 5353

Constructors

Instance Method Summary

Constructor Detail

def self.new(port : Int32 = MDNS_PORT, hostname : String = "matter-device.local", ip_addresses : Array(Socket::IPAddress) = [] of Socket::IPAddress) #

[View source]

Instance Method Detail

def close : Nil #

Close responder


[View source]
def hostname : String #

[View source]
def ip_addresses : Array(Socket::IPAddress) #

[View source]
def on_query : Proc(DNS::Packet, Socket::IPAddress, Nil) | Nil #

Callback for received queries Signature: (query : DNS::Packet, peer_address : Socket::IPAddress) -> Nil


[View source]
def on_query=(on_query : Proc(DNS::Packet, Socket::IPAddress, Nil) | Nil) #

Callback for received queries Signature: (query : DNS::Packet, peer_address : Socket::IPAddress) -> Nil


[View source]
def port : Int32 #

[View source]
def respond_to_query(query : DNS::Packet, service_type : ServiceType, instance : String, port : Int32, txt_records : Hash(String, String)) : Nil #

Respond to a specific query


[View source]
def send_goodbye(service_type : ServiceType, instance : String) : Nil #

Send goodbye announcement (TTL=0) to remove service


[View source]
def socket : UDPSocket #

[View source]
def start : Nil #

Start listening for mDNS queries


[View source]
def stop : Nil #

Stop listening


[View source]