From: Jason Ish Date: Thu, 8 Jun 2017 19:26:37 +0000 (-0600) Subject: rust/dns: support txt records X-Git-Tag: suricata-4.0.0-rc1~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2aebfbce946104716d97549802b2b05e356fd761;p=thirdparty%2Fsuricata.git rust/dns: support txt records --- diff --git a/rust/src/dns/dns.rs b/rust/src/dns/dns.rs index bccef87c4f..4c3b3f9a1f 100644 --- a/rust/src/dns/dns.rs +++ b/rust/src/dns/dns.rs @@ -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; diff --git a/rust/src/dns/log.rs b/rust/src/dns/log.rs index da18ac44e0..16fdfb615a 100644 --- a/rust/src/dns/log.rs +++ b/rust/src/dns/log.rs @@ -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()); }, diff --git a/rust/src/dns/parser.rs b/rust/src/dns/parser.rs index d1e277a7a5..a307a09259 100644 --- a/rust/src/dns/parser.rs +++ b/rust/src/dns/parser.rs @@ -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()) } }