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);
}
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)
{
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);
+}
*/
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
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;
}
ldns_rdf *qname;
ldns_rdf *nameserver;
ldns_pkt *pkt;
+ ldns_rr_list *bla;
/* init */
res = ldns_resolver_new();
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;
}