Skip to content

Commit 402022d

Browse files
lily-mosquitoesabonander
authored andcommitted
fix: use correct names for sslmode options
The names for the SSL mode options were incorrect, added test for making sure the built url can be parsed to ensure internal consistency at least. Also changed "ssl-mode" to "sslmode" as it seems more standard and sqlx can parse both.
1 parent 2618439 commit 402022d

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

sqlx-postgres/src/options/parse.rs

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,28 +133,28 @@ impl PgConnectOptions {
133133
}
134134

135135
let ssl_mode = match self.ssl_mode {
136-
PgSslMode::Allow => "ALLOW",
137-
PgSslMode::Disable => "DISABLED",
138-
PgSslMode::Prefer => "PREFERRED",
139-
PgSslMode::Require => "REQUIRED",
140-
PgSslMode::VerifyCa => "VERIFY_CA",
141-
PgSslMode::VerifyFull => "VERIFY_FULL",
136+
PgSslMode::Allow => "allow",
137+
PgSslMode::Disable => "disable",
138+
PgSslMode::Prefer => "prefer",
139+
PgSslMode::Require => "require",
140+
PgSslMode::VerifyCa => "verify-ca",
141+
PgSslMode::VerifyFull => "verify-full",
142142
};
143-
url.query_pairs_mut().append_pair("ssl-mode", ssl_mode);
143+
url.query_pairs_mut().append_pair("sslmode", ssl_mode);
144144

145145
if let Some(ssl_root_cert) = &self.ssl_root_cert {
146146
url.query_pairs_mut()
147-
.append_pair("ssl-root-cert", &ssl_root_cert.to_string());
147+
.append_pair("sslrootcert", &ssl_root_cert.to_string());
148148
}
149149

150150
if let Some(ssl_client_cert) = &self.ssl_client_cert {
151151
url.query_pairs_mut()
152-
.append_pair("ssl-cert", &ssl_client_cert.to_string());
152+
.append_pair("sslcert", &ssl_client_cert.to_string());
153153
}
154154

155155
if let Some(ssl_client_key) = &self.ssl_client_key {
156156
url.query_pairs_mut()
157-
.append_pair("ssl-key", &ssl_client_key.to_string());
157+
.append_pair("sslkey", &ssl_client_key.to_string());
158158
}
159159

160160
url.query_pairs_mut().append_pair(
@@ -306,7 +306,7 @@ fn it_returns_the_parsed_url_when_socket() {
306306

307307
let mut expected_url = Url::parse(url).unwrap();
308308
// PgConnectOptions defaults
309-
let query_string = "ssl-mode=PREFERRED&statement-cache-capacity=100";
309+
let query_string = "sslmode=prefer&statement-cache-capacity=100";
310310
let port = 5432;
311311
expected_url.set_query(Some(query_string));
312312
let _ = expected_url.set_port(Some(port));
@@ -321,8 +321,18 @@ fn it_returns_the_parsed_url_when_host() {
321321

322322
let mut expected_url = Url::parse(url).unwrap();
323323
// PgConnectOptions defaults
324-
let query_string = "ssl-mode=PREFERRED&statement-cache-capacity=100";
324+
let query_string = "sslmode=prefer&statement-cache-capacity=100";
325325
expected_url.set_query(Some(query_string));
326326

327327
assert_eq!(expected_url, opts.build_url());
328328
}
329+
330+
#[test]
331+
fn built_url_can_be_parsed() {
332+
let url = "postgres://username:p@ssw0rd@hostname:5432/database";
333+
let opts = PgConnectOptions::from_str(url).unwrap();
334+
335+
let parsed = PgConnectOptions::from_str(&opts.build_url().to_string());
336+
337+
assert!(parsed.is_ok());
338+
}

0 commit comments

Comments
 (0)