/**
* Result status, used internally
*/
-class DNSResult : public classbase
+class CoreExport DNSResult : public classbase
{
public:
/** Result ID
/** Cached item stored in the query cache.
*/
-class CachedQuery
+class CoreExport CachedQuery
{
public:
/** The cached result data, an IP or hostname
*/
int CalcTTLRemaining()
{
- int n = expires - time(NULL);
+ int n = (int)expires - (int)time(NULL);
return (n < 0 ? 0 : n);
}
};
/** DNS cache information. Holds IPs mapped to hostnames, and hostnames mapped to IPs.
*/
+#ifndef WIN32
typedef nspace::hash_map<irc::string, CachedQuery, nspace::hash<irc::string> > dnscache;
+#else
+typedef nspace::hash_map<irc::string, CachedQuery, nspace::hash_compare<irc::string> > dnscache;
+#endif
/**
* Error types that class Resolver can emit to its error method.
/**
* A DNS Resource Record (rr)
*/
-class ResourceRecord;
+struct ResourceRecord;
/**
* Query and resource record types
*/
enum QueryType
{
- DNS_QUERY_NONE = 0, /* Uninitialized Query */
- DNS_QUERY_A = 1, /* 'A' record: an ipv4 address */
- DNS_QUERY_CNAME = 5, /* 'CNAME' record: An alias */
- DNS_QUERY_PTR = 12, /* 'PTR' record: a hostname */
- DNS_QUERY_AAAA = 28, /* 'AAAA' record: an ipv6 address */
-
- DNS_QUERY_PTR4 = 0xFFFD, /* Force 'PTR' to use IPV4 scemantics */
- DNS_QUERY_PTR6 = 0xFFFE, /* Force 'PTR' to use IPV6 scemantics */
+ DNS_QUERY_NONE = 0, /* Uninitialized Query */
+ DNS_QUERY_A = 1, /* 'A' record: an ipv4 address */
+ DNS_QUERY_CNAME = 5, /* 'CNAME' record: An alias */
+ DNS_QUERY_PTR = 12, /* 'PTR' record: a hostname */
+ DNS_QUERY_AAAA = 28, /* 'AAAA' record: an ipv6 address */
+
+ DNS_QUERY_PTR4 = 0xFFFD, /* Force 'PTR' to use IPV4 scemantics */
+ DNS_QUERY_PTR6 = 0xFFFE, /* Force 'PTR' to use IPV6 scemantics */
};
#ifdef IPV6
const QueryType DNS_QUERY_FORWARD = DNS_QUERY_AAAA;
-const QueryType DNS_QUERY_REVERSE = DNS_QUERY_PTR;
#else
const QueryType DNS_QUERY_FORWARD = DNS_QUERY_A;
-const QueryType DNS_QUERY_REVERSE = DNS_QUERY_PTR;
#endif
-
+const QueryType DNS_QUERY_REVERSE = DNS_QUERY_PTR;
/**
* Used internally to force PTR lookups to use a certain protocol scemantics,
* e.g. x.x.x.x.in-addr.arpa for v4, and *.ip6.arpa for v6.
* can occur by calling virtual methods, one is a success situation, and the other
* an error situation.
*/
-class Resolver : public Extensible
+class CoreExport Resolver : public Extensible
{
protected:
/**
* back to Resolver objects, based upon the request ID. You
* should never use this class yourself.
*/
-class DNS : public EventHandler
+class CoreExport DNS : public EventHandler
{
private:
public:
- /**
+ /**
* Server address being used currently
*/
int socketfamily;