+ DNS* dnsobj; /* DNS caller (where we get our FD from) */
+ unsigned long ttl; /* Time to live */
+ std::string orig; /* Original requested name/ip */
+ InspIRCd* ServerInstance;
+
+ DNSRequest(InspIRCd* Instance, DNS* dns, int id, const std::string &original);
+ ~DNSRequest();
+ DNSInfo ResultIsReady(DNSHeader &h, int length, int result_we_want);
+ int SendRequests(const DNSHeader *header, const int length, QueryType qt);
+};
+
+class CacheTimer : public Timer
+{
+ private:
+ InspIRCd* ServerInstance;
+ DNS* dns;
+ public:
+ CacheTimer(InspIRCd* Instance, DNS* thisdns)
+ : Timer(3600, Instance->Time(), true), ServerInstance(Instance), dns(thisdns) { }
+
+ virtual void Tick(time_t)
+ {
+ dns->PruneCache();
+ }
+};