59
59
Some ( Host :: Unix ( _) ) =>None ,
60
60
None =>None ,
61
61
} ;
62
- let tls = hostname
63
- . as_ref ( )
64
- . map ( |s| tls. make_tls_connect ( s) )
65
- . transpose ( )
62
+ let tls = tls
63
+ . make_tls_connect ( hostname. as_deref ( ) . unwrap_or ( "" ) )
66
64
. map_err ( |e|Error :: tls ( e. into ( ) ) ) ?;
67
65
68
66
// Try to use the value of hostaddr to establish the TCP connection,
@@ -92,7 +90,7 @@ async fn connect_once<T>(
92
90
host : Host ,
93
91
hostname : Option < String > ,
94
92
port : u16 ,
95
- tls : Option < T > ,
93
+ tls : T ,
96
94
config : & Config ,
97
95
) ->Result < ( Client , Connection < Socket , T :: Stream > ) , Error >
98
96
where
@@ -110,7 +108,8 @@ where
110
108
} ,
111
109
)
112
110
. await ?;
113
- let ( mut client, mut connection) =connect_raw ( socket, tls, config) . await ?;
111
+ let has_hostname = hostname. is_some ( ) ;
112
+ let ( mut client, mut connection) =connect_raw ( socket, tls, has_hostname, config) . await ?;
114
113
115
114
if let TargetSessionAttrs :: ReadWrite = config. target_session_attrs {
116
115
let rows = client. simple_query_raw ( "SHOW transaction_read_only" ) ;