rust/applayertemplate: convert to nom7

pull/7948/head
Pierre Chifflier 4 years ago committed by Victor Julien
parent 378e915846
commit 0acf75bff7

@ -15,28 +15,29 @@
* 02110-1301, USA. * 02110-1301, USA.
*/ */
use nom7::{
bytes::streaming::{take, take_until},
combinator::map_res,
IResult,
};
use std; use std;
fn parse_len(input: &str) -> Result<u32, std::num::ParseIntError> { fn parse_len(input: &str) -> Result<u32, std::num::ParseIntError> {
input.parse::<u32>() input.parse::<u32>()
} }
named!(pub parse_message<String>, pub fn parse_message(i: &[u8]) -> IResult<&[u8], String> {
do_parse!( let (i, len) = map_res(map_res(take_until(":"), std::str::from_utf8), parse_len)(i)?;
len: map_res!( let (i, _sep) = take(1_usize)(i)?;
map_res!(take_until!(":"), std::str::from_utf8), parse_len) >> let (i, msg) = map_res(take(len as usize), std::str::from_utf8)(i)?;
_sep: take!(1) >> let result = msg.to_string();
msg: take_str!(len) >> Ok((i, result))
( }
msg.to_string()
)
));
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use nom::*;
use super::*; use super::*;
use nom7::Err;
/// Simple test of some valid data. /// Simple test of some valid data.
#[test] #[test]

@ -20,7 +20,7 @@ use std::collections::VecDeque;
use crate::core::{ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_TCP}; use crate::core::{ALPROTO_UNKNOWN, AppProto, Flow, IPPROTO_TCP};
use crate::applayer::{self, *}; use crate::applayer::{self, *};
use std::ffi::CString; use std::ffi::CString;
use nom; use nom7 as nom;
use super::parser; use super::parser;
static mut ALPROTO_TEMPLATE: AppProto = ALPROTO_UNKNOWN; static mut ALPROTO_TEMPLATE: AppProto = ALPROTO_UNKNOWN;

Loading…
Cancel
Save