And an extra data field in ldns_output_format in which for example a rbtree mapping nsec3 hashes to names could be passed along.
}
void
-ldns_dnssec_data_chain_print_fmt(FILE *out,
- const ldns_dnssec_data_chain *chain,
- const ldns_output_format *fmt)
+ldns_dnssec_data_chain_print_fmt(FILE *out, const ldns_output_format *fmt,
+ const ldns_dnssec_data_chain *chain)
{
ldns_lookup_table *rcode;
const ldns_rr_descriptor *rr_descriptor;
if (chain) {
- ldns_dnssec_data_chain_print_fmt(out, chain->parent, fmt);
+ ldns_dnssec_data_chain_print_fmt(out, fmt, chain->parent);
if (ldns_rr_list_rr_count(chain->rrset) > 0) {
rcode = ldns_lookup_by_id(ldns_rcodes,
(int) chain->packet_rcode);
fprintf(out, ";; NODATA response\n");
}
fprintf(out, "rrset:\n");
- ldns_rr_list_print_fmt(out, chain->rrset, fmt);
+ ldns_rr_list_print_fmt(out, fmt, chain->rrset);
fprintf(out, "sigs:\n");
- ldns_rr_list_print_fmt(out, chain->signatures, fmt);
+ ldns_rr_list_print_fmt(out, fmt, chain->signatures);
fprintf(out, "---\n");
} else {
fprintf(out, "<no data>\n");
void
ldns_dnssec_data_chain_print(FILE *out, const ldns_dnssec_data_chain *chain)
{
- ldns_dnssec_data_chain_print_fmt(out, chain, ldns_output_format_default);
+ ldns_dnssec_data_chain_print_fmt(
+ out, ldns_output_format_default, chain);
}
void
ldns_dnssec_trust_tree_print_sm_fmt(FILE *out,
+ const ldns_output_format *fmt,
ldns_dnssec_trust_tree *tree,
size_t tabs,
bool extended,
uint8_t *sibmap,
- size_t treedepth,
- const ldns_output_format *fmt)
+ size_t treedepth)
{
size_t i;
const ldns_rr_descriptor *descriptor;
ERR_print_errors_fp(stdout);
printf("\n");
}
- ldns_rr_print_fmt(out, tree->parent_signature[i], fmt);
+ ldns_rr_print_fmt(out, fmt,
+ tree->
+ parent_signature[i]);
printf("For RRset:\n");
- ldns_rr_list_print_fmt(out, tree->rrset, fmt);
+ ldns_rr_list_print_fmt(out, fmt,
+ tree->rrset);
printf("With key:\n");
- ldns_rr_print_fmt(out, tree->parents[i]->rr, fmt);
+ ldns_rr_print_fmt(out, fmt,
+ tree->parents[i]->rr);
}
- ldns_dnssec_trust_tree_print_sm_fmt(out,
+ ldns_dnssec_trust_tree_print_sm_fmt(out, fmt,
tree->parents[i],
tabs+1,
extended,
sibmap,
- treedepth,
- fmt);
+ treedepth);
}
} else {
print_tabs(out, tabs, sibmap, treedepth);
uint8_t *sibmap,
size_t treedepth)
{
- ldns_dnssec_trust_tree_print_sm_fmt(out, tree, tabs, extended, sibmap, treedepth, ldns_output_format_default);
+ ldns_dnssec_trust_tree_print_sm_fmt(out, ldns_output_format_default,
+ tree, tabs, extended, sibmap, treedepth);
}
void
-ldns_dnssec_trust_tree_print_fmt(FILE *out,
+ldns_dnssec_trust_tree_print_fmt(FILE *out, const ldns_output_format *fmt,
ldns_dnssec_trust_tree *tree,
size_t tabs,
- bool extended,
- const ldns_output_format *fmt)
+ bool extended)
{
- ldns_dnssec_trust_tree_print_sm_fmt(out, tree, tabs, extended, NULL, 0, fmt);
+ ldns_dnssec_trust_tree_print_sm_fmt(out, fmt,
+ tree, tabs, extended, NULL, 0);
}
void
size_t tabs,
bool extended)
{
- ldns_dnssec_trust_tree_print_fmt(out, tree, tabs, extended, ldns_output_format_default);
+ ldns_dnssec_trust_tree_print_fmt(out, ldns_output_format_default,
+ tree, tabs, extended);
}
}
void
-ldns_dnssec_rrs_print_fmt(FILE *out, ldns_dnssec_rrs *rrs, const ldns_output_format *fmt)
+ldns_dnssec_rrs_print_fmt(FILE *out, const ldns_output_format *fmt,
+ ldns_dnssec_rrs *rrs)
{
if (!rrs) {
fprintf(out, "<void>");
} else {
if (rrs->rr) {
- ldns_rr_print_fmt(out, rrs->rr, fmt);
+ ldns_rr_print_fmt(out, fmt, rrs->rr);
}
if (rrs->next) {
- ldns_dnssec_rrs_print_fmt(out, rrs->next, fmt);
+ ldns_dnssec_rrs_print_fmt(out, fmt, rrs->next);
}
}
}
void
ldns_dnssec_rrs_print(FILE *out, ldns_dnssec_rrs *rrs)
{
- ldns_dnssec_rrs_print_fmt(out, rrs, ldns_output_format_default);
+ ldns_dnssec_rrs_print_fmt(out, ldns_output_format_default, rrs);
}
}
void
-ldns_dnssec_rrsets_print_soa_fmt(FILE *out,
+ldns_dnssec_rrsets_print_soa_fmt(FILE *out, const ldns_output_format *fmt,
ldns_dnssec_rrsets *rrsets,
bool follow,
- bool show_soa,
- const ldns_output_format *fmt)
+ bool show_soa)
{
if (!rrsets) {
fprintf(out, "<void>\n");
ldns_rr_get_type(rrsets->rrs->rr) != LDNS_RR_TYPE_SOA
)
) {
- ldns_dnssec_rrs_print_fmt(out, rrsets->rrs, fmt);
+ ldns_dnssec_rrs_print_fmt(out, fmt, rrsets->rrs);
if (rrsets->signatures) {
- ldns_dnssec_rrs_print_fmt(out, rrsets->signatures, fmt);
+ ldns_dnssec_rrs_print_fmt(out, fmt,
+ rrsets->signatures);
}
}
if (follow && rrsets->next) {
- ldns_dnssec_rrsets_print_soa_fmt(out, rrsets->next, follow, show_soa, fmt);
+ ldns_dnssec_rrsets_print_soa_fmt(out, fmt,
+ rrsets->next, follow, show_soa);
}
}
}
bool follow,
bool show_soa)
{
- ldns_dnssec_rrsets_print_soa_fmt(out, rrsets, follow, show_soa, ldns_output_format_default);
+ ldns_dnssec_rrsets_print_soa_fmt(out, ldns_output_format_default,
+ rrsets, follow, show_soa);
}
void
-ldns_dnssec_rrsets_print_fmt(FILE *out,
+ldns_dnssec_rrsets_print_fmt(FILE *out, const ldns_output_format *fmt,
ldns_dnssec_rrsets *rrsets,
- bool follow,
- const ldns_output_format *fmt)
+ bool follow)
{
- ldns_dnssec_rrsets_print_soa_fmt(out, rrsets, follow, true, fmt);
+ ldns_dnssec_rrsets_print_soa_fmt(out, fmt, rrsets, follow, true);
}
void
ldns_dnssec_rrsets_print(FILE *out, ldns_dnssec_rrsets *rrsets, bool follow)
{
- ldns_dnssec_rrsets_print_fmt(out, rrsets, follow, ldns_output_format_default);
+ ldns_dnssec_rrsets_print_fmt(out, ldns_output_format_default,
+ rrsets, follow);
}
ldns_dnssec_name *
}
void
-ldns_dnssec_name_print_soa_fmt(FILE *out,
+ldns_dnssec_name_print_soa_fmt(FILE *out, const ldns_output_format *fmt,
ldns_dnssec_name *name,
- bool show_soa,
- const ldns_output_format *fmt)
+ bool show_soa)
{
if (name) {
if(name->rrsets) {
- ldns_dnssec_rrsets_print_soa_fmt(out, name->rrsets, true, show_soa, fmt);
+ ldns_dnssec_rrsets_print_soa_fmt(out, fmt,
+ name->rrsets, true, show_soa);
} else {
fprintf(out, ";; Empty nonterminal: ");
ldns_rdf_print(out, name->name);
fprintf(out, "\n");
}
if(name->nsec) {
- ldns_rr_print_fmt(out, name->nsec, fmt);
+ ldns_rr_print_fmt(out, fmt, name->nsec);
}
if (name->nsec_signatures) {
- ldns_dnssec_rrs_print_fmt(out, name->nsec_signatures, fmt);
+ ldns_dnssec_rrs_print_fmt(out, fmt,
+ name->nsec_signatures);
}
} else {
fprintf(out, "<void>\n");
void
ldns_dnssec_name_print_soa(FILE *out, ldns_dnssec_name *name, bool show_soa)
{
- ldns_dnssec_name_print_soa_fmt(
- out, name, show_soa, ldns_output_format_default);
+ ldns_dnssec_name_print_soa_fmt(out, ldns_output_format_default,
+ name, show_soa);
}
void
-ldns_dnssec_name_print_fmt(FILE *out,
- ldns_dnssec_name *name,
- const ldns_output_format *fmt)
+ldns_dnssec_name_print_fmt(FILE *out, const ldns_output_format *fmt,
+ ldns_dnssec_name *name)
{
- ldns_dnssec_name_print_soa_fmt(out, name, true, fmt);
+ ldns_dnssec_name_print_soa_fmt(out, fmt, name, true);
}
void
ldns_dnssec_name_print(FILE *out, ldns_dnssec_name *name)
{
- ldns_dnssec_name_print_fmt(out, name, ldns_output_format_default);
+ ldns_dnssec_name_print_fmt(out, ldns_output_format_default, name);
}
#endif /* HAVE_SSL */
void
-ldns_dnssec_zone_names_print_fmt(FILE *out,
+ldns_dnssec_zone_names_print_fmt(FILE *out, const ldns_output_format *fmt,
ldns_rbtree_t *tree,
- bool print_soa,
- const ldns_output_format *fmt)
+ bool print_soa)
{
ldns_rbnode_t *node;
ldns_dnssec_name *name;
node = ldns_rbtree_first(tree);
while (node != LDNS_RBTREE_NULL) {
name = (ldns_dnssec_name *) node->data;
- ldns_dnssec_name_print_soa_fmt(out, name, print_soa, fmt);
+ ldns_dnssec_name_print_soa_fmt(out, fmt, name, print_soa);
fprintf(out, ";\n");
node = ldns_rbtree_next(node);
}
void
ldns_dnssec_zone_names_print(FILE *out, ldns_rbtree_t *tree, bool print_soa)
{
- ldns_dnssec_zone_names_print_fmt(out, tree, print_soa, ldns_output_format_default);
+ ldns_dnssec_zone_names_print_fmt(out, ldns_output_format_default,
+ tree, print_soa);
}
void
-ldns_dnssec_zone_print_fmt(FILE *out, ldns_dnssec_zone *zone, const ldns_output_format *fmt)
+ldns_dnssec_zone_print_fmt(FILE *out, const ldns_output_format *fmt,
+ ldns_dnssec_zone *zone)
{
if (zone) {
if (zone->soa) {
ldns_rdf_print(out,
ldns_dnssec_name_name(zone->soa));
fprintf(out, "\n;\n");
- ldns_dnssec_rrsets_print_fmt(out,
+ ldns_dnssec_rrsets_print_fmt(out, fmt,
ldns_dnssec_name_find_rrset(
zone->soa,
LDNS_RR_TYPE_SOA),
- false,
- fmt);
+ false);
fprintf(out, ";\n");
}
if (zone->names) {
- ldns_dnssec_zone_names_print_fmt(
- out, zone->names, false, fmt);
+ ldns_dnssec_zone_names_print_fmt(out, fmt,
+ zone->names, false);
}
}
}
void
ldns_dnssec_zone_print(FILE *out, ldns_dnssec_zone *zone)
{
- ldns_dnssec_zone_print_fmt(out, zone, ldns_output_format_default);
+ ldns_dnssec_zone_print_fmt(out, ldns_output_format_default, zone);
}
ldns_status
}
if (print_soa && ldns_zone_soa(z)) {
- ldns_rr_print_fmt(stdout, ldns_zone_soa(z), fmt);
+ ldns_rr_print_fmt(stdout, fmt, ldns_zone_soa(z));
}
- ldns_rr_list_print_fmt(stdout, ldns_zone_rrs(z), fmt);
+ ldns_rr_list_print_fmt(stdout, fmt, ldns_zone_rrs(z));
ldns_zone_deep_free(z);
} else {
{ 0, NULL }
};
-const ldns_output_format ldns_output_format_nocomments_record = { 0 };
+const ldns_output_format ldns_output_format_nocomments_record = { 0, NULL };
const ldns_output_format *ldns_output_format_nocomments
= &ldns_output_format_nocomments_record;
const ldns_output_format ldns_output_format_onlykeyids_record = {
- LDNS_COMMENT_KEY
+ LDNS_COMMENT_KEY, NULL
};
const ldns_output_format *ldns_output_format_onlykeyids
= &ldns_output_format_onlykeyids_record;
const ldns_output_format *ldns_output_format_default
= &ldns_output_format_onlykeyids_record;
const ldns_output_format ldns_output_format_bubblebabble_record = {
- LDNS_COMMENT_KEY | LDNS_COMMENT_BUBBLEBABBLE | LDNS_COMMENT_FLAGS
+ LDNS_COMMENT_KEY | LDNS_COMMENT_BUBBLEBABBLE | LDNS_COMMENT_FLAGS, NULL
};
const ldns_output_format *ldns_output_format_bubblebabble
= &ldns_output_format_bubblebabble_record;
-
-
-
ldns_status
ldns_pkt_opcode2buffer_str(ldns_buffer *output, ldns_pkt_opcode opcode)
{
ldns_status
-ldns_rr2buffer_str_fmt(
- ldns_buffer *output, const ldns_rr *rr, const ldns_output_format *fmt)
+ldns_rr2buffer_str_fmt(ldns_buffer *output,
+ const ldns_output_format *fmt, const ldns_rr *rr)
{
uint16_t i, flags;
ldns_status status = LDNS_STATUS_OK;
ldns_status
ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr)
{
- return ldns_rr2buffer_str_fmt(output, rr, ldns_output_format_default);
+ return ldns_rr2buffer_str_fmt(output, ldns_output_format_default, rr);
}
ldns_status
-ldns_rr_list2buffer_str_fmt(
- ldns_buffer *output, const ldns_rr_list *list, const ldns_output_format *fmt)
+ldns_rr_list2buffer_str_fmt(ldns_buffer *output,
+ const ldns_output_format *fmt, const ldns_rr_list *list)
{
uint16_t i;
for(i = 0; i < ldns_rr_list_rr_count(list); i++) {
- (void) ldns_rr2buffer_str_fmt(
- output, ldns_rr_list_rr(list, i), fmt);
+ (void) ldns_rr2buffer_str_fmt(output, fmt,
+ ldns_rr_list_rr(list, i));
}
return ldns_buffer_status(output);
}
ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list)
{
return ldns_rr_list2buffer_str_fmt(
- output, list, ldns_output_format_default);
+ output, ldns_output_format_default, list);
}
ldns_status
}
ldns_status
-ldns_pkt2buffer_str_fmt(
- ldns_buffer *output, const ldns_pkt *pkt, const ldns_output_format *fmt)
+ldns_pkt2buffer_str_fmt(ldns_buffer *output,
+ const ldns_output_format *fmt, const ldns_pkt *pkt)
{
uint16_t i;
ldns_status status = LDNS_STATUS_OK;
for (i = 0; i < ldns_pkt_qdcount(pkt); i++) {
- status = ldns_rr2buffer_str_fmt(output,
- ldns_rr_list_rr(ldns_pkt_question(pkt), i),
- fmt);
+ status = ldns_rr2buffer_str_fmt(output, fmt,
+ ldns_rr_list_rr(
+ ldns_pkt_question(pkt), i));
if (status != LDNS_STATUS_OK) {
return status;
}
ldns_buffer_printf(output, ";; ANSWER SECTION:\n");
for (i = 0; i < ldns_pkt_ancount(pkt); i++) {
- status = ldns_rr2buffer_str_fmt(output,
- ldns_rr_list_rr(ldns_pkt_answer(pkt), i),
- fmt);
+ status = ldns_rr2buffer_str_fmt(output, fmt,
+ ldns_rr_list_rr(
+ ldns_pkt_answer(pkt), i));
if (status != LDNS_STATUS_OK) {
return status;
}
ldns_buffer_printf(output, ";; AUTHORITY SECTION:\n");
for (i = 0; i < ldns_pkt_nscount(pkt); i++) {
- status = ldns_rr2buffer_str_fmt(output,
- ldns_rr_list_rr(ldns_pkt_authority(pkt), i),
- fmt);
+ status = ldns_rr2buffer_str_fmt(output, fmt,
+ ldns_rr_list_rr(
+ ldns_pkt_authority(pkt), i));
if (status != LDNS_STATUS_OK) {
return status;
}
ldns_buffer_printf(output, ";; ADDITIONAL SECTION:\n");
for (i = 0; i < ldns_pkt_arcount(pkt); i++) {
- status = ldns_rr2buffer_str_fmt(output,
- ldns_rr_list_rr(ldns_pkt_additional(pkt), i),
- fmt);
+ status = ldns_rr2buffer_str_fmt(output, fmt,
+ ldns_rr_list_rr(
+ ldns_pkt_additional(pkt), i));
if (status != LDNS_STATUS_OK) {
return status;
}
if (ldns_pkt_tsig(pkt)) {
ldns_buffer_printf(output, ";; TSIG:\n;; ");
(void) ldns_rr2buffer_str_fmt(
- output, ldns_pkt_tsig(pkt), fmt);
+ output, fmt, ldns_pkt_tsig(pkt));
ldns_buffer_printf(output, "\n");
}
if (ldns_pkt_answerfrom(pkt)) {
ldns_status
ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt)
{
- return ldns_pkt2buffer_str_fmt(output, pkt, ldns_output_format_default);
+ return ldns_pkt2buffer_str_fmt(output, ldns_output_format_default, pkt);
}
}
char *
-ldns_rr2str_fmt(const ldns_rr *rr, const ldns_output_format *fmt)
+ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr)
{
char *result = NULL;
ldns_buffer *tmp_buffer = ldns_buffer_new(LDNS_MAX_PACKETLEN);
if (!tmp_buffer) {
return NULL;
}
- if (ldns_rr2buffer_str_fmt(tmp_buffer, rr, fmt)
+ if (ldns_rr2buffer_str_fmt(tmp_buffer, fmt, rr)
== LDNS_STATUS_OK) {
/* export and return string, destroy rest */
result = ldns_buffer2str(tmp_buffer);
char *
ldns_rr2str(const ldns_rr *rr)
{
- return ldns_rr2str_fmt(rr, ldns_output_format_default);
+ return ldns_rr2str_fmt(ldns_output_format_default, rr);
}
char *
-ldns_pkt2str_fmt(const ldns_pkt *pkt, const ldns_output_format *fmt)
+ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt)
{
char *result = NULL;
ldns_buffer *tmp_buffer = ldns_buffer_new(LDNS_MAX_PACKETLEN);
if (!tmp_buffer) {
return NULL;
}
- if (ldns_pkt2buffer_str_fmt(tmp_buffer, pkt, fmt)
+ if (ldns_pkt2buffer_str_fmt(tmp_buffer, fmt, pkt)
== LDNS_STATUS_OK) {
/* export and return string, destroy rest */
result = ldns_buffer2str(tmp_buffer);
char *
ldns_pkt2str(const ldns_pkt *pkt)
{
- return ldns_pkt2str_fmt(pkt, ldns_output_format_default);
+ return ldns_pkt2str_fmt(ldns_output_format_default, pkt);
}
char *
}
char *
-ldns_rr_list2str_fmt(const ldns_rr_list *list, const ldns_output_format *fmt)
+ldns_rr_list2str_fmt(const ldns_output_format *fmt, const ldns_rr_list *list)
{
char *result = NULL;
ldns_buffer *tmp_buffer = ldns_buffer_new(LDNS_MAX_PACKETLEN);
}
if (list) {
if (ldns_rr_list2buffer_str_fmt(
- tmp_buffer, list, fmt)
+ tmp_buffer, fmt, list)
== LDNS_STATUS_OK) {
}
} else {
char *
ldns_rr_list2str(const ldns_rr_list *list)
{
- return ldns_rr_list2str_fmt(list, ldns_output_format_default);
+ return ldns_rr_list2str_fmt(ldns_output_format_default, list);
}
void
}
void
-ldns_rr_print_fmt(FILE *output, const ldns_rr *rr, const ldns_output_format *fmt)
+ldns_rr_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_rr *rr)
{
- char *str = ldns_rr2str_fmt(rr, fmt);
+ char *str = ldns_rr2str_fmt(fmt, rr);
if (str) {
fprintf(output, "%s", str);
} else {
void
ldns_rr_print(FILE *output, const ldns_rr *rr)
{
- ldns_rr_print_fmt(output, rr, ldns_output_format_default);
+ ldns_rr_print_fmt(output, ldns_output_format_default, rr);
}
void
-ldns_pkt_print_fmt(FILE *output, const ldns_pkt *pkt, const ldns_output_format *fmt)
+ldns_pkt_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_pkt *pkt)
{
- char *str = ldns_pkt2str_fmt(pkt, fmt);
+ char *str = ldns_pkt2str_fmt(fmt, pkt);
if (str) {
fprintf(output, "%s", str);
} else {
void
ldns_pkt_print(FILE *output, const ldns_pkt *pkt)
{
- ldns_pkt_print_fmt(output, pkt, ldns_output_format_default);
+ ldns_pkt_print_fmt(output, ldns_output_format_default, pkt);
}
void
-ldns_rr_list_print_fmt(FILE *output, const ldns_rr_list *lst, const ldns_output_format *fmt)
+ldns_rr_list_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_rr_list *lst)
{
size_t i;
for (i = 0; i < ldns_rr_list_rr_count(lst); i++) {
- ldns_rr_print_fmt(output, ldns_rr_list_rr(lst, i), fmt);
+ ldns_rr_print_fmt(output, fmt, ldns_rr_list_rr(lst, i));
}
}
void
ldns_rr_list_print(FILE *output, const ldns_rr_list *lst)
{
- ldns_rr_list_print_fmt(output, lst, ldns_output_format_default);
+ ldns_rr_list_print_fmt(output, ldns_output_format_default, lst);
}
void
-ldns_resolver_print_fmt(FILE *output, const ldns_resolver *r, const ldns_output_format *fmt)
+ldns_resolver_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_resolver *r)
{
uint16_t i;
ldns_rdf **n;
fprintf(output, "dnssec cd: %d\n", ldns_resolver_dnssec_cd(r));
fprintf(output, "trust anchors (%d listed):\n",
(int)ldns_rr_list_rr_count(ldns_resolver_dnssec_anchors(r)));
- ldns_rr_list_print_fmt(output, ldns_resolver_dnssec_anchors(r), fmt);
+ ldns_rr_list_print_fmt(output, fmt, ldns_resolver_dnssec_anchors(r));
fprintf(output, "tsig: %s %s\n",
ldns_resolver_tsig_keyname(r)?ldns_resolver_tsig_keyname(r):"-",
ldns_resolver_tsig_algorithm(r)?ldns_resolver_tsig_algorithm(r):"-");
void
ldns_resolver_print(FILE *output, const ldns_resolver *r)
{
- ldns_resolver_print_fmt(output, r, ldns_output_format_default);
+ ldns_resolver_print_fmt(output, ldns_output_format_default, r);
}
void
-ldns_zone_print_fmt(FILE *output, const ldns_zone *z, const ldns_output_format *fmt)
+ldns_zone_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_zone *z)
{
if(ldns_zone_soa(z))
- ldns_rr_print_fmt(output, ldns_zone_soa(z), fmt);
- ldns_rr_list_print_fmt(output, ldns_zone_rrs(z), fmt);
+ ldns_rr_print_fmt(output, fmt, ldns_zone_soa(z));
+ ldns_rr_list_print_fmt(output, fmt, ldns_zone_rrs(z));
}
void
ldns_zone_print(FILE *output, const ldns_zone *z)
{
- ldns_zone_print_fmt(output, z, ldns_output_format_default);
+ ldns_zone_print_fmt(output, ldns_output_format_default, z);
}
*/
void ldns_dnssec_data_chain_print(FILE *out, const ldns_dnssec_data_chain *chain);
void ldns_dnssec_data_chain_print_fmt(FILE *out,
- const ldns_dnssec_data_chain *chain,
- const ldns_output_format *fmt);
+ const ldns_output_format *fmt,
+ const ldns_dnssec_data_chain *chain);
/**
* Build an ldns_dnssec_data_chain, which contains all
size_t tabs,
bool extended);
void ldns_dnssec_trust_tree_print_fmt(FILE *out,
+ const ldns_output_format *fmt,
ldns_dnssec_trust_tree *tree,
size_t tabs,
- bool extended,
- const ldns_output_format *fmt);
+ bool extended);
/**
* Adds a trust tree as a parent for the given trust tree
*/
void ldns_dnssec_rrs_print(FILE *out, ldns_dnssec_rrs *rrs);
void ldns_dnssec_rrs_print_fmt(FILE *out,
- ldns_dnssec_rrs *rrs, const ldns_output_format *fmt);
+ const ldns_output_format *fmt, ldns_dnssec_rrs *rrs);
/**
* Creates a new list (entry) of RRsets
ldns_dnssec_rrsets *rrsets,
bool follow);
void ldns_dnssec_rrsets_print_fmt(FILE *out,
+ const ldns_output_format *fmt,
ldns_dnssec_rrsets *rrsets,
- bool follow,
- const ldns_output_format *fmt);
+ bool follow);
/**
*/
void ldns_dnssec_name_print(FILE *out, ldns_dnssec_name *name);
void ldns_dnssec_name_print_fmt(FILE *out,
- ldns_dnssec_name *name, const ldns_output_format *fmt);
+ const ldns_output_format *fmt, ldns_dnssec_name *name);
/**
* Creates a new dnssec_zone structure
* \param[in] print_soa if true, print SOA records, if false, skip them
*/
void ldns_dnssec_zone_names_print(FILE *out, ldns_rbtree_t *tree, bool print_soa);
-void ldns_dnssec_zone_names_print_fmt(FILE *out, ldns_rbtree_t *tree,
- bool print_soa, const ldns_output_format *fmt);
+void ldns_dnssec_zone_names_print_fmt(FILE *out, const ldns_output_format *fmt,
+ ldns_rbtree_t *tree, bool print_soa);
/**
* Prints the complete zone to the given file descriptor
*/
void ldns_dnssec_zone_print(FILE *out, ldns_dnssec_zone *zone);
void ldns_dnssec_zone_print_fmt(FILE *out,
- ldns_dnssec_zone *zone, const ldns_output_format *fmt);
+ const ldns_output_format *fmt, ldns_dnssec_zone *zone);
/**
* Adds explicit dnssec_name structures for the empty nonterminals
#define LDNS_APL_MASK 0x7f
#define LDNS_APL_NEGATION 0x80
-#define LDNS_COMMENT_NULLS 0x01
-#define LDNS_COMMENT_KEY_ID 0x02
-#define LDNS_COMMENT_KEY_TYPE 0x04
-#define LDNS_COMMENT_KEY_SIZE 0x08
-#define LDNS_COMMENT_KEY (LDNS_COMMENT_KEY_ID \
- |LDNS_COMMENT_KEY_TYPE\
- |LDNS_COMMENT_KEY_SIZE)
+#define LDNS_COMMENT_NULLS 0x01
+#define LDNS_COMMENT_KEY_ID 0x02
+#define LDNS_COMMENT_KEY_TYPE 0x04
+#define LDNS_COMMENT_KEY_SIZE 0x08
+#define LDNS_COMMENT_KEY (LDNS_COMMENT_KEY_ID \
+ |LDNS_COMMENT_KEY_TYPE\
+ |LDNS_COMMENT_KEY_SIZE)
#define LDNS_COMMENT_BUBBLEBABBLE 0x10
-#define LDNS_COMMENT_FLAGS 0x20
+#define LDNS_COMMENT_FLAGS 0x20
+#define LDNS_COMMENT_NSEC3_CHAIN 0x40
struct ldns_struct_output_format
{
- int flags;
+ int flags;
+ void *data;
};
typedef struct ldns_struct_output_format ldns_output_format;
* \return status
*/
ldns_status ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr);
-
-/**
- * Converts the data in the resource record to presentation
- * format (as char *) and appends it to the given buffer
- *
- * \param[in] output pointer to the buffer to append the data to
- * \param[in] rr the pointer to the rr field to convert
- * \param[in] comments flags indicating what type of comments should
- * annotate the presentation format. Can be any of
- * LDNS_COMMENT_NULL (to also indicate an NULL rr,
- * LDNS_COMMENT_KEY_ID (to show key identity),
- * LDNS_COMMENT_KEY_TYPE (to show if the key is a ksk or a zsk),
- * LDNS_COMMENT_KEY_SIZE (to show the key size),
- * LDNS_COMMENT_KEY (to show all key annotations),
- * LDNS_COMMENT_BUBBLEBABBLE (to show readable and communicable
- * version of a blob of binary data
- * (currently only with DS records)),
- * LDNS_COMMENT_FLAGS (to show what flags are set (currently only
- * if optout flag is set with NSEC3 records))
- * \return status
- */
-ldns_status ldns_rr2buffer_str_fmt(
- ldns_buffer *output, const ldns_rr *rr, const ldns_output_format *fmt);
+ldns_status ldns_rr2buffer_str_fmt(ldns_buffer *output,
+ const ldns_output_format *fmt, const ldns_rr *rr);
/**
* Converts the data in the DNS packet to presentation
* \return status
*/
ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
-ldns_status ldns_pkt2buffer_str_fmt(
- ldns_buffer *output, const ldns_pkt *pkt, const ldns_output_format *fmt);
+ldns_status ldns_pkt2buffer_str_fmt(ldns_buffer *output,
+ const ldns_output_format *fmt, const ldns_pkt *pkt);
/**
* Converts an LDNS_RDF_TYPE_NSEC3_SALT rdata element to string format and adds it to the output buffer
* \return null terminated char * data, or NULL on error
*/
char *ldns_rr2str(const ldns_rr *rr);
-char *ldns_rr2str_fmt(const ldns_rr *rr, const ldns_output_format *fmt);
+char *ldns_rr2str_fmt(const ldns_output_format *fmt, const ldns_rr *rr);
/**
* Converts the data in the DNS packet to presentation format and
* \return null terminated char * data, or NULL on error
*/
char *ldns_pkt2str(const ldns_pkt *pkt);
-char *ldns_pkt2str_fmt(const ldns_pkt *pkt, const ldns_output_format *fmt);
+char *ldns_pkt2str_fmt(const ldns_output_format *fmt, const ldns_pkt *pkt);
/**
* Converts a private key to the test presentation fmt and
* \return null terminated char * data, or NULL on error
*/
char *ldns_rr_list2str(const ldns_rr_list *rr_list);
-char *ldns_rr_list2str_fmt(const ldns_rr_list *rr_list, const ldns_output_format *fmt);
+char *ldns_rr_list2str_fmt(
+ const ldns_output_format *fmt, const ldns_rr_list *rr_list);
/**
* Returns the data in the buffer as a null terminated char * string
* \return void
*/
void ldns_rr_print(FILE *output, const ldns_rr *rr);
-void ldns_rr_print_fmt(FILE *output, const ldns_rr *rr, const ldns_output_format *fmt);
+void ldns_rr_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_rr *rr);
/**
* Prints the data in the DNS packet to the given file stream
* \return void
*/
void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);
-void ldns_pkt_print_fmt(FILE *output, const ldns_pkt *pkt, const ldns_output_format *fmt);
+void ldns_pkt_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_pkt *pkt);
/**
* Converts a rr_list to presentation format and appends it to
* \return ldns_status
*/
ldns_status ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list);
-ldns_status ldns_rr_list2buffer_str_fmt(ldns_buffer *output, const ldns_rr_list *list, const ldns_output_format *fmt);
+ldns_status ldns_rr_list2buffer_str_fmt(ldns_buffer *output,
+ const ldns_output_format *fmt, const ldns_rr_list *list);
/**
* Converts the header of a packet to presentation format and appends it to
* param[in] list the rr_list to print
*/
void ldns_rr_list_print(FILE *output, const ldns_rr_list *list);
-void ldns_rr_list_print_fmt(FILE *output, const ldns_rr_list *list, const ldns_output_format *fmt);
+void ldns_rr_list_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_rr_list *list);
/**
* Print a resolver (in sofar that is possible) state
* \param[in] r the resolver to print
*/
void ldns_resolver_print(FILE *output, const ldns_resolver *r);
-void ldns_resolver_print_fmt(FILE *output, const ldns_resolver *r, const ldns_output_format *fmt);
+void ldns_resolver_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_resolver *r);
/**
* Print a zone structure * to output. Note the SOA record
* \param[in] z the zone to print
*/
void ldns_zone_print(FILE *output, const ldns_zone *z);
-void ldns_zone_print_fmt(FILE *output, const ldns_zone *z, const ldns_output_format *fmt);
+void ldns_zone_print_fmt(FILE *output,
+ const ldns_output_format *fmt, const ldns_zone *z);
/**
* Print the ldns_rdf containing a dname to the buffer