Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9441ce1

Browse files
committed
feat: provide built-in functions for setting ALPN
1 parent6a6fdb9 commit9441ce1

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

‎postgres-native-tls/src/lib.rs‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
//! ```
5454
#![warn(rust_2018_idioms, clippy::all, missing_docs)]
5555

56+
use native_tls::TlsConnectorBuilder;
5657
use std::future::Future;
5758
use std::io;
5859
use std::pin::Pin;
@@ -180,3 +181,10 @@ where
180181
}
181182
}
182183
}
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‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use tokio_postgres::tls::TlsConnect;
55

66
#[cfg(feature ="runtime")]
77
usecrate::MakeTlsConnector;
8-
usecrate::TlsConnector;
8+
usecrate::{set_postgresql_alpn,TlsConnector};
99

1010
asyncfnsmoke_test<T>(s:&str,tls:T)
1111
where
@@ -44,13 +44,11 @@ async fn require() {
4444

4545
#[tokio::test]
4646
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()
53-
.unwrap();
47+
let connector =set_postgresql_alpn(native_tls::TlsConnector::builder().add_root_certificate(
48+
Certificate::from_pem(include_bytes!("../../test/server.crt")).unwrap(),
49+
))
50+
.build()
51+
.unwrap();
5452
smoke_test(
5553
"user=ssl_user dbname=postgres sslmode=require sslnegotiation=direct",
5654
TlsConnector::new(connector,"localhost"),

‎postgres-openssl/src/lib.rs‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ use openssl::hash::MessageDigest;
5353
use openssl::nid::Nid;
5454
#[cfg(feature ="runtime")]
5555
use openssl::ssl::SslConnector;
56-
use openssl::ssl::{self,ConnectConfiguration,SslRef};
56+
use openssl::ssl::{self,ConnectConfiguration,SslConnectorBuilder,SslRef};
5757
use openssl::x509::X509VerifyResult;
5858
use std::error::Error;
5959
use std::fmt::{self,Debug};
@@ -250,3 +250,10 @@ fn tls_server_end_point(ssl: &SslRef) -> Option<Vec<u8>> {
250250
};
251251
cert.digest(md).ok().map(|b| b.to_vec())
252252
}
253+
254+
/// Set ALPN for `SslConnectorBuilder`
255+
///
256+
/// This is required when using `sslnegotiation=direct`
257+
pubfnset_postgresql_alpn(builder:&mutSslConnectorBuilder) ->Result<(),ErrorStack>{
258+
builder.set_alpn_protos(b"\x0apostgresql")
259+
}

‎postgres-openssl/src/test.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ async fn require() {
4141
asyncfndirect(){
4242
letmut builder =SslConnector::builder(SslMethod::tls()).unwrap();
4343
builder.set_ca_file("../test/server.crt").unwrap();
44-
builder.set_alpn_protos(b"\x0apostgresql").unwrap();
44+
set_postgresql_alpn(&mut builder).unwrap();
4545
let ctx = builder.build();
4646
smoke_test(
4747
"user=ssl_user dbname=postgres sslmode=require sslnegotiation=direct",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp