WIZNet W5500 with additional enhancements

Fork of WIZnetInterface by WIZnet

Committer:
Helmut Tschemernjak
Date:
Mon Oct 09 19:58:19 2017 +0200
Revision:
34:7d44648ec5f2
Parent:
0:6f28332c466f
Added support for manual DNS server config or DHCP DNS config.
Now the DNS 8.8.8.8 is only a fallback if no DNS server is specified.
Replaced error() messages with printf() to avoid hanging code in error()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Soohwan Kim 0:6f28332c466f 1 // DNSClient.h 2013/4/5
Soohwan Kim 0:6f28332c466f 2 #pragma once
Soohwan Kim 0:6f28332c466f 3
Soohwan Kim 0:6f28332c466f 4 #include "UDPSocket.h"
Soohwan Kim 0:6f28332c466f 5
Soohwan Kim 0:6f28332c466f 6 class DNSClient {
Soohwan Kim 0:6f28332c466f 7 public:
Soohwan Kim 0:6f28332c466f 8 DNSClient(const char* hostname = NULL);
Soohwan Kim 0:6f28332c466f 9 DNSClient(Endpoint* pHost);
Soohwan Kim 0:6f28332c466f 10 virtual ~DNSClient();
Helmut Tschemernjak 34:7d44648ec5f2 11 bool lookup(const char* hostname = NULL, uint32_t dnsServer = 0);
Soohwan Kim 0:6f28332c466f 12 uint32_t ip;
Soohwan Kim 0:6f28332c466f 13 protected:
Soohwan Kim 0:6f28332c466f 14 void poll();
Soohwan Kim 0:6f28332c466f 15 void callback();
Soohwan Kim 0:6f28332c466f 16 int response(uint8_t buf[], int size);
Soohwan Kim 0:6f28332c466f 17 int query(uint8_t buf[], int size, const char* hostname);
Soohwan Kim 0:6f28332c466f 18 void resolve(const char* hostname);
Soohwan Kim 0:6f28332c466f 19 uint8_t m_id[2];
Soohwan Kim 0:6f28332c466f 20 Timer m_interval;
Soohwan Kim 0:6f28332c466f 21 int m_retry;
Soohwan Kim 0:6f28332c466f 22 private:
Soohwan Kim 0:6f28332c466f 23 enum MyNetDnsState
Soohwan Kim 0:6f28332c466f 24 {
Soohwan Kim 0:6f28332c466f 25 MYNETDNS_START,
Soohwan Kim 0:6f28332c466f 26 MYNETDNS_PROCESSING, //Req has not completed
Soohwan Kim 0:6f28332c466f 27 MYNETDNS_NOTFOUND,
Soohwan Kim 0:6f28332c466f 28 MYNETDNS_ERROR,
Soohwan Kim 0:6f28332c466f 29 MYNETDNS_OK
Soohwan Kim 0:6f28332c466f 30 };
Soohwan Kim 0:6f28332c466f 31 MyNetDnsState m_state;
Soohwan Kim 0:6f28332c466f 32 UDPSocket *m_udp;
Helmut Tschemernjak 34:7d44648ec5f2 33 const char* m_hostname;
Helmut Tschemernjak 34:7d44648ec5f2 34 uint32_t m_dnsServer;
Soohwan Kim 0:6f28332c466f 35 };
Soohwan Kim 0:6f28332c466f 36