#define DNS_MAX_SIZE 256
-#define DNS_RECORD_TYPE_A 0x0001
-#define DNS_RECORD_TYPE_NS 0x0002
+#define DNS_RECORD_TYPE_A 1
+#define DNS_RECORD_TYPE_NS 2
-#define DNS_RECORD_TYPE_CNAME 0x0005
-#define DNS_RECORD_TYPE_SOA 0x0006
+#define DNS_RECORD_TYPE_CNAME 5
+#define DNS_RECORD_TYPE_SOA 6
-#define DNS_RECORD_TYPE_TXT 0x0010
+#define DNS_RECORD_TYPE_PTR 12
+#define DNS_RECORD_TYPE_MX 15
+#define DNS_RECORD_TYPE_TXT 16
-#define DNS_RECORD_TYPE_PTR 0x000c
-#define DNS_RECORD_TYPE_MX 0x000f
+#define DNS_RECORD_TYPE_AAAA 28
-#define DNS_RECORD_TYPE_AAAA 0x001c
+#define DNS_RECORD_TYPE_SRV 33
-#define DNS_RECORD_TYPE_ANY 0x00ff
+#define DNS_RECORD_TYPE_NAPTR 35
-#define DNS_RECORD_TYPE_TKEY 0x00f9
-#define DNS_RECORD_TYPE_TSIG 0x00fa /**< XXX correct? */
+#define DNS_RECORD_TYPE_DS 43
+
+#define DNS_RECORD_TYPE_RRSIG 46
+#define DNS_RECORD_TYPE_NSEC 47
+
+#define DNS_RECORD_TYPE_NSEC3 50
+
+#define DNS_RECORD_TYPE_TKEY 249
+#define DNS_RECORD_TYPE_TSIG 250
+
+#define DNS_RECORD_TYPE_ANY 255
enum {
DNS_DECODER_EVENT_UNSOLLICITED_RESPONSE,
} LogDnsLogThread;
static void CreateTypeString(uint16_t type, char *str, size_t str_size) {
- if (type == DNS_RECORD_TYPE_A) {
- snprintf(str, str_size, "A");
- } else if (type == DNS_RECORD_TYPE_NS) {
- snprintf(str, str_size, "NS");
- } else if (type == DNS_RECORD_TYPE_AAAA) {
- snprintf(str, str_size, "AAAA");
- } else if (type == DNS_RECORD_TYPE_TXT) {
- snprintf(str, str_size, "TXT");
- } else if (type == DNS_RECORD_TYPE_CNAME) {
- snprintf(str, str_size, "CNAME");
- } else if (type == DNS_RECORD_TYPE_SOA) {
- snprintf(str, str_size, "SOA");
- } else if (type == DNS_RECORD_TYPE_MX) {
- snprintf(str, str_size, "MX");
- } else if (type == DNS_RECORD_TYPE_PTR) {
- snprintf(str, str_size, "PTR");
- } else if (type == DNS_RECORD_TYPE_ANY) {
- snprintf(str, str_size, "ANY");
- } else if (type == DNS_RECORD_TYPE_TKEY) {
- snprintf(str, str_size, "TKEY");
- } else if (type == DNS_RECORD_TYPE_TSIG) {
- snprintf(str, str_size, "TSIG");
- } else {
- snprintf(str, str_size, "%04x/%u", type, type);
+ switch (type) {
+ case DNS_RECORD_TYPE_A:
+ snprintf(str, str_size, "A");
+ break;
+ case DNS_RECORD_TYPE_NS:
+ snprintf(str, str_size, "NS");
+ break;
+ case DNS_RECORD_TYPE_AAAA:
+ snprintf(str, str_size, "AAAA");
+ break;
+ case DNS_RECORD_TYPE_TXT:
+ snprintf(str, str_size, "TXT");
+ break;
+ case DNS_RECORD_TYPE_CNAME:
+ snprintf(str, str_size, "CNAME");
+ break;
+ case DNS_RECORD_TYPE_SOA:
+ snprintf(str, str_size, "SOA");
+ break;
+ case DNS_RECORD_TYPE_MX:
+ snprintf(str, str_size, "MX");
+ break;
+ case DNS_RECORD_TYPE_PTR:
+ snprintf(str, str_size, "PTR");
+ break;
+ case DNS_RECORD_TYPE_ANY:
+ snprintf(str, str_size, "ANY");
+ break;
+ case DNS_RECORD_TYPE_TKEY:
+ snprintf(str, str_size, "TKEY");
+ break;
+ case DNS_RECORD_TYPE_TSIG:
+ snprintf(str, str_size, "TSIG");
+ break;
+ case DNS_RECORD_TYPE_SRV:
+ snprintf(str, str_size, "SRV");
+ break;
+ case DNS_RECORD_TYPE_NAPTR:
+ snprintf(str, str_size, "NAPTR");
+ break;
+ case DNS_RECORD_TYPE_DS:
+ snprintf(str, str_size, "DS");
+ break;
+ case DNS_RECORD_TYPE_RRSIG:
+ snprintf(str, str_size, "RRSIG");
+ break;
+ case DNS_RECORD_TYPE_NSEC:
+ snprintf(str, str_size, "NSEC");
+ break;
+ case DNS_RECORD_TYPE_NSEC3:
+ snprintf(str, str_size, "NSEC3");
+ break;
+ default:
+ snprintf(str, str_size, "%04x/%u", type, type);
}
}