]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/dns: support txt records
authorJason Ish <ish@unx.ca>
Thu, 8 Jun 2017 19:26:37 +0000 (13:26 -0600)
committerVictor Julien <victor@inliniac.net>
Mon, 12 Jun 2017 17:27:36 +0000 (19:27 +0200)
rust/src/dns/dns.rs
rust/src/dns/log.rs
rust/src/dns/parser.rs

index bccef87c4f13891b6f97be95618f2014e61f1417..4c3b3f9a1ff0ee39bf352e1f7d610a864ca51ad0 100644 (file)
@@ -32,6 +32,7 @@ pub const DNS_RTYPE_CNAME: u16 = 5;
 pub const DNS_RTYPE_SOA:   u16 = 6;
 pub const DNS_RTYPE_PTR:   u16 = 12;
 pub const DNS_RTYPE_MX:    u16 = 15;
+pub const DNS_RTYPE_TXT:   u16 = 16;
 pub const DNS_RTYPE_AAAA:  u16 = 28;
 pub const DNS_RTYPE_SSHFP: u16 = 44;
 pub const DNS_RTYPE_RRSIG: u16 = 46;
index da18ac44e0c6baab55f9d29c263d1808f125661a..16fdfb615a1aad810319ce0d46ae77d1997c638d 100644 (file)
@@ -276,6 +276,7 @@ pub fn dns_rrtype_string(rrtype: u16) -> String {
         DNS_RTYPE_SOA => "SOA",
         DNS_RTYPE_PTR => "PTR",
         DNS_RTYPE_MX => "MX",
+        DNS_RTYPE_TXT => "TXT",
         DNS_RTYPE_AAAA => "AAAA",
         DNS_RTYPE_SSHFP => "SSHFP",
         DNS_RTYPE_RRSIG => "RRSIG",
@@ -389,6 +390,7 @@ fn dns_log_json_answer(header: &DNSHeader, answer: &DNSAnswerEntry)
         }
         DNS_RTYPE_CNAME |
         DNS_RTYPE_MX |
+        DNS_RTYPE_TXT |
         DNS_RTYPE_PTR => {
             js.set_string("rdata", answer.data_to_string());
         },
index d1e277a7a57c4f897317aaff430bb2c127e17e58..a307a09259039e8b0ac5d286c5f834c90d61917a 100644 (file)
@@ -205,6 +205,13 @@ pub fn dns_parse_rdata<'a>(data: &'a [u8], message: &'a [u8], rrtype: u16)
                     (name)
             ))(data)
         },
+        DNS_RTYPE_TXT => {
+            closure!(&'a [u8], do_parse!(
+                len: be_u8 >>
+                txt: take!(len) >>
+                    (txt.to_vec())
+            ))(data)
+        },
         _ => nom::IResult::Done(data, data.to_vec())
     }
 }