X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fpersist.rs;h=cfd8f5d89fc7157cd5308d7de9e56f48f1ac7b5e;hb=90c976394c3bb5726dbb6950256afcbc33ddf4a7;hp=d04c3430bcc90de0ec7211c4ff12be4a8e2d6bd6;hpb=8886d1dc76ce7bd815634c738d114e7d3572c4fe;p=rust-lightning diff --git a/lightning/src/util/persist.rs b/lightning/src/util/persist.rs index d04c3430..cfd8f5d8 100644 --- a/lightning/src/util/persist.rs +++ b/lightning/src/util/persist.rs @@ -69,18 +69,22 @@ impl<'a, A: KVStorePersister, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Der impl Persist for K { // TODO: We really need a way for the persister to inform the user that its time to crash/shut // down once these start returning failure. - // A PermanentFailure implies we need to shut down since we're force-closing channels without - // even broadcasting! + // A PermanentFailure implies we should probably just shut down the node since we're + // force-closing channels without even broadcasting! - fn persist_new_channel(&self, funding_txo: OutPoint, monitor: &ChannelMonitor, _update_id: MonitorUpdateId) -> Result<(), chain::ChannelMonitorUpdateErr> { + fn persist_new_channel(&self, funding_txo: OutPoint, monitor: &ChannelMonitor, _update_id: MonitorUpdateId) -> chain::ChannelMonitorUpdateStatus { let key = format!("monitors/{}_{}", funding_txo.txid.to_hex(), funding_txo.index); - self.persist(&key, monitor) - .map_err(|_| chain::ChannelMonitorUpdateErr::PermanentFailure) + match self.persist(&key, monitor) { + Ok(()) => chain::ChannelMonitorUpdateStatus::Completed, + Err(_) => chain::ChannelMonitorUpdateStatus::PermanentFailure, + } } - fn update_persisted_channel(&self, funding_txo: OutPoint, _update: &Option, monitor: &ChannelMonitor, _update_id: MonitorUpdateId) -> Result<(), chain::ChannelMonitorUpdateErr> { + fn update_persisted_channel(&self, funding_txo: OutPoint, _update: &Option, monitor: &ChannelMonitor, _update_id: MonitorUpdateId) -> chain::ChannelMonitorUpdateStatus { let key = format!("monitors/{}_{}", funding_txo.txid.to_hex(), funding_txo.index); - self.persist(&key, monitor) - .map_err(|_| chain::ChannelMonitorUpdateErr::PermanentFailure) + match self.persist(&key, monitor) { + Ok(()) => chain::ChannelMonitorUpdateStatus::Completed, + Err(_) => chain::ChannelMonitorUpdateStatus::PermanentFailure, + } } }