]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dns: unify type to string logging utility
authorVictor Julien <victor@inliniac.net>
Sat, 24 May 2014 16:48:18 +0000 (18:48 +0200)
committerVictor Julien <victor@inliniac.net>
Sat, 24 May 2014 16:48:18 +0000 (18:48 +0200)
Both DNS loggers had their own CreateTypeString. This patch unifies
them.

src/app-layer-dns-common.c
src/app-layer-dns-common.h
src/log-dnslog.c
src/output-json-dns.c

index 3c58950c46744981adddbd9fe7f1fa45f450b3f9..164006ffc2728e009a4e609cbae1dc5e819bbc13 100644 (file)
@@ -959,3 +959,61 @@ bad_data:
 insufficient_data:
     return NULL;
 }
+
+void DNSCreateTypeString(uint16_t type, char *str, size_t str_size) {
+    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);
+    }
+}
index c1ae18bd55ed69a67538e9fd948da75f6f5d83d8..9ae04c165d66876036aa9099ecf7ff2ea1e17d40 100644 (file)
@@ -222,4 +222,6 @@ const uint8_t *DNSReponseParse(DNSState *dns_state, const DNSHeader * const dns_
 uint16_t DNSUdpResponseGetNameByOffset(const uint8_t * const input, const uint32_t input_len,
         const uint16_t offset, uint8_t *fqdn, const size_t fqdn_size);
 
+void DNSCreateTypeString(uint16_t type, char *str, size_t str_size);
+
 #endif /* __APP_LAYER_DNS_COMMON_H__ */
index 0116b3515494fe23bd1e4bd2c89e4f2f6bbe3862..0b8aedc9d924f2a2967322c4c5a26f66c7aada2e 100644 (file)
@@ -71,34 +71,6 @@ typedef struct LogDnsLogThread_ {
     MemBuffer *buffer;
 } 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);
-    }
-}
-
 static void LogQuery(LogDnsLogThread *aft, char *timebuf, char *srcip, char *dstip, Port sp, Port dp, DNSTransaction *tx, DNSQueryEntry *entry) {
     LogDnsFileCtx *hlog = aft->dnslog_ctx;
 
@@ -117,7 +89,7 @@ static void LogQuery(LogDnsLogThread *aft, char *timebuf, char *srcip, char *dst
             entry->len);
 
     char record[16] = "";
-    CreateTypeString(entry->type, record, sizeof(record));
+    DNSCreateTypeString(entry->type, record, sizeof(record));
     MemBufferWriteString(aft->buffer,
             " [**] %s [**] %s:%" PRIu16 " -> %s:%" PRIu16 "\n",
             record, srcip, sp, dstip, dp);
@@ -156,7 +128,7 @@ static void LogAnswer(LogDnsLogThread *aft, char *timebuf, char *srcip, char *ds
         }
 
         char record[16] = "";
-        CreateTypeString(entry->type, record, sizeof(record));
+        DNSCreateTypeString(entry->type, record, sizeof(record));
         MemBufferWriteString(aft->buffer,
                 " [**] %s [**] TTL %u [**] ", record, entry->ttl);
 
index 0522838f6777ea35373f7ed75f8cbc184273e83b..066ce8901ca2e237b4d56d603e0bb0d43b1e6804 100644 (file)
@@ -70,64 +70,6 @@ typedef struct LogDnsLogThread_ {
     MemBuffer *buffer;
 } LogDnsLogThread;
 
-static void CreateTypeString(uint16_t type, char *str, size_t str_size) {
-    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);
-    }
-}
-
 static void LogQuery(LogDnsLogThread *aft, json_t *js, DNSTransaction *tx, DNSQueryEntry *entry) {
     MemBuffer *buffer = (MemBuffer *)aft->buffer;
 
@@ -157,7 +99,7 @@ static void LogQuery(LogDnsLogThread *aft, json_t *js, DNSTransaction *tx, DNSQu
 
     /* name */
     char record[16] = "";
-    CreateTypeString(entry->type, record, sizeof(record));
+    DNSCreateTypeString(entry->type, record, sizeof(record));
     json_object_set_new(djs, "rrtype", json_string(record));
 
     /* dns */
@@ -192,7 +134,7 @@ static void OutputAnswer(LogDnsLogThread *aft, json_t *djs, DNSTransaction *tx,
 
         /* name */
         char record[16] = "";
-        CreateTypeString(entry->type, record, sizeof(record));
+        DNSCreateTypeString(entry->type, record, sizeof(record));
         json_object_set_new(js, "rrtype", json_string(record));
 
         /* ttl */