From 8826f6df8f19bb3d012c557c6553029d9b1b9e3d Mon Sep 17 00:00:00 2001 From: Gusted Date: Sat, 22 Oct 2022 21:28:58 +0200 Subject: [PATCH 1/3] Fix compiling - I made some mistakes while checking my two previous PRs(Seems like I don't understand Rust that great after all). - Do the url encoding only on the password part, not only the whole URL. - Fix `temporary value dropped while borrowed` compile error. --- db/db-sqlx-maria/src/lib.rs | 6 ++---- db/db-sqlx-postgres/src/lib.rs | 6 ++---- src/settings.rs | 32 +++++++++++++++++++++++--------- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/db/db-sqlx-maria/src/lib.rs b/db/db-sqlx-maria/src/lib.rs index d62412b3..ed6e8cf5 100644 --- a/db/db-sqlx-maria/src/lib.rs +++ b/db/db-sqlx-maria/src/lib.rs @@ -68,10 +68,8 @@ impl Connect for ConnectionOptions { async fn connect(self) -> DBResult { let pool = match self { Self::Fresh(fresh) => { - let mut connect_options = sqlx::mysql::MySqlConnectOptions::from_str( - &urlencoding::encode(&fresh.url), - ) - .unwrap(); + let mut connect_options = + sqlx::mysql::MySqlConnectOptions::from_str(&fresh.url).unwrap(); if fresh.disable_logging { connect_options.disable_statement_logging(); } diff --git a/db/db-sqlx-postgres/src/lib.rs b/db/db-sqlx-postgres/src/lib.rs index 667ad55a..752026ca 100644 --- a/db/db-sqlx-postgres/src/lib.rs +++ b/db/db-sqlx-postgres/src/lib.rs @@ -68,10 +68,8 @@ impl Connect for ConnectionOptions { async fn connect(self) -> DBResult { let pool = match self { Self::Fresh(fresh) => { - let mut connect_options = sqlx::postgres::PgConnectOptions::from_str( - &urlencoding::encode(&fresh.url), - ) - .unwrap(); + let mut connect_options = + sqlx::postgres::PgConnectOptions::from_str(&fresh.url).unwrap(); if fresh.disable_logging { connect_options.disable_statement_logging(); } diff --git a/src/settings.rs b/src/settings.rs index 80fa73ae..6d2839f3 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -152,15 +152,26 @@ impl Settings { .expect("unable to set capatcha.enable_stats default config"); if let Ok(path) = env::var("MCAPTCHA_CONFIG") { - let absolute_path = - Path::new(&path).canonicalize().unwrap().to_str().unwrap(); - log::info!("{}", format!("Loading config file from {}", absolute_path)); - s.merge(File::with_name(absolute_path))?; + let absolute_path = Path::new(&path).canonicalize().unwrap(); + log::info!( + "{}", + format!( + "Loading config file from {}", + absolute_path.to_str().unwrap() + ) + ); + s.merge(File::with_name(absolute_path.to_str().unwrap()))?; } else if Path::new(CURRENT_DIR).exists() { - let absolute_path = fs::canonicalize(CURRENT_DIR).unwrap().to_str().unwrap(); - log::info!("{}", format!("Loading config file from {}", absolute_path)); + let absolute_path = fs::canonicalize(CURRENT_DIR).unwrap(); + log::info!( + "{}", + format!( + "Loading config file from {}", + absolute_path.to_str().unwrap() + ) + ); // merging default config from file - s.merge(File::with_name(absolute_path))?; + s.merge(File::with_name(absolute_path.to_str().unwrap()))?; } else if Path::new(ETC).exists() { log::info!("{}", format!("Loading config file from {}", ETC)); s.merge(File::with_name(ETC))?; @@ -220,8 +231,11 @@ fn set_database_url(s: &mut Config) { r"postgres://{}:{}@{}:{}/{}", s.get::("database.username") .expect("Couldn't access database username"), - s.get::("database.password") - .expect("Couldn't access database password"), + urlencoding::encode( + s.get::("database.password") + .expect("Couldn't access database password") + .as_str() + ), s.get::("database.hostname") .expect("Couldn't access database hostname"), s.get::("database.port") From a4f9c92b32559d1f31dc660c71c6d89cdca9a961 Mon Sep 17 00:00:00 2001 From: Gusted Date: Sat, 22 Oct 2022 21:53:18 +0200 Subject: [PATCH 2/3] Update cargo --- Cargo.lock | 4 ++-- db/db-sqlx-maria/Cargo.toml | 1 - db/db-sqlx-postgres/Cargo.toml | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9cfcd6ac..41011720 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3386,9 +3386,9 @@ dependencies = [ [[package]] name = "urlencoding" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b90931029ab9b034b300b797048cf23723400aa757e8a2bfb9d748102f9821" +checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" [[package]] name = "utf-8" diff --git a/db/db-sqlx-maria/Cargo.toml b/db/db-sqlx-maria/Cargo.toml index 2c5d82e1..7f419404 100644 --- a/db/db-sqlx-maria/Cargo.toml +++ b/db/db-sqlx-maria/Cargo.toml @@ -13,7 +13,6 @@ async-trait = "0.1.51" db-core = {path = "../db-core"} futures = "0.3.15" sqlx = { version = "0.5.13", features = [ "runtime-actix-rustls", "mysql", "time", "offline" ] } -urlencoding = "2.1.2" [dev-dependencies] actix-rt = "2" diff --git a/db/db-sqlx-postgres/Cargo.toml b/db/db-sqlx-postgres/Cargo.toml index 9066b57a..027b7a0e 100644 --- a/db/db-sqlx-postgres/Cargo.toml +++ b/db/db-sqlx-postgres/Cargo.toml @@ -13,7 +13,6 @@ async-trait = "0.1.51" db-core = {path = "../db-core"} futures = "0.3.15" sqlx = { version = "0.5.13", features = [ "runtime-actix-rustls", "postgres", "time", "offline" ] } -urlencoding = "2.1.2" [dev-dependencies] actix-rt = "2" From 8dc690ca01fd8da98346871c7877e44729b4ce95 Mon Sep 17 00:00:00 2001 From: Gusted Date: Mon, 24 Oct 2022 16:22:10 +0200 Subject: [PATCH 3/3] Remove redunant format --- src/settings.rs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/settings.rs b/src/settings.rs index 6d2839f3..09fab199 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -154,21 +154,15 @@ impl Settings { if let Ok(path) = env::var("MCAPTCHA_CONFIG") { let absolute_path = Path::new(&path).canonicalize().unwrap(); log::info!( - "{}", - format!( - "Loading config file from {}", - absolute_path.to_str().unwrap() - ) + "Loading config file from {}", + absolute_path.to_str().unwrap() ); s.merge(File::with_name(absolute_path.to_str().unwrap()))?; } else if Path::new(CURRENT_DIR).exists() { let absolute_path = fs::canonicalize(CURRENT_DIR).unwrap(); log::info!( - "{}", - format!( - "Loading config file from {}", - absolute_path.to_str().unwrap() - ) + "Loading config file from {}", + absolute_path.to_str().unwrap() ); // merging default config from file s.merge(File::with_name(absolute_path.to_str().unwrap()))?;