Revised to prevent DHCPClient::discover from hanging.
Fork of WIZ820ioInterface by
Diff: DNSClient/DNSClient.h
- Revision:
- 5:fb15c35d1e28
diff -r 0bcec6272784 -r fb15c35d1e28 DNSClient/DNSClient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DNSClient/DNSClient.h Tue Aug 27 12:50:11 2013 +0000 @@ -0,0 +1,34 @@ +// DNSClient.h 2013/4/5 +#pragma once + +#include "UDPSocket.h" + +class DNSClient { +public: + DNSClient(const char* hostname = NULL); + DNSClient(Endpoint* pHost); + virtual ~DNSClient(); + bool lookup(const char* hostname = NULL); + uint32_t ip; +protected: + void poll(); + void callback(); + int response(uint8_t buf[], int size); + int query(uint8_t buf[], int size, const char* hostname); + void resolve(const char* hostname); + uint8_t m_id[2]; + Timer m_interval; + int m_retry; + const char* m_hostname; +private: + enum MyNetDnsState + { + MYNETDNS_START, + MYNETDNS_PROCESSING, //Req has not completed + MYNETDNS_NOTFOUND, + MYNETDNS_ERROR, + MYNETDNS_OK + }; + MyNetDnsState m_state; + UDPSocket *m_udp; +};