#include <ldns/host2str.h>
-#include "util.h"
+#include <util.h>
/* lookup tables partly stolen from nsd, is there better way?
are these used somewhere else? */
{ 0, NULL }
};
-ldns_lookup_table ldns_rr_types[] = {
- { LDNS_RR_TYPE_A, "A" },
- { LDNS_RR_TYPE_NS, "NS" },
- { LDNS_RR_TYPE_MD, "MD" },
- { LDNS_RR_TYPE_MF, "MF" },
- { LDNS_RR_TYPE_CNAME, "CNAME" },
- { LDNS_RR_TYPE_SOA, "SOA" },
- { LDNS_RR_TYPE_MB, "MB" },
- { LDNS_RR_TYPE_MG, "MG" },
- { LDNS_RR_TYPE_MR, "MR" },
- { LDNS_RR_TYPE_NULL, "NULL" },
- { LDNS_RR_TYPE_WKS, "WKS" },
- { LDNS_RR_TYPE_PTR, "PTR" },
- { LDNS_RR_TYPE_HINFO, "HINFO" },
- { LDNS_RR_TYPE_MINFO, "MINFO" },
- { LDNS_RR_TYPE_MX, "MX" },
- { LDNS_RR_TYPE_TXT, "TXT" },
- { LDNS_RR_TYPE_RP, "RP" },
- { LDNS_RR_TYPE_AFSDB, "AFSDB" },
- { LDNS_RR_TYPE_X25, "X25" },
- { LDNS_RR_TYPE_ISDN, "ISDN" },
- { LDNS_RR_TYPE_RT, "RT" },
- { LDNS_RR_TYPE_NSAP, "NSAP" },
- { LDNS_RR_TYPE_SIG, "SIG" },
- { LDNS_RR_TYPE_KEY, "KEY" },
- { LDNS_RR_TYPE_PX, "PX" },
- { LDNS_RR_TYPE_AAAA, "AAAA" },
- { LDNS_RR_TYPE_LOC, "LOC" },
- { LDNS_RR_TYPE_NXT, "NXT" },
- { LDNS_RR_TYPE_SRV, "SRV" },
- { LDNS_RR_TYPE_NAPTR, "NAPTR" },
- { LDNS_RR_TYPE_KX, "KX" },
- { LDNS_RR_TYPE_CERT, "CERT" },
- { LDNS_RR_TYPE_DNAME, "DNAME" },
- { LDNS_RR_TYPE_OPT, "OPT" },
- { LDNS_RR_TYPE_APL, "APL" },
- { LDNS_RR_TYPE_DS, "DS" },
- { LDNS_RR_TYPE_SSHFP, "SSHFP" },
- { LDNS_RR_TYPE_RRSIG, "RRSIG" },
- { LDNS_RR_TYPE_NSEC, "NSEC" },
- { LDNS_RR_TYPE_DNSKEY, "DNSKEY" },
- { LDNS_RR_TYPE_TSIG, "TSIG" },
- { LDNS_RR_TYPE_IXFR, "IXFR" },
- { LDNS_RR_TYPE_AXFR, "AXFR" },
- { LDNS_RR_TYPE_MAILB, "MAILB" },
- { LDNS_RR_TYPE_MAILA, "MAILA" },
- { LDNS_RR_TYPE_ANY, "ANY" },
- { 0, NULL }
-};
-
-
/* TODO: general rdata2str or dname2str, with error
checks and return status etc */
/* this is temp function for debugging wire2rr */
uint16_t i;
ldns_status status = LDNS_STATUS_OK;
ldns_lookup_table *lt;
-
+ const ldns_rr_descriptor *descriptor;
+
if (ldns_rr_owner(rr)) {
status = ldns_rdf2buffer_dname(output, ldns_rr_owner(rr));
}
return status;
}
- lt = lookup_by_id(ldns_rr_classes, ldns_rr_get_class(rr));
+ lt = ldns_lookup_by_id(ldns_rr_classes, ldns_rr_get_class(rr));
if (lt) {
ldns_buffer_printf(output, "\t%s\t", lt->name);
} else {
ldns_buffer_printf(output, "\tCLASS%d\t", ldns_rr_get_class(rr));
}
-
- lt = lookup_by_id(ldns_rr_types, ldns_rr_get_type(rr));
- if (lt) {
- ldns_buffer_printf(output, "%s\t", lt->name);
+
+ descriptor = ldns_rr_descript(ldns_rr_get_type(rr));
+
+ if (descriptor->_name) {
+ ldns_buffer_printf(output, "%s\t", descriptor->_name);
} else {
ldns_buffer_printf(output, "TYPE%d\t", ldns_rr_get_type(rr));
}
+
for (i = 0; i < ldns_rr_rd_count(rr); i++) {
status = ldns_rdf2buffer(output, ldns_rr_rdf(rr, i));
}