From af498fd8404dab2e88f8aeb2c4748db7f445aba5 Mon Sep 17 00:00:00 2001 From: Simon Dugas Date: Fri, 24 Apr 2020 18:03:23 +0000 Subject: [PATCH] dns: use nom's rest to take all remaining rdata Using nom's `rest` combinator eliminates the need to call the do_parse macro for parsing a single element. --- rust/src/dns/parser.rs | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/rust/src/dns/parser.rs b/rust/src/dns/parser.rs index ec900ab0cd..8fea18457e 100644 --- a/rust/src/dns/parser.rs +++ b/rust/src/dns/parser.rs @@ -259,19 +259,11 @@ pub fn dns_parse_query<'a>(input: &'a [u8], } fn dns_parse_rdata_a<'a>(input: &'a [u8]) -> IResult<&'a [u8], DNSRData> { - do_parse!( - input, - data: take!(input.len()) >> - (DNSRData::A(data.to_vec())) - ) + rest(input).map(|(input, data)| (input, DNSRData::A(data.to_vec()))) } fn dns_parse_rdata_aaaa<'a>(input: &'a [u8]) -> IResult<&'a [u8], DNSRData> { - do_parse!( - input, - data: take!(input.len()) >> - (DNSRData::AAAA(data.to_vec())) - ) + rest(input).map(|(input, data)| (input, DNSRData::AAAA(data.to_vec()))) } fn dns_parse_rdata_cname<'a>(input: &'a [u8], message: &'a [u8]) @@ -331,11 +323,7 @@ fn dns_parse_rdata_sshfp<'a>(input: &'a [u8]) fn dns_parse_rdata_unknown<'a>(input: &'a [u8]) -> IResult<&'a [u8], DNSRData> { - do_parse!( - input, - data: take!(input.len()) >> - (DNSRData::Unknown(data.to_vec())) - ) + rest(input).map(|(input, data)| (input, DNSRData::Unknown(data.to_vec()))) } pub fn dns_parse_rdata<'a>(input: &'a [u8], message: &'a [u8], rrtype: u16) -- 2.47.2