]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
added some rr_list functions: print
authorMiek Gieben <miekg@NLnetLabs.nl>
Thu, 24 Feb 2005 13:11:44 +0000 (13:11 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Thu, 24 Feb 2005 13:11:44 +0000 (13:11 +0000)
host2str.c
ldns/host2str.h
packet.c
run-test9.c

index c9ef22543afff0dc94a0c33840ce3b050bc604bf..9ef2b5cefc56d5ef1b6c26b53dffd7e12f955485 100644 (file)
@@ -820,6 +820,7 @@ ldns_rr_list2buffer_str(ldns_buffer *output, ldns_rr_list *list)
 
        for(i = 0; i < ldns_rr_list_rr_count(list); i++) {
                ldns_rr2buffer_str(output, ldns_rr_list_rr(list, i));
+               ldns_buffer_printf(output, "\n");
        }
        return ldns_buffer_status(output);
 }
@@ -1042,6 +1043,21 @@ ldns_pkt2str(ldns_pkt *pkt)
        return result;
 }
 
+char *
+ldns_rr_list2str(ldns_rr_list *list)
+{
+       char *result = NULL;
+       ldns_buffer *tmp_buffer = ldns_buffer_new(MAX_PACKETLEN); /* XXX len? */
+
+       if (ldns_rr_list2buffer_str(tmp_buffer, list) == LDNS_STATUS_OK) {
+               /* export and return string, destroy rest */
+               result = buffer2str(tmp_buffer);
+       }
+
+       ldns_buffer_free(tmp_buffer);
+       return result;
+}
+
 void
 ldns_rdf_print(FILE *output, ldns_rdf *rdf)
 {
@@ -1078,3 +1094,14 @@ ldns_pkt_print(FILE *output, ldns_pkt *pkt)
        FREE(str);
 }
 
+void
+ldns_rr_list_print(FILE *output, ldns_rr_list *lst)
+{
+       char *str = ldns_rr_list2str(lst);
+       if (str) {
+               fprintf(output, str);
+       } else {
+               fprintf(output, "Unable to convert rr_list to string\n");
+       }
+       FREE(str);
+}
index 6db6894e3f8249096cae98f96de6dd9c5303fb5b..51cff0c81ad2e73cc8364a2b2d65b7366bdde3b0 100644 (file)
@@ -118,4 +118,8 @@ void ldns_rr_print(FILE *output, ldns_rr *rr);
  */
 void ldns_pkt_print(FILE *output, ldns_pkt *pkt);
 
+ldns_status ldns_rr_list2buffer_str(ldns_buffer *, ldns_rr_list *);
+void ldns_rr_list_print(FILE *, ldns_rr_list *);
+
+
 #endif
index e011ba49ac730ee7bda04e76c6934d8115354929..fa50724d1ea73f78f26b7cd6c780c337b559998b 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -169,7 +169,10 @@ ldns_pkt_xxcount(ldns_pkt *packet, ldns_pkt_section s)
                case LDNS_SECTION_ADDITIONAL:
                        return ldns_pkt_arcount(packet);
                case LDNS_SECTION_ANY:
-                       return 0;
+                       return ldns_pkt_qdcount(packet) +
+                               ldns_pkt_ancount(packet) +
+                               ldns_pkt_nscount(packet) +
+                               ldns_pkt_arcount(packet);
        }
        return 0;
 }
index 0bd91dfbd661318c45e263f7744eb908b1b24a4d..4ccfc84b0d7aa67d3fde79a50bece884c94a30c3 100644 (file)
@@ -18,6 +18,7 @@ main(void)
         ldns_rdf *qname;
         ldns_rdf *nameserver;
         ldns_pkt *pkt;
+       ldns_rr_list *bla;
         
         /* init */
         res = ldns_resolver_new(); 
@@ -39,12 +40,10 @@ main(void)
         pkt = ldns_resolver_send(res, qname, LDNS_RR_TYPE_A, 0, LDNS_RD);
        if (pkt) {
                ldns_pkt_print(stdout, pkt);
+               bla = ldns_pkt_authority(pkt);
+
+               ldns_rr_list_print(stdout, bla);
        }
-       ldns_pkt_free(pkt);
-       
-       ldns_rdf_free(qname);
-       ldns_rdf_free(nameserver);
-       ldns_resolver_free(res);
        
         return 0;
 }