]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
some more stuff
authorMiek Gieben <miekg@NLnetLabs.nl>
Thu, 9 Jun 2005 11:01:12 +0000 (11:01 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Thu, 9 Jun 2005 11:01:12 +0000 (11:01 +0000)
higher.c
resolver.c

index 68d7eb73ffd4fdbe5c1f84e81c90d5ae2acb09a4..91918c4c158bef275f3a7f04081ebcb9c72744bc 100644 (file)
--- a/higher.c
+++ b/higher.c
@@ -228,7 +228,7 @@ ldns_getaddrinfo(ldns_resolver *res, ldns_rdf *node, ldns_rr_class c, ldns_rr_li
        }
 
        if (res == NULL) {
-               ldns_resolver_free(r);
+               ldns_resolver_deep_free(r);
        }
        
        return names_found;
index b4366ea462219210bfbd3f08e2aef491145a8f5d..9b05eecfa1871f3ba8e50710c25243fe5a11cf0a 100644 (file)
@@ -210,7 +210,9 @@ ldns_resolver_push_nameserver(ldns_resolver *r, ldns_rdf *n)
        ldns_resolver_set_nameservers(r, nameservers);
 
        /* slide n in its slot. */
-       nameservers[ns_count] = n;
+       /* we clone it here, because then we can free the original
+        * rr's where it stood */
+       nameservers[ns_count] = ldns_rdf_clone(n);
        ldns_resolver_incr_nameserver_count(r);
        return LDNS_STATUS_OK;
 }
@@ -377,7 +379,7 @@ ldns_resolver_set_timeout(ldns_resolver *r, struct timeval timeout)
 void
 ldns_resolver_push_searchlist(ldns_resolver *r, ldns_rdf *d)
 {
-       r->_searchlist[++r->_searchlist_count] = d;
+       r->_searchlist[++r->_searchlist_count] = ldns_rdf_clone(d);
 }
 
 void
@@ -580,16 +582,6 @@ ldns_resolver_deep_free(ldns_resolver *res)
        }
 }
 
-void
-ldns_resolver_free(ldns_resolver *res)
-{
-       if (res) {
-               LDNS_FREE(res->_searchlist);
-               LDNS_FREE(res->_nameservers);
-               LDNS_FREE(res);
-       }
-}
-
 #if 0
 /** 
  * Send the query