Add further clarification TODO in finish_force_close_channel
[rust-lightning] / src / ln / channelmanager.rs
index e365b048a205765b49c4ec8a56851ca25fa31f8b..8abaf14603df93b01b19098649281ebcbd042a3c 100644 (file)
@@ -447,6 +447,8 @@ impl ChannelManager {
                //TODO: We need to handle monitoring of pending offered HTLCs which just hit the chain and
                //may be claimed, resulting in us claiming the inbound HTLCs (and back-failing after
                //timeouts are hit and our claims confirm).
+               //TODO: In any case, we need to make sure we remove any pending htlc tracking (via
+               //fail_backwards or claim_funds) eventually for all HTLCs that were in the channel
        }
 
        /// Force closes a channel, immediately broadcasting the latest local commitment transaction to
@@ -1147,7 +1149,12 @@ impl ChannelManager {
                                        if !add_htlc_msgs.is_empty() {
                                                let (commitment_msg, monitor) = match forward_chan.send_commitment() {
                                                        Ok(res) => res,
-                                                       Err(_e) => {
+                                                       Err(e) => {
+                                                               if let &Some(msgs::ErrorAction::DisconnectPeer{msg: Some(ref _err_msg)}) = &e.action {
+                                                               } else if let &Some(msgs::ErrorAction::SendErrorMessage{msg: ref _err_msg}) = &e.action {
+                                                               } else {
+                                                                       panic!("Stated return value requirements in send_commitment() were not met");
+                                                               }
                                                                //TODO: Handle...this is bad!
                                                                continue;
                                                        },
@@ -3355,9 +3362,9 @@ mod tests {
                                        chain_hash: genesis_block(Network::Testnet).header.bitcoin_hash(),
                                        short_channel_id: as_chan.get_short_channel_id().unwrap(),
                                        node_id_1: if were_node_one { as_network_key } else { bs_network_key },
-                                       node_id_2: if !were_node_one { bs_network_key } else { as_network_key },
+                                       node_id_2: if were_node_one { bs_network_key } else { as_network_key },
                                        bitcoin_key_1: if were_node_one { as_bitcoin_key } else { bs_bitcoin_key },
-                                       bitcoin_key_2: if !were_node_one { bs_bitcoin_key } else { as_bitcoin_key },
+                                       bitcoin_key_2: if were_node_one { bs_bitcoin_key } else { as_bitcoin_key },
                                        excess_data: Vec::new(),
                                };
                        }
@@ -3372,9 +3379,9 @@ mod tests {
                                let bs_node_sig = secp_ctx.sign(&msghash, &nodes[1].node.our_network_key);
                                chan_announcement = msgs::ChannelAnnouncement {
                                        node_signature_1 : if were_node_one { as_node_sig } else { bs_node_sig},
-                                       node_signature_2 : if !were_node_one { bs_node_sig } else { as_node_sig},
+                                       node_signature_2 : if were_node_one { bs_node_sig } else { as_node_sig},
                                        bitcoin_signature_1: if were_node_one { as_bitcoin_sig } else { bs_bitcoin_sig },
-                                       bitcoin_signature_2 : if !were_node_one { bs_bitcoin_sig } else { as_bitcoin_sig },
+                                       bitcoin_signature_2 : if were_node_one { bs_bitcoin_sig } else { as_bitcoin_sig },
                                        contents: $unsigned_msg
                                }
                        }