Doxygen with github
Loading...
Searching...
No Matches
ksf::misc::ksDomainQuery Class Reference

Class for resolving domain names to IP addresses using DNS queries. More...

#include <ksDomainQuery.h>

Public Member Functions

 ksDomainQuery ()
 Default constructor. Uses KSF_DOMAIN_QUERY_DNS_SERVER as the DNS server.
 
virtual ~ksDomainQuery ()
 Destructor.
 
 ksDomainQuery (IPAddress dnsServer)
 Constructs a new ksDomainQuery object.
 
void invalidate ()
 Invalidates the resolved IP address and the last query send time. It will cause a new query to be sent.
 
void setDomain (std::string domain)
 Sets the domain to resolve IP address for.
 
bool getResolvedIP (IPAddress &ip) const
 Retrieves the resolved IP address for the domain.
 
void process ()
 Handles resolver tasks, such as sending queries and receiving responses.
 

Protected Member Functions

void sendQuery ()
 Sends DNS query to the DNS server.
 
void receiveResponse ()
 Receives DNS response from the DNS server.
 

Protected Attributes

IPAddress serverIP
 
std::unique_ptr< WiFiUDP > udp
 
std::string domain
 
IPAddress resolvedIP
 
uint16_t transactionID {0}
 
uint32_t lastQuerySendTimeMs {0}
 

Detailed Description

Class for resolving domain names to IP addresses using DNS queries.

To prevent DNS caching, a new query is sent every KSF_DOMAIN_QUERY_INTERVAL_MS milliseconds. This component was created to address issues encountered with standard DNS libraries.

Constructor & Destructor Documentation

◆ ksDomainQuery()

ksf::misc::ksDomainQuery::ksDomainQuery ( IPAddress dnsServer)

Constructs a new ksDomainQuery object.

Parameters
dnsServerIP address of the DNS server to use for resolving domain names. By default, KSF_DOMAIN_QUERY_DNS_SERVER is used.

Member Function Documentation

◆ getResolvedIP()

bool ksf::misc::ksDomainQuery::getResolvedIP ( IPAddress & ip) const

Retrieves the resolved IP address for the domain.

Parameters
ipIP address to store the resolved IP address in.
Returns
True if the resolved IP address was successfully retrieved, false otherwise.

Referenced by ksf::comps::ksMqttConnector::connectToBroker().

◆ setDomain()

void ksf::misc::ksDomainQuery::setDomain ( std::string domain)

Sets the domain to resolve IP address for.

Parameters
domainDomain to resolve IP address for.

References invalidate().

Referenced by ksf::comps::ksMqttConnector::setupConnection().


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