diff --git a/Cargo.lock b/Cargo.lock index e7090aa..4ff070c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -705,9 +705,9 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" [[package]] name = "cc" -version = "1.0.71" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" +checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" dependencies = [ "jobserver", ] @@ -2339,9 +2339,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.106" +version = "0.2.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60553f9a9e039a333b4e9b20573b9e9b9c0bb3a11e201ccc48ef4283456d673" +checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219" [[package]] name = "libloading" @@ -3008,9 +3008,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" [[package]] name = "pbkdf2" @@ -3150,6 +3150,19 @@ dependencies = [ "syn 1.0.81", ] +[[package]] +name = "postgres-native-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d442770e2b1e244bb5eb03b31c79b65bb2568f413b899eaba850fa945a65954" +dependencies = [ + "futures 0.3.17", + "native-tls", + "tokio", + "tokio-native-tls", + "tokio-postgres", +] + [[package]] name = "postgres-protocol" version = "0.6.2" @@ -4042,9 +4055,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.68" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" +checksum = "e277c495ac6cd1a01a58d0a0c574568b4d1ddf14f59965c6a58b8d96400b54f3" dependencies = [ "itoa", "ryu", @@ -4300,6 +4313,8 @@ dependencies = [ "jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core-client", "log 0.4.14", + "native-tls", + "postgres-native-tls", "postgres-types", "postgres_query", "prost 0.9.0", @@ -5616,9 +5631,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" +checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" dependencies = [ "tinyvec_macros", ] @@ -6521,18 +6536,18 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970" +checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" +checksum = "65f1a51723ec88c66d5d1fe80c841f17f63587d6691901d66be9bec6c3b51f73" dependencies = [ "proc-macro2 1.0.32", "quote 1.0.10", diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 4f8234f..b4599cb 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -18,8 +18,10 @@ solana-sdk = "=1.8.2" tokio = { version = "1", features = ["full"] } tokio-stream = "0.1" -tokio-postgres = "0.7.4" +tokio-postgres = "0.7" postgres-types = { version = "0.2", features = ["array-impls", "derive"] } +postgres-native-tls = "0.5" +native-tls = "0.2" # postgres_query hasn't updated its crate in a while postgres_query = { git = "https://github.com/nolanderc/rust-postgres-query", rev = "b4422051c8a31fbba4a35f88004c1cefb1878dd5" } diff --git a/lib/src/postgres_target.rs b/lib/src/postgres_target.rs index 48ec9b6..fa24fbe 100644 --- a/lib/src/postgres_target.rs +++ b/lib/src/postgres_target.rs @@ -1,5 +1,7 @@ use anyhow::Context; use log::*; +use native_tls::TlsConnector; +use postgres_native_tls::MakeTlsConnector; use postgres_query::{query, query_dyn}; use std::{collections::HashMap, time::Duration}; @@ -12,9 +14,10 @@ async fn postgres_connection( ) -> anyhow::Result>> { let (tx, rx) = async_channel::unbounded(); + let tls = MakeTlsConnector::new(TlsConnector::new()?); + let config = config.clone(); - let mut initial = - Some(tokio_postgres::connect(&config.connection_string, tokio_postgres::NoTls).await?); + let mut initial = Some(tokio_postgres::connect(&config.connection_string, tls.clone()).await?); let mut metric_retries = metric_retries; let mut metric_live = metric_live; tokio::spawn(async move { @@ -23,8 +26,7 @@ async fn postgres_connection( Some(v) => v, None => { let result = - tokio_postgres::connect(&config.connection_string, tokio_postgres::NoTls) - .await; + tokio_postgres::connect(&config.connection_string, tls.clone()).await; match result { Ok(v) => v, Err(err) => {