mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-24 19:42:27 +03:00
Make DNS resolution order selectable during runtime or compile time (#6865)
* Make DNS resolution order selectable during runtime or compile time (only in dual stack mode). * Extend IPv6 example to show usage of new hostByName function with selectable resolving order * Fix function definition of fqdn_rt in IPv6.ino. * Fix function call. * Fix missing bracket... * Only run if built with dual stack support * Make DNS resolution order selectable during runtime or compile time (only in dual stack mode). * Extend IPv6 example to show usage of new hostByName function with selectable resolving order * Fix function definition of fqdn_rt in IPv6 example. * Implement enum class for resolve type * Fix example IPv6.ino * Fix typedef in ESP8266WiFiGeneric.h function call * Change enum class definition to not depend on lwip/dns.h * Move err_t err definition outside switch. Fix typecast. * Always define DNSResolveType as pio test otherwise failes even if the enum class isn't used. Co-authored-by: altelch <heiko.krupp@rhrk.uni-kl.de> Co-authored-by: david gauchard <gauchard@laas.fr>
This commit is contained in:
@ -42,6 +42,14 @@ typedef std::shared_ptr<WiFiEventHandlerOpaque> WiFiEventHandler;
|
||||
|
||||
typedef void (*WiFiEventCb)(WiFiEvent_t);
|
||||
|
||||
enum class DNSResolveType: uint8_t
|
||||
{
|
||||
DNS_AddrType_IPv4 = 0, // LWIP_DNS_ADDRTYPE_IPV4 = 0
|
||||
DNS_AddrType_IPv6, // LWIP_DNS_ADDRTYPE_IPV6 = 1
|
||||
DNS_AddrType_IPv4_IPv6, // LWIP_DNS_ADDRTYPE_IPV4_IPV6 = 2
|
||||
DNS_AddrType_IPv6_IPv4 // LWIP_DNS_ADDRTYPE_IPV6_IPV4 = 3
|
||||
};
|
||||
|
||||
struct WiFiState;
|
||||
|
||||
class ESP8266WiFiGenericClass {
|
||||
@ -113,6 +121,9 @@ class ESP8266WiFiGenericClass {
|
||||
public:
|
||||
int hostByName(const char* aHostname, IPAddress& aResult);
|
||||
int hostByName(const char* aHostname, IPAddress& aResult, uint32_t timeout_ms);
|
||||
#if LWIP_IPV4 && LWIP_IPV6
|
||||
int hostByName(const char* aHostname, IPAddress& aResult, uint32_t timeout_ms, DNSResolveType resolveType);
|
||||
#endif
|
||||
bool getPersistent();
|
||||
|
||||
protected:
|
||||
|
Reference in New Issue
Block a user