We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see ourdocumentation.
There was an error while loading.Please reload this page.
1 parent6a6fdb9 commit9441ce1Copy full SHA for 9441ce1
postgres-native-tls/src/lib.rs
@@ -53,6 +53,7 @@
53
//! ```
54
#![warn(rust_2018_idioms, clippy::all, missing_docs)]
55
56
+use native_tls::TlsConnectorBuilder;
57
use std::future::Future;
58
use std::io;
59
use std::pin::Pin;
@@ -180,3 +181,10 @@ where
180
181
}
182
183
184
+
185
+/// Set ALPN for `TlsConnectorBuilder`
186
+///
187
+/// This is required when using `sslnegotiation=direct`
188
+pubfnset_postgresql_alpn(builder:&mutTlsConnectorBuilder) ->&mutTlsConnectorBuilder{
189
+ builder.request_alpns(&["postgresql"])
190
+}
postgres-native-tls/src/test.rs
@@ -5,7 +5,7 @@ use tokio_postgres::tls::TlsConnect;
5
6
#[cfg(feature ="runtime")]
7
usecrate::MakeTlsConnector;
8
-usecrate::TlsConnector;
+usecrate::{set_postgresql_alpn,TlsConnector};
9
10
asyncfnsmoke_test<T>(s:&str,tls:T)
11
where
@@ -44,13 +44,11 @@ async fn require() {
44
45
#[tokio::test]
46
asyncfndirect(){
47
-let connector = native_tls::TlsConnector::builder()
48
-.add_root_certificate(
49
-Certificate::from_pem(include_bytes!("../../test/server.crt")).unwrap(),
50
-)
51
-.request_alpns(&["postgresql"])
52
-.build()
-.unwrap();
+let connector =set_postgresql_alpn(native_tls::TlsConnector::builder().add_root_certificate(
+Certificate::from_pem(include_bytes!("../../test/server.crt")).unwrap(),
+))
+.build()
+.unwrap();
smoke_test(
"user=ssl_user dbname=postgres sslmode=require sslnegotiation=direct",
TlsConnector::new(connector,"localhost"),
postgres-openssl/src/lib.rs
@@ -53,7 +53,7 @@ use openssl::hash::MessageDigest;
use openssl::nid::Nid;
use openssl::ssl::SslConnector;
-use openssl::ssl::{self,ConnectConfiguration,SslRef};
+use openssl::ssl::{self,ConnectConfiguration,SslConnectorBuilder,SslRef};
use openssl::x509::X509VerifyResult;
use std::error::Error;
use std::fmt::{self,Debug};
@@ -250,3 +250,10 @@ fn tls_server_end_point(ssl: &SslRef) -> Option<Vec<u8>> {
250
};
251
cert.digest(md).ok().map(|b| b.to_vec())
252
253
254
+/// Set ALPN for `SslConnectorBuilder`
255
256
257
+pubfnset_postgresql_alpn(builder:&mutSslConnectorBuilder) ->Result<(),ErrorStack>{
258
+ builder.set_alpn_protos(b"\x0apostgresql")
259
postgres-openssl/src/test.rs
@@ -41,7 +41,7 @@ async fn require() {
41
42
letmut builder =SslConnector::builder(SslMethod::tls()).unwrap();
43
builder.set_ca_file("../test/server.crt").unwrap();
-builder.set_alpn_protos(b"\x0apostgresql").unwrap();
+set_postgresql_alpn(&mut builder).unwrap();
let ctx = builder.build();