feat: Add retry for signal socket connection

This commit is contained in:
sinavir 2024-05-18 20:46:24 +02:00
parent a13272684d
commit a98da9d47c

View file

@ -9,6 +9,8 @@ use irc::client::prelude::*;
use irc::client::ClientStream;
use jsonrpsee::core::client::{Subscription, SubscriptionClientT};
use serde_json::Value;
use tokio::time::sleep;
use core::time::Duration;
use transform::Bridge;
use {log, pretty_env_logger};
@ -46,10 +48,20 @@ async fn main() -> Result<(), String> {
};
let init_signal = async {
log::debug!("Initializing Signal");
let signal_client = (async {
for i in 0..10 {
match jsonrpc::connect_unix(&config.signal.socket).await {
Ok(client) => {
return Ok(client);
}, Err(e) => {
log::info!("failed attempt {} connect to signal-cli socket: {:?}. Retrying", i, e);
},
}
sleep(Duration::from_secs(1)).await;
};
return Err("Trying too many times to open socket");
let signal_client = jsonrpc::connect_unix(config.signal.socket)
.await
.map_err(|e| format!("failed to connect to signal socket: {e}"))?;
}).await.map_err(|e| format!("failed to connect to signal socket: {e}"))?;
let signal_stream = signal_client
.subscribe_receive(None)
.await