fix: prevent loop when nip05 metadata channel closes

This commit is contained in:
Greg Heartsfield 2023-02-11 13:26:08 -06:00
parent 28b7b83a6e
commit e63d179424
2 changed files with 11 additions and 1 deletions

View File

@ -62,6 +62,8 @@ pub enum Error {
HexError(hex::FromHexError),
#[error("Delegation parse error")]
DelegationParseError,
#[error("Channel closed error")]
ChannelClosed,
#[error("Unknown/Undocumented")]
UnknownError,
}

View File

@ -257,8 +257,15 @@ impl Verifier {
// run a loop, restarting on failure
loop {
let res = self.run_internal().await;
if let Err(e) = res {
match res {
Err(Error::ChannelClosed) => {
// channel was closed, we are shutting down
return;
},
Err(e) => {
info!("error in verifier: {:?}", e);
},
_ => {}
}
}
}
@ -305,6 +312,7 @@ impl Verifier {
}
Err(tokio::sync::broadcast::error::RecvError::Closed) => {
info!("metadata broadcast channel closed");
return Err(Error::ChannelClosed);
}
}
},