1
0
Fork 0
mirror of https://github.com/mCaptcha/mCaptcha.git synced 2025-05-06 15:12:49 +03:00

Encode connection URL to database

- If you have a database password that contains characters like `#` or `*`, sqlx
will error about a InvalidPort, this is due to not encoding the url.
[See issue on sqlx](https://github.com/launchbadge/sqlx/issues/1624).
- Removed useless statements.
This commit is contained in:
Gusted 2022-10-16 23:37:24 +02:00
parent 97abca2520
commit 021f2fe5b4
No known key found for this signature in database
GPG key ID: FD821B732837125F
4 changed files with 10 additions and 10 deletions
db/db-sqlx-postgres

View file

@ -13,6 +13,7 @@ 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"

View file

@ -68,14 +68,13 @@ impl Connect for ConnectionOptions {
async fn connect(self) -> DBResult<Self::Pool> {
let pool = match self {
Self::Fresh(fresh) => {
let mut connect_options =
sqlx::postgres::PgConnectOptions::from_str(&fresh.url).unwrap();
let mut connect_options = sqlx::postgres::PgConnectOptions::from_str(
&urlencoding::encode(&fresh.url),
)
.unwrap();
if fresh.disable_logging {
connect_options.disable_statement_logging();
}
sqlx::postgres::PgConnectOptions::from_str(&fresh.url)
.unwrap()
.disable_statement_logging();
fresh
.pool_options
.connect_with(connect_options)