From bfa3558cf024a250048e0a4c9a63cd54ef58ffb4 Mon Sep 17 00:00:00 2001 From: Alice Akaki Date: Thu, 20 Feb 2025 18:32:35 -0400 Subject: [PATCH] ldap: refactor function aux_ldap_parse_protocol_resp_op Split code to create a generic function that parses LdapIndex --- rust/src/ldap/detect.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/rust/src/ldap/detect.rs b/rust/src/ldap/detect.rs index fad15816b9..2c630f83a9 100644 --- a/rust/src/ldap/detect.rs +++ b/rust/src/ldap/detect.rs @@ -115,11 +115,7 @@ unsafe extern "C" fn ldap_detect_request_free(_de: *mut c_void, ctx: *mut c_void rs_detect_u8_free(ctx); } -fn aux_ldap_parse_protocol_resp_op(s: &str) -> Option { - let parts: Vec<&str> = s.split(',').collect(); - if parts.len() > 2 { - return None; - } +fn parse_ldap_index(parts: &[&str]) -> Option { let index = if parts.len() == 2 { match parts[1] { "all" => LdapIndex::All, @@ -132,11 +128,19 @@ fn aux_ldap_parse_protocol_resp_op(s: &str) -> Option { } else { LdapIndex::Any }; - if let Some(ctx) = detect_parse_uint_enum::(parts[0]) { - let du8 = ctx; - return Some(DetectLdapRespOpData { du8, index }); + return Some(index); +} + +fn aux_ldap_parse_protocol_resp_op(s: &str) -> Option { + let parts: Vec<&str> = s.split(',').collect(); + if parts.len() > 2 { + return None; } - return None; + + let index = parse_ldap_index(&parts)?; + let du8 = detect_parse_uint_enum::(parts[0])?; + + Some(DetectLdapRespOpData { du8, index }) } unsafe extern "C" fn ldap_parse_protocol_resp_op( -- 2.47.3