]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
push_nameserver_rr, allow rr's to be used as nameserver addresses
authorMiek Gieben <miekg@NLnetLabs.nl>
Tue, 8 Mar 2005 10:25:11 +0000 (10:25 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Tue, 8 Mar 2005 10:25:11 +0000 (10:25 +0000)
ldns/resolver.h
resolver.c
rr.c

index 82e593e90a74a0d1f10fc25e29f4b9fd7425d695..f4ba24690d34eaf8a8e00785ea0c147d639776d6 100644 (file)
@@ -107,6 +107,7 @@ void ldns_resolver_set_domain(ldns_resolver *, ldns_rdf *);
 void ldns_resolver_set_timeout(ldns_resolver *r, struct timeval timeout);
 void ldns_resolver_push_searchlist(ldns_resolver *, ldns_rdf *);
 ldns_status ldns_resolver_push_nameserver(ldns_resolver *, ldns_rdf *);
+ldns_status ldns_resolver_push_nameserver_rr(ldns_resolver *, ldns_rr *);
 
 ldns_pkt * ldns_resolver_bgsend();
 ldns_pkt * ldns_resolver_send(ldns_resolver *, ldns_rdf*, ldns_rr_type, ldns_rr_class, uint16_t);
index cdd247e477d4c73d7ab9ed052dce2c5d71198e36..b88d95bd7d32ce933ff42a24fe8fe12f8ab0c41e 100644 (file)
@@ -133,7 +133,6 @@ ldns_resolver_set_port(ldns_resolver *r, uint16_t p)
 ldns_status
 ldns_resolver_push_nameserver(ldns_resolver *r, ldns_rdf *n)
 {
-       /* LDNS_RDF_TYPE_A | LDNS_RDF_TYPE_AAAA */
        ldns_rdf **nameservers;
 
        if (ldns_rdf_get_type(n) != LDNS_RDF_TYPE_A &&
@@ -155,6 +154,27 @@ ldns_resolver_push_nameserver(ldns_resolver *r, ldns_rdf *n)
        return LDNS_STATUS_OK;
 }
 
+/**
+ * push a new nameserver to the resolver. It must be an 
+ * A or AAAA RR record type
+ * \param[in] r the resolver
+ * \param[in] r the rr 
+ * \return ldns_status a status
+ */
+ldns_status
+ldns_resolver_push_nameserver_rr(ldns_resolver *r, ldns_rr *rr)
+{
+       ldns_rdf *address;
+
+       if (ldns_rr_get_type(rr) != LDNS_RR_TYPE_A &&
+                       ldns_rr_get_type(rr) != LDNS_RR_TYPE_AAAA) {
+               return LDNS_STATUS_ERR;
+       }
+
+       address = ldns_rr_rdf(rr, 1); /* extra the ip number */
+       return ldns_resolver_push_nameserver(r, address);
+}
+
 void
 ldns_resolver_set_recursive(ldns_resolver *r, bool re)
 {
diff --git a/rr.c b/rr.c
index c313805dad0d93839f8e324f2a7b7c45f51a1594..08b7ceb28b8343180e4e741762e3082e13dd24dd 100644 (file)
--- a/rr.c
+++ b/rr.c
@@ -311,9 +311,9 @@ ldns_rr_pop_rdf(ldns_rr *rr)
 }
 
 /**
- * set the rdata field member counter
+ * return the rdata field member counter
  * \param[in] *rr rr to operate on
- * \param[in] nr the number to set
+ * \param[in] nr the number of the rdf to return
  * \return ldns_rdf *
  */
 ldns_rdf *