W5200(WIZ820io) network interface
Diff: MyNetDnsRequest.h
- Revision:
- 0:61831b843b44
- Child:
- 2:a8df39b4f3aa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MyNetDnsRequest.h Sat Apr 14 17:21:11 2012 +0000 @@ -0,0 +1,35 @@ +// MyNetDnsRequest.h 2012/4/13 +#ifndef MYNETDNSREQUEST_H +#define MYNETDNSREQUEST_H +#include "if/net/netdnsrequest.h" +#include "UDPSocket.h" + +class MyNetDnsRequest : public NetDnsRequest { +public: + MyNetDnsRequest(const char* hostname); + MyNetDnsRequest(Host* pHost); + virtual ~MyNetDnsRequest(); + virtual void poll(); + virtual void close(); +protected: + void callback(UDPSocketEvent e); + 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_timer; +private: + enum MyNetDnsState + { + MYNETDNS_START, + MYNETDNS_PROCESSING, //Req has not completed + MYNETDNS_NOTFOUND, + MYNETDNS_ERROR, + MYNETDNS_OK + }; + MyNetDnsState m_state; + bool m_cbFired; + bool m_closing; + UDPSocket *m_udp; +}; +#endif //MYNETDNSREQUEST_H