join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
MdnsResolver Class Reference

mDNS peer acting as a resolver (collects unsolicited announcements). More...

Inheritance diagram for MdnsResolver:
Collaboration diagram for MdnsResolver:

Public Member Functions

 MdnsResolver ()
 construct the resolver instance.
 
void onQuery (const DnsPacket &query) override
 handle a mDNS query (ignored by the resolver).
 
void onAnnouncement (const DnsPacket &packet) override
 handle a mDNS announcement by storing received records.
 
bool waitForRecord (uint16_t type, std::chrono::milliseconds timeout=1000ms)
 wait until a record of the given type is received or timeout expires.
 

Public Attributes

std::vector< ResourceRecord_received
 records received via onAnnouncement.
 
Mutex _mutex
 protection mutex.
 
Condition _cond
 condition variable to signal record reception.
 

Static Public Attributes

static const std::string _iface = "veth1"
 network interface to use.
 

Detailed Description

mDNS peer acting as a resolver (collects unsolicited announcements).

Constructor & Destructor Documentation

◆ MdnsResolver()

MdnsResolver::MdnsResolver ( )
inline

construct the resolver instance.

Member Function Documentation

◆ onAnnouncement()

void MdnsResolver::onAnnouncement ( const DnsPacket & packet)
inlineoverride

handle a mDNS announcement by storing received records.

Parameters
packetthe mDNS announcement received.

◆ onQuery()

void MdnsResolver::onQuery ( const DnsPacket & query)
inlineoverride

handle a mDNS query (ignored by the resolver).

Parameters
querythe mDNS query received.

◆ waitForRecord()

bool MdnsResolver::waitForRecord ( uint16_t type,
std::chrono::milliseconds timeout = 1000ms )
inline

wait until a record of the given type is received or timeout expires.

Parameters
typerecord type to wait for.
timeoutmaximum time to wait.
Returns
true if the record was received, false on timeout.

Member Data Documentation

◆ _cond

Condition MdnsResolver::_cond

condition variable to signal record reception.

◆ _iface

const std::string MdnsResolver::_iface = "veth1"
static

network interface to use.

◆ _mutex

Mutex MdnsResolver::_mutex

protection mutex.

◆ _received

std::vector<ResourceRecord> MdnsResolver::_received

records received via onAnnouncement.


The documentation for this class was generated from the following file: