25#ifndef JOIN_FABRIC_MDNS_PROTOCOL_HPP
26#define JOIN_FABRIC_MDNS_PROTOCOL_HPP
33 template <
class Protocol>
34 class BasicDatagramPeer;
61 static Mdns mdnsv4 (AF_INET);
71 static Mdns mdnsv6 (AF_INET6);
79 constexpr int family () const noexcept
88 constexpr int type () const noexcept
109 return (
family == AF_INET6) ?
"ff02::fb" :
"224.0.0.251";
131 return a.family () == b.family ();
mDNS peer.
Definition nameserver.hpp:229
basic datagram socket class.
Definition protocol.hpp:47
basic internet endpoint class.
Definition endpoint.hpp:632
IPv6, IPv4 address class.
Definition ip_address.hpp:51
Multicast DNS protocol class.
Definition mdns_protocol.hpp:40
static constexpr size_t maxMsgSize
maximum DNS message size.
Definition mdns_protocol.hpp:116
static Mdns & v6() noexcept
get protocol suitable for IPv6 address family.
Definition mdns_protocol.hpp:69
constexpr int protocol() const noexcept
get the protocol type.
Definition mdns_protocol.hpp:97
static constexpr uint16_t defaultPort
default DNS port.
Definition mdns_protocol.hpp:113
constexpr int family() const noexcept
get the protocol IP address family.
Definition mdns_protocol.hpp:79
static Mdns & v4() noexcept
get protocol suitable for IPv4 address family.
Definition mdns_protocol.hpp:59
constexpr Mdns(int family=AF_INET) noexcept
construct the mDNS protocol instance.
Definition mdns_protocol.hpp:50
static IpAddress multicastAddress(int family) noexcept
get multicast address for the given address family.
Definition mdns_protocol.hpp:107
constexpr int type() const noexcept
get the protocol communication semantic.
Definition mdns_protocol.hpp:88
Definition acceptor.hpp:32
bool operator==(const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
compare if endpoints are equal.
Definition endpoint.hpp:186
bool operator!=(const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
compare if endpoints are not equal.
Definition endpoint.hpp:198