use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
use lightning::ln::channelmanager::{BestBlock, ChainParameters, ChannelManager, PaymentSendFailure, ChannelManagerReadArgs};
use lightning::ln::features::{ChannelFeatures, InitFeatures, NodeFeatures};
-use lightning::ln::msgs::{CommitmentUpdate, ChannelMessageHandler, DecodeError, ErrorAction, UpdateAddHTLC, Init};
+use lightning::ln::msgs::{CommitmentUpdate, ChannelMessageHandler, DecodeError, UpdateAddHTLC, Init};
use lightning::util::enforcing_trait_impls::{EnforcingSigner, INITIAL_REVOKED_COMMITMENT_NUMBER};
use lightning::util::errors::APIError;
use lightning::util::events;
events::MessageSendEvent::SendFundingLocked { .. } => {
// Can be generated as a reestablish response
},
+ events::MessageSendEvent::SendAnnouncementSignatures { .. } => {
+ // Can be generated as a reestablish response
+ },
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => {
// Can be generated due to a payment forward being rejected due to a
// channel having previously failed a monitor update
events::MessageSendEvent::SendRevokeAndACK { .. } => {},
events::MessageSendEvent::SendChannelReestablish { .. } => {},
events::MessageSendEvent::SendFundingLocked { .. } => {},
+ events::MessageSendEvent::SendAnnouncementSignatures { .. } => {},
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => {},
- events::MessageSendEvent::HandleError { action: ErrorAction::IgnoreError, .. } => {},
_ => panic!("Unhandled message event"),
}
}
events::MessageSendEvent::SendRevokeAndACK { .. } => {},
events::MessageSendEvent::SendChannelReestablish { .. } => {},
events::MessageSendEvent::SendFundingLocked { .. } => {},
+ events::MessageSendEvent::SendAnnouncementSignatures { .. } => {},
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => {},
- events::MessageSendEvent::HandleError { action: ErrorAction::IgnoreError, .. } => {},
_ => panic!("Unhandled message event"),
}
}
for event in events.drain(..) {
let push = match event {
events::MessageSendEvent::UpdateHTLCs { ref node_id, .. } => {
- if *node_id != drop_node_id { true } else { false }
+ if *node_id != drop_node_id { true } else { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
},
events::MessageSendEvent::SendRevokeAndACK { ref node_id, .. } => {
- if *node_id != drop_node_id { true } else { false }
+ if *node_id != drop_node_id { true } else { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
},
events::MessageSendEvent::SendChannelReestablish { ref node_id, .. } => {
- if *node_id != drop_node_id { true } else { false }
+ if *node_id != drop_node_id { true } else { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
},
events::MessageSendEvent::SendFundingLocked { .. } => false,
+ events::MessageSendEvent::SendAnnouncementSignatures { .. } => false,
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => false,
- events::MessageSendEvent::HandleError { action: ErrorAction::IgnoreError, .. } => false,
_ => panic!("Unhandled message event"),
};
if push { msg_sink.push(event); }
chan_a_disconnected = true;
drain_msg_events_on_disconnect!(0);
}
+ if monitor_a.should_update_manager.load(atomic::Ordering::Relaxed) {
+ node_a_ser.0.clear();
+ nodes[0].write(&mut node_a_ser).unwrap();
+ }
let (new_node_a, new_monitor_a) = reload_node!(node_a_ser, 0, monitor_a, keys_manager_a);
nodes[0] = new_node_a;
monitor_a = new_monitor_a;
chan_b_disconnected = true;
drain_msg_events_on_disconnect!(2);
}
+ if monitor_c.should_update_manager.load(atomic::Ordering::Relaxed) {
+ node_c_ser.0.clear();
+ nodes[2].write(&mut node_c_ser).unwrap();
+ }
let (new_node_c, new_monitor_c) = reload_node!(node_c_ser, 2, monitor_c, keys_manager_c);
nodes[2] = new_node_c;
monitor_c = new_monitor_c;