From 8826f6df8f19bb3d012c557c6553029d9b1b9e3d Mon Sep 17 00:00:00 2001 From: Gusted Date: Sat, 22 Oct 2022 21:28:58 +0200 Subject: [PATCH] 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")