Skip to content

Commit 034ed98

Browse files
committed
Require SSL on Heroku
1 parent 39c7a18 commit 034ed98

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/db.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use r2d2_postgres::TlsMode;
1818
use r2d2_postgres::postgres;
1919
use r2d2_postgres;
2020
use r2d2_diesel::{self, ConnectionManager};
21+
use url::Url;
2122

2223
use app::{App, RequestApp};
2324
use util::{CargoResult, LazyCell, internal};
@@ -103,7 +104,11 @@ pub fn pool(url: &str, config: r2d2::Config<postgres::Connection, r2d2_postgres:
103104
}
104105

105106
pub fn diesel_pool(url: &str, config: r2d2::Config<PgConnection, r2d2_diesel::Error>) -> DieselPool {
106-
let manager = ConnectionManager::new(url);
107+
let mut url = Url::parse(url).expect("Invalid database URL");
108+
if env::var("HEROKU").is_ok() && !url.query_pairs().any(|(k, _)| k == "sslmode") {
109+
url.query_pairs_mut().append_pair("sslmode", "require");
110+
}
111+
let manager = ConnectionManager::new(url.into_string());
107112
r2d2::Pool::new(config, manager).unwrap()
108113
}
109114

0 commit comments

Comments
 (0)