sphinx-key: timeout lss init message reception

close #99
This commit is contained in:
irriden
2023-07-25 21:00:17 +00:00
parent c86bafddd1
commit b0788dc4ef
2 changed files with 8 additions and 5 deletions

View File

@@ -131,13 +131,11 @@ pub fn make_event_loop(
// send the initial HELLO
mqtt_pub(&mut mqtt, client_id, topics::HELLO, &[]);
// FIXME it right to restart here?
let (root_handler, lss_signer) = match lss::init_lss(client_id, &rx, rhb, &mut mqtt) {
Ok(rl) => rl,
Err(e) => {
log::error!("failed to init lss {:?}", e);
unsafe { esp_idf_sys::esp_restart() };
return Err(anyhow::anyhow!("nope"));
}
};
@@ -190,7 +188,11 @@ pub fn make_event_loop(
}
Err(e) => match e {
VlsHandlerError::BadSequence(current, expected) => unsafe {
log::info!("caught a badsequence error, current: {}, expected: {}", current, expected);
log::info!(
"caught a badsequence error, current: {}, expected: {}",
current,
expected
);
log::info!("restarting esp!");
esp_idf_sys::esp_restart();
},

View File

@@ -9,6 +9,7 @@ use lss_connector::{secp256k1::PublicKey, BrokerMutations, LssSigner, Msg as Lss
use sphinx_signer::sphinx_glyph::topics;
use sphinx_signer::{self, RootHandler, RootHandlerBuilder};
use std::sync::mpsc;
use std::time::Duration;
pub use lss_connector::handle_lss_msg;
@@ -19,7 +20,7 @@ pub fn init_lss(
mqtt: &mut EspMqttClient<ConnState<MessageImpl, EspError>>,
) -> Result<(RootHandler, LssSigner)> {
let server_pubkey = loop {
let event = rx.recv()?;
let event = rx.recv_timeout(Duration::from_secs(30))?;
match server_pubkey_from_event(event) {
Ok(spk) => break spk,
Err(e) => log::warn!("failed server_pubkey_from_event {:?}", e),
@@ -32,7 +33,7 @@ pub fn init_lss(
.expect("could not publish LSS response");
let created = loop {
let event = rx.recv()?;
let event = rx.recv_timeout(Duration::from_secs(30))?;
match created_from_event(event) {
Ok(c) => break c,
Err(e) => log::warn!("failed created_from_event {:?}", e),