summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-02-26 14:36:17 +0100
committerDavid Lönnhager <david.l@mullvad.net>2025-03-06 00:09:18 +0100
commitbacc30a30be8bc3953f8d358d9545e302c5a0df6 (patch)
tree177ebdfc7769db8865c4130c4d3ef7a5f350b706
parent773a9d64657f8a3b894e023923db5db48c4a0930 (diff)
downloadmullvadvpn-bacc30a30be8bc3953f8d358d9545e302c5a0df6.tar.xz
mullvadvpn-bacc30a30be8bc3953f8d358d9545e302c5a0df6.zip
Fix base URL parsing
-rw-r--r--mullvad-update/meta/src/artifacts.rs37
-rw-r--r--mullvad-update/meta/src/main.rs2
-rw-r--r--mullvad-update/meta/src/platform.rs2
3 files changed, 32 insertions, 9 deletions
diff --git a/mullvad-update/meta/src/artifacts.rs b/mullvad-update/meta/src/artifacts.rs
index 968c86416e..c945579dcd 100644
--- a/mullvad-update/meta/src/artifacts.rs
+++ b/mullvad-update/meta/src/artifacts.rs
@@ -44,13 +44,7 @@ pub async fn generate_installer_details(
.file_name()
.and_then(|f| f.to_str())
.context("Unexpected filename")?;
- let urls = base_urls
- .iter()
- .map(|base_url| {
- let base_url = base_url.split('/').next().unwrap_or(base_url);
- format!("{base_url}/{}", filename)
- })
- .collect();
+ let urls = derive_urls(base_urls, filename);
Ok(format::Installer {
architecture,
@@ -59,3 +53,32 @@ pub async fn generate_installer_details(
sha256: hex::encode(checksum),
})
}
+
+fn derive_urls(base_urls: &[String], filename: &str) -> Vec<String> {
+ base_urls
+ .iter()
+ .map(|base_url| {
+ let url = base_url.strip_suffix("/").unwrap_or(base_url);
+ format!("{url}/{}", filename)
+ })
+ .collect()
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+
+ /// Test derivation of URLs from base URLs
+ #[tokio::test]
+ pub async fn test_urls() {
+ let base_urls = vec![
+ "https://fake1.fake/".to_string(),
+ "https://fake2.fake".to_string(),
+ ];
+
+ assert_eq!(
+ &derive_urls(&base_urls, "test.exe"),
+ &["https://fake1.fake/test.exe", "https://fake2.fake/test.exe",]
+ );
+ }
+}
diff --git a/mullvad-update/meta/src/main.rs b/mullvad-update/meta/src/main.rs
index 5d5eee5215..58bb3c5ebd 100644
--- a/mullvad-update/meta/src/main.rs
+++ b/mullvad-update/meta/src/main.rs
@@ -119,7 +119,7 @@ async fn main() -> anyhow::Result<()> {
match opt {
Opt::GenerateKey => {
- println!("{}", key::SecretKey::generate().to_string());
+ println!("{}", key::SecretKey::generate());
Ok(())
}
Opt::CreateMetadataFile { platforms } => {
diff --git a/mullvad-update/meta/src/platform.rs b/mullvad-update/meta/src/platform.rs
index 0dd6c89257..ccabd4cccf 100644
--- a/mullvad-update/meta/src/platform.rs
+++ b/mullvad-update/meta/src/platform.rs
@@ -397,7 +397,7 @@ impl Platform {
release.rollout = new_rollout;
}
- print_release_info(&release);
+ print_release_info(release);
let json = serde_json::to_string_pretty(&work_response)
.context("Failed to serialize updated metadata")?;