1
1
use crate :: runtime:: tokio_runtime;
2
2
use deadpool_postgres:: { Manager , ManagerConfig , Object , Pool , RecyclingMethod } ;
3
- use openssl:: ssl:: { SslConnector , SslMethod } ;
3
+ use openssl:: ssl:: { SslConnector , SslMethod , SslVerifyMode } ;
4
4
use postgres_openssl:: MakeTlsConnector ;
5
5
use pyo3:: { pyclass, pyfunction, pymethods, PyAny } ;
6
6
use std:: { sync:: Arc , vec} ;
@@ -13,7 +13,7 @@ use crate::{
13
13
} ;
14
14
15
15
use super :: {
16
- common_options:: { ConnRecyclingMethod , LoadBalanceHosts , SslMode , TargetSessionAttrs } ,
16
+ common_options:: { self , ConnRecyclingMethod , LoadBalanceHosts , SslMode , TargetSessionAttrs } ,
17
17
connection:: Connection ,
18
18
utils:: build_connection_config,
19
19
} ;
@@ -104,6 +104,15 @@ pub fn connect(
104
104
builder. set_ca_file ( ca_file) ?;
105
105
let tls_connector = MakeTlsConnector :: new ( builder. build ( ) ) ;
106
106
mgr = Manager :: from_config ( pg_config, tls_connector, mgr_config) ;
107
+ } else if let Some ( ssl_mode) = ssl_mode {
108
+ if ssl_mode == common_options:: SslMode :: Require {
109
+ let mut builder = SslConnector :: builder ( SslMethod :: tls ( ) ) ?;
110
+ builder. set_verify ( SslVerifyMode :: NONE ) ;
111
+ let tls_connector = MakeTlsConnector :: new ( builder. build ( ) ) ;
112
+ mgr = Manager :: from_config ( pg_config, tls_connector, mgr_config) ;
113
+ } else {
114
+ mgr = Manager :: from_config ( pg_config, NoTls , mgr_config) ;
115
+ }
107
116
} else {
108
117
mgr = Manager :: from_config ( pg_config, NoTls , mgr_config) ;
109
118
}
0 commit comments