Line data Source code
1 : use tokio::net::TcpStream;
2 :
3 : use crate::client::SocketConfig;
4 : use crate::config::{Host, SslMode};
5 : use crate::tls::MakeTlsConnect;
6 : use crate::{Error, cancel_query_raw, connect_socket};
7 :
8 0 : pub(crate) async fn cancel_query<T>(
9 0 : config: SocketConfig,
10 0 : ssl_mode: SslMode,
11 0 : tls: T,
12 0 : process_id: i32,
13 0 : secret_key: i32,
14 0 : ) -> Result<(), Error>
15 0 : where
16 0 : T: MakeTlsConnect<TcpStream>,
17 0 : {
18 0 : let hostname = match &config.host {
19 0 : Host::Tcp(host) => &**host,
20 : };
21 0 : let tls = tls
22 0 : .make_tls_connect(hostname)
23 0 : .map_err(|e| Error::tls(e.into()))?;
24 :
25 0 : let socket = connect_socket::connect_socket(
26 0 : config.host_addr,
27 0 : &config.host,
28 0 : config.port,
29 0 : config.connect_timeout,
30 0 : )
31 0 : .await?;
32 :
33 0 : cancel_query_raw::cancel_query_raw(socket, ssl_mode, tls, process_id, secret_key).await
34 0 : }
|