]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dns json: log TXT response data
authorVictor Julien <victor@inliniac.net>
Thu, 15 May 2014 09:14:54 +0000 (11:14 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 21 May 2014 15:31:45 +0000 (17:31 +0200)
Log TXT data in the rdata field.

src/output-json-dns.c

index e9e579009c6f037bf38c82429162f71bd23c08ea..6939027941f0190966d652e0e452f544eb2c67dc 100644 (file)
@@ -179,6 +179,17 @@ static void OutputAnswer(LogDnsLogThread *aft, json_t *djs, DNSTransaction *tx,
             json_object_set_new(js, "rdata", json_string(a));
         } else if (entry->data_len == 0) {
             json_object_set_new(js, "rdata", json_string(""));
+        } else if (entry->type == DNS_RECORD_TYPE_TXT) {
+            if (entry->data_len != 0) {
+                char buffer[256] = "";
+                uint16_t copy_len = entry->data_len < (sizeof(buffer) - 1) ?
+                    entry->data_len : sizeof(buffer) - 1;
+                memcpy(buffer, ptr, copy_len);
+                buffer[copy_len] = '\0';
+                json_object_set_new(js, "rdata", json_string(buffer));
+            } else {
+                json_object_set_new(js, "rdata", json_string(""));
+            }
         }
     }