From: Antti Tönkyrä Date: Thu, 8 Oct 2020 09:33:33 +0000 (+0300) Subject: dns: add rdata logging for NS rrtype X-Git-Tag: suricata-7.0.0-beta1~1954 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3ad7f14fabe722d9d5c707323504ac20535962c;p=thirdparty%2Fsuricata.git dns: add rdata logging for NS rrtype --- diff --git a/rust/src/dns/dns.rs b/rust/src/dns/dns.rs index 4102968580..4586be589d 100644 --- a/rust/src/dns/dns.rs +++ b/rust/src/dns/dns.rs @@ -269,6 +269,7 @@ pub enum DNSRData { CNAME(Vec), PTR(Vec), MX(Vec), + NS(Vec), // RData is text TXT(Vec), NULL(Vec), diff --git a/rust/src/dns/log.rs b/rust/src/dns/log.rs index 02519b8135..2b1286f77d 100644 --- a/rust/src/dns/log.rs +++ b/rust/src/dns/log.rs @@ -443,6 +443,7 @@ fn dns_log_json_answer_detail(answer: &DNSAnswerEntry) -> Result { @@ -515,6 +516,7 @@ fn dns_log_json_answer(js: &mut JsonBuilder, response: &DNSResponse, flags: u64) } DNSRData::CNAME(bytes) | DNSRData::MX(bytes) | + DNSRData::NS(bytes) | DNSRData::TXT(bytes) | DNSRData::NULL(bytes) | DNSRData::PTR(bytes) => { @@ -688,6 +690,7 @@ fn dns_log_json_answer_v1(header: &DNSHeader, answer: &DNSAnswerEntry) } DNSRData::CNAME(bytes) | DNSRData::MX(bytes) | + DNSRData::NS(bytes) | DNSRData::TXT(bytes) | DNSRData::NULL(bytes) | DNSRData::PTR(bytes) => { diff --git a/rust/src/dns/lua.rs b/rust/src/dns/lua.rs index 570c71e512..c1731b6f46 100644 --- a/rust/src/dns/lua.rs +++ b/rust/src/dns/lua.rs @@ -176,6 +176,7 @@ pub extern "C" fn rs_dns_lua_get_answer_table(clua: &mut CLuaState, }, DNSRData::CNAME(ref bytes) | DNSRData::MX(ref bytes) | + DNSRData::NS(ref bytes) | DNSRData::TXT(ref bytes) | DNSRData::NULL(ref bytes) | DNSRData::PTR(ref bytes) | diff --git a/rust/src/dns/parser.rs b/rust/src/dns/parser.rs index a59a09fbaa..c821f13d9d 100644 --- a/rust/src/dns/parser.rs +++ b/rust/src/dns/parser.rs @@ -272,6 +272,12 @@ fn dns_parse_rdata_cname<'a>(input: &'a [u8], message: &'a [u8]) (input, DNSRData::CNAME(name))) } +fn dns_parse_rdata_ns<'a>(input: &'a [u8], message: &'a [u8]) + -> IResult<&'a [u8], DNSRData> { + dns_parse_name(input, message).map(|(input, name)| + (input, DNSRData::NS(name))) +} + fn dns_parse_rdata_ptr<'a>(input: &'a [u8], message: &'a [u8]) -> IResult<&'a [u8], DNSRData> { dns_parse_name(input, message).map(|(input, name)| @@ -362,6 +368,7 @@ pub fn dns_parse_rdata<'a>(input: &'a [u8], message: &'a [u8], rrtype: u16) DNS_RECORD_TYPE_PTR => dns_parse_rdata_ptr(input, message), DNS_RECORD_TYPE_SOA => dns_parse_rdata_soa(input, message), DNS_RECORD_TYPE_MX => dns_parse_rdata_mx(input, message), + DNS_RECORD_TYPE_NS => dns_parse_rdata_ns(input, message), DNS_RECORD_TYPE_TXT => dns_parse_rdata_txt(input), DNS_RECORD_TYPE_NULL => dns_parse_rdata_null(input), DNS_RECORD_TYPE_SSHFP => dns_parse_rdata_sshfp(input),