digit1,
tag(","),
))(i)?;
- let (i, part1) = verify(parse_u16, |&v| v <= std::u8::MAX as u16)(i)?;
+ let (i, part1) = verify(parse_u16, |&v| v <= u8::MAX as u16)(i)?;
let (i, _) = tag(",")(i)?;
- let (i, part2) = verify(parse_u16, |&v| v <= std::u8::MAX as u16)(i)?;
+ let (i, part2) = verify(parse_u16, |&v| v <= u8::MAX as u16)(i)?;
Ok((i, part1 * 256 + part2))
}
digit1,
tag(","),
))(i)?;
- let (i, part1) = verify(getu16, |&v| v <= std::u8::MAX as u16)(i)?;
+ let (i, part1) = verify(getu16, |&v| v <= u8::MAX as u16)(i)?;
let (i, _) = tag(",")(i)?;
- let (i, part2) = verify(getu16, |&v| v <= std::u8::MAX as u16)(i)?;
+ let (i, part2) = verify(getu16, |&v| v <= u8::MAX as u16)(i)?;
// may also be completed by a final point
let (i, _) = tag(")")(i)?;
let (i, _) = opt(complete(tag(".")))(i)?;
fn check_match_range(sig_range: &Range<u16>, trans_range: RangeInclusive<u16>) -> bool {
if sig_range.start == sig_range.end {
sig_range.start >= *trans_range.start() && sig_range.start <= *trans_range.end()
- } else if sig_range.start == std::u16::MIN {
+ } else if sig_range.start == u16::MIN {
sig_range.end > *trans_range.start()
- } else if sig_range.end == std::u16::MAX {
+ } else if sig_range.end == u16::MAX {
sig_range.start < *trans_range.end()
} else {
sig_range.start < *trans_range.end() && *trans_range.start() < sig_range.end
fn check_match(sig_range: &Range<u16>, value: u16) -> bool {
if sig_range.start == sig_range.end {
sig_range.start == value
- } else if sig_range.start == std::u16::MIN {
+ } else if sig_range.start == u16::MIN {
sig_range.end > value
- } else if sig_range.end == std::u16::MAX {
+ } else if sig_range.end == u16::MAX {
sig_range.start < value
} else {
sig_range.start < value && value < sig_range.end
/// Gets the min/max range of an alert signature from the respective capture groups.
/// In the case where the max is not given, it is set based on the first char of the min str
/// which indicates what range we are looking for:
-/// '<' = std::u16::MIN..min
-/// '>' = min..std::u16::MAX
+/// '<' = u16::MIN..min
+/// '>' = min..u16::MAX
/// _ = min..min
/// If the max is given, the range returned is min..max
fn parse_range(min_str: &str, max_str: &str) -> Result<Range<u16>, ()> {
debug_validate_bug_on!(!sign.is_ascii_digit() && sign != '<' && sign != '>');
match min_str[!sign.is_ascii_digit() as usize..].parse::<u16>() {
Ok(num) => match sign {
- '>' => Ok(num..std::u16::MAX),
- '<' => Ok(std::u16::MIN..num),
+ '>' => Ok(num..u16::MAX),
+ '<' => Ok(u16::MIN..num),
_ => Ok(num..num),
},
Err(_) => {
parse_access("access write coils, address <500"),
Ok(DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::COILS),
- address: Some(std::u16::MIN..500),
+ address: Some(u16::MIN..500),
..Default::default()
})
);
parse_access("access write coils, address >500"),
Ok(DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::COILS),
- address: Some(500..std::u16::MAX),
+ address: Some(500..u16::MAX),
..Default::default()
})
);
Ok(DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::HOLDING),
address: Some(100..100),
- value: Some(std::u16::MIN..1000),
+ value: Some(u16::MIN..1000),
..Default::default()
})
);
assert_eq!(
parse_unit_id("unit <11"),
Ok(DetectModbusRust {
- unit_id: Some(std::u16::MIN..11),
+ unit_id: Some(u16::MIN..11),
..Default::default()
})
);
&DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::HOLDING),
address: Some(15..15),
- value: Some(std::u16::MIN..4660),
+ value: Some(u16::MIN..4660),
..Default::default()
}
),
&DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::HOLDING),
address: Some(15..15),
- value: Some(4660..std::u16::MAX),
+ value: Some(4660..u16::MAX),
..Default::default()
}
),
&DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::HOLDING),
address: Some(16..16),
- value: Some(std::u16::MIN..22137),
+ value: Some(u16::MIN..22137),
..Default::default()
}
),
&DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::HOLDING),
address: Some(16..16),
- value: Some(std::u16::MIN..22137),
+ value: Some(u16::MIN..22137),
..Default::default()
}
),
&DetectModbusRust {
access_type: Some(AccessType::WRITE | AccessType::HOLDING),
address: Some(17..17),
- value: Some(39611..std::u16::MAX),
+ value: Some(39611..u16::MAX),
..Default::default()
}
),
rs_modbus_inspect(
&modbus.transactions[0],
&DetectModbusRust {
- unit_id: Some(11..std::u16::MAX),
+ unit_id: Some(11..u16::MAX),
..Default::default()
}
),
rs_modbus_inspect(
&modbus.transactions[0],
&DetectModbusRust {
- unit_id: Some(std::u16::MIN..9),
+ unit_id: Some(u16::MIN..9),
..Default::default()
}
),
rs_modbus_inspect(
&modbus.transactions[0],
&DetectModbusRust {
- unit_id: Some(9..std::u16::MAX),
+ unit_id: Some(9..u16::MAX),
..Default::default()
}
),
rs_modbus_inspect(
&modbus.transactions[0],
&DetectModbusRust {
- unit_id: Some(std::u16::MIN..11),
+ unit_id: Some(u16::MIN..11),
..Default::default()
}
),
&modbus.transactions[5],
&DetectModbusRust {
access_type: Some(AccessType::READ | AccessType::INPUT),
- address: Some(std::u16::MIN..9),
+ address: Some(u16::MIN..9),
..Default::default()
}
),
&modbus.transactions[5],
&DetectModbusRust {
access_type: Some(AccessType::READ | AccessType::INPUT),
- address: Some(104..std::u16::MAX),
+ address: Some(104..u16::MAX),
..Default::default()
}
),
&modbus.transactions[5],
&DetectModbusRust {
access_type: Some(AccessType::READ | AccessType::INPUT),
- address: Some(std::u16::MIN..10),
+ address: Some(u16::MIN..10),
..Default::default()
}
),
&modbus.transactions[5],
&DetectModbusRust {
access_type: Some(AccessType::READ | AccessType::INPUT),
- address: Some(103..std::u16::MAX),
+ address: Some(103..u16::MAX),
..Default::default()
}
),