feat: Add retry for signal socket connection
This commit is contained in:
parent
a13272684d
commit
a98da9d47c
1 changed files with 15 additions and 3 deletions
18
src/main.rs
18
src/main.rs
|
@ -9,6 +9,8 @@ use irc::client::prelude::*;
|
||||||
use irc::client::ClientStream;
|
use irc::client::ClientStream;
|
||||||
use jsonrpsee::core::client::{Subscription, SubscriptionClientT};
|
use jsonrpsee::core::client::{Subscription, SubscriptionClientT};
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
use tokio::time::sleep;
|
||||||
|
use core::time::Duration;
|
||||||
use transform::Bridge;
|
use transform::Bridge;
|
||||||
use {log, pretty_env_logger};
|
use {log, pretty_env_logger};
|
||||||
|
|
||||||
|
@ -46,10 +48,20 @@ async fn main() -> Result<(), String> {
|
||||||
};
|
};
|
||||||
let init_signal = async {
|
let init_signal = async {
|
||||||
log::debug!("Initializing Signal");
|
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
|
let signal_stream = signal_client
|
||||||
.subscribe_receive(None)
|
.subscribe_receive(None)
|
||||||
.await
|
.await
|
||||||
|
|
Loading…
Reference in a new issue