From: Alice Akaki Date: Thu, 20 Feb 2025 22:32:35 +0000 (-0400) Subject: ldap: refactor function aux_ldap_parse_protocol_resp_op X-Git-Tag: suricata-8.0.0-beta1~328 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bfa3558cf024a250048e0a4c9a63cd54ef58ffb4;p=thirdparty%2Fsuricata.git ldap: refactor function aux_ldap_parse_protocol_resp_op Split code to create a generic function that parses LdapIndex --- 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(