]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
added -4/-6 switching to resolv.
authorMiek Gieben <miekg@NLnetLabs.nl>
Tue, 15 Mar 2005 09:42:15 +0000 (09:42 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Tue, 15 Mar 2005 09:42:15 +0000 (09:42 +0000)
-6: refuse to do ip4 resolving (discard ip4 nameservers)
-4: opposite of 6

ldns/resolver.h
net.c
resolver.c

index eab8836308ca25a07f4a369d99c5076a27f619d2..7c08f5bf935857f1447fba97d21b1359428b50da 100644 (file)
 #define RESOLV_DEFDOMAIN       1
 #define RESOLV_NAMESERVER      2
 
+#define LDNS_RESOLV_INETANY            0
+#define LDNS_RESOLV_INET               1
+#define LDNS_RESOLV_INET6              2
+
 /**
  * \brief Structure of a dns resolver
  *
diff --git a/net.c b/net.c
index b1d2f56523085329154d2257e0ec83c94e1a93ab..5a1471a1bda4133250322abad346a5c2c7aedb79 100644 (file)
--- a/net.c
+++ b/net.c
@@ -71,6 +71,15 @@ ldns_send(ldns_resolver *r, ldns_pkt *query_pkt)
 
                ns = ldns_rdf2native_sockaddr_storage(ns_array[i]);
 
+               if ((ns->ss_family == AF_INET && 
+                               ldns_resolver_ip6(r) == RESOLV_INET6)
+                               ||
+                               (ns->ss_family == AF_INET6 &&
+                                ldns_resolver_ip6(r) == RESOLV_INET)) {
+                       /* mismatch, next please */
+                       continue;
+               }
+
                /* setup some family specific stuff */
                switch(ns->ss_family) {
                        case AF_INET:
index 8fafcdafc21c2f3bc1682b7d52cb679cc66045b8..26008b822b6b66cd86facbf6357ab292b2ba0dfc 100644 (file)
@@ -399,11 +399,6 @@ ldns_resolver_new(void)
 
        r->_searchlist = NULL;
        r->_nameservers = NULL;
-#if 0
-       if (!r->_searchlist || !r->_nameservers) {
-               return NULL;
-       }
-#endif
 
        /* defaults are filled out */
        ldns_resolver_set_searchlist_count(r, 0);