X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fchain%2Fchainmonitor.rs;h=f1ce0f79ae9cd99860283ec72c00df49430c87a3;hb=10580f55aa64a94dac47a0a90756b3499a742e39;hp=2de5540059c38e630919a3db76bb3215b6a5399f;hpb=79541b11e8b6e62de0fc613f416e30bf1de5f3d9;p=rust-lightning diff --git a/lightning/src/chain/chainmonitor.rs b/lightning/src/chain/chainmonitor.rs index 2de55400..f1ce0f79 100644 --- a/lightning/src/chain/chainmonitor.rs +++ b/lightning/src/chain/chainmonitor.rs @@ -372,9 +372,12 @@ where C::Target: chain::Filter, return Err(ChannelMonitorUpdateErr::PermanentFailure)}, hash_map::Entry::Vacant(e) => e, }; - if let Err(e) = self.persister.persist_new_channel(funding_outpoint, &monitor) { - log_error!(self.logger, "Failed to persist new channel data"); - return Err(e); + let persist_res = self.persister.persist_new_channel(funding_outpoint, &monitor); + if persist_res.is_err() { + log_error!(self.logger, "Failed to persist new channel data: {:?}", persist_res); + } + if persist_res == Err(ChannelMonitorUpdateErr::PermanentFailure) { + return persist_res; } { let funding_txo = monitor.get_funding_txo(); @@ -385,7 +388,7 @@ where C::Target: chain::Filter, } } entry.insert(MonitorHolder { monitor }); - Ok(()) + persist_res } /// Note that we persist the given `ChannelMonitor` update while holding the