diff --git a/src/tools/sequence_triage_ccr_cir.rs b/src/tools/sequence_triage_ccr_cir.rs index 009abe7..67c01e1 100644 --- a/src/tools/sequence_triage_ccr_cir.rs +++ b/src/tools/sequence_triage_ccr_cir.rs @@ -534,11 +534,11 @@ mod tests { assert_eq!(output["sandwich"]["heatmap"].as_array().unwrap().len(), 1); assert_eq!(output["sandwich"]["heatmap"][0]["total"].as_u64(), Some(5)); assert_eq!( - uri_prefix_group_occurrences(&output, "object", "rsync://example.net/pp/"), + uri_prefix_group_occurrences(&output, "object", "rsync://example.net/"), 2 ); assert_eq!( - uri_prefix_group_occurrences(&output, "reject_uri", "rsync://example.net/pp/"), + uri_prefix_group_occurrences(&output, "reject_uri", "rsync://example.net/"), 1 ); assert_eq!(asn_group_occurrences(&output, "vrp_output", "AS64496"), 1); diff --git a/src/tools/sequence_triage_ccr_cir/sandwich.rs b/src/tools/sequence_triage_ccr_cir/sandwich.rs index f7c796f..d6003b6 100644 --- a/src/tools/sequence_triage_ccr_cir/sandwich.rs +++ b/src/tools/sequence_triage_ccr_cir/sandwich.rs @@ -292,7 +292,7 @@ impl SandwichAnalysis { ) { match record.set_type { "object" | "reject_uri" => { - let prefix = uri_directory_prefix(&record.key); + let prefix = uri_host_prefix(&record.key); let group_key = format!("{}|{}", record.set_type, prefix); let group = self.uri_prefix_groups @@ -348,12 +348,11 @@ fn add_to_group( } } -fn uri_directory_prefix(uri: &str) -> String { +fn uri_host_prefix(uri: &str) -> String { let scheme_end = uri.find("://").map(|index| index + 3).unwrap_or(0); - if let Some(slash_index) = uri.rfind('/') - && slash_index >= scheme_end - { - return uri[..=slash_index].to_string(); + if let Some(path_start) = uri[scheme_end..].find('/') { + let end = scheme_end + path_start + 1; + return uri[..end].to_string(); } uri.to_string() }