X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fdns.h;h=adb9fdab853d02ab2f5eb5b5f1e1a23d95b3e780;hb=84083a73e80734e39892f44411549d2381654c95;hp=d823a04a802e7b234a21b570992dfab88725ffb0;hpb=9cf56d917d92959701694477f7944d45ad2c38ed;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/dns.h b/include/dns.h index d823a04a8..adb9fdab8 100644 --- a/include/dns.h +++ b/include/dns.h @@ -155,24 +155,22 @@ struct ResourceRecord; */ 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. @@ -288,8 +286,10 @@ class CoreExport Resolver : public Extensible * result, this is the number of seconds remaining before refresh/expiry. * @param cached True if the result is a cached result, false if it was requested * from the DNS server. + * @param resultnum Result number, for records with multiple matching results. + * Normally, you will only want to act on this when the result is 0. */ - virtual void OnLookupComplete(const std::string &result, unsigned int ttl, bool cached) = 0; + virtual void OnLookupComplete(const std::string &result, unsigned int ttl, bool cached, int resultnum = 0) = 0; /** * If an error occurs (such as NXDOMAIN, no domain name found) then this method * will be called. @@ -368,7 +368,7 @@ class CoreExport DNS : public EventHandler public: - /** + /** * Server address being used currently */ int socketfamily; @@ -441,8 +441,9 @@ class CoreExport DNS : public EventHandler /** * Fetch the result string (an ip or host) * and/or an error message to go with it. + * @param resultnum Result number to fetch */ - DNSResult GetResult(); + DNSResult GetResult(int resultnum); /** * Handle a SocketEngine read event