+static const struct {
+ uint16_t type;
+ const char *name;
+} dns_types[] = {
+ { DNS_TYPE_A, "A" },
+ { DNS_TYPE_NS, "NS" },
+ { DNS_TYPE_CNAME, "CNAME" },
+ { DNS_TYPE_SOA, "SOA" },
+ { DNS_TYPE_PTR, "PTR" },
+ { DNS_TYPE_HINFO, "HINFO" },
+ { DNS_TYPE_MX, "MX" },
+ { DNS_TYPE_TXT, "TXT" },
+ { DNS_TYPE_AAAA, "AAAA" },
+ { DNS_TYPE_LOC, "LOC" },
+ { DNS_TYPE_SRV, "SRV" },
+ { DNS_TYPE_SSHFP, "SSHFP" },
+ { DNS_TYPE_SPF, "SPF" },
+ { DNS_TYPE_DNAME, "DNAME" },
+ { DNS_TYPE_ANY, "ANY" },
+ { DNS_TYPE_OPT, "OPT" },
+ { DNS_TYPE_TKEY, "TKEY" },
+ { DNS_TYPE_TSIG, "TSIG" },
+ { DNS_TYPE_IXFR, "IXFR" },
+ { DNS_TYPE_AXFR, "AXFR" },
+};
+
+const char *dns_type_to_string(uint16_t type) {
+ unsigned i;
+
+ for (i = 0; i < ELEMENTSOF(dns_types); i++)
+ if (dns_types[i].type == type)
+ return dns_types[i].name;