Skip to content

Commit bb9df69

Browse files
authored
Merge pull request #1043 from jkczyz/2021-07-network-update-handler
Handle network updates from failed payments in BackgroundProcessor
2 parents de9fba8 + 992df51 commit bb9df69

23 files changed

+776
-733
lines changed

fuzz/src/chanmon_consistency.rs

-7
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,6 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
594594
},
595595
events::MessageSendEvent::SendFundingLocked { .. } => continue,
596596
events::MessageSendEvent::SendAnnouncementSignatures { .. } => continue,
597-
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => continue,
598597
events::MessageSendEvent::SendChannelUpdate { ref node_id, ref msg } => {
599598
assert_eq!(msg.contents.flags & 2, 0); // The disable bit must never be set!
600599
if Some(*node_id) == expect_drop_id { panic!("peer_disconnected should drop msgs bound for the disconnected peer"); }
@@ -727,10 +726,6 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
727726
events::MessageSendEvent::SendAnnouncementSignatures { .. } => {
728727
// Can be generated as a reestablish response
729728
},
730-
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => {
731-
// Can be generated due to a payment forward being rejected due to a
732-
// channel having previously failed a monitor update
733-
},
734729
events::MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
735730
// When we reconnect we will resend a channel_update to make sure our
736731
// counterparty has the latest parameters for receiving payments
@@ -769,7 +764,6 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
769764
events::MessageSendEvent::SendChannelReestablish { .. } => {},
770765
events::MessageSendEvent::SendFundingLocked { .. } => {},
771766
events::MessageSendEvent::SendAnnouncementSignatures { .. } => {},
772-
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => {},
773767
events::MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
774768
assert_eq!(msg.contents.flags & 2, 0); // The disable bit must never be set!
775769
},
@@ -787,7 +781,6 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
787781
events::MessageSendEvent::SendChannelReestablish { .. } => {},
788782
events::MessageSendEvent::SendFundingLocked { .. } => {},
789783
events::MessageSendEvent::SendAnnouncementSignatures { .. } => {},
790-
events::MessageSendEvent::PaymentFailureNetworkUpdate { .. } => {},
791784
events::MessageSendEvent::SendChannelUpdate { ref msg, .. } => {
792785
assert_eq!(msg.contents.flags & 2, 0); // The disable bit must never be set!
793786
},

fuzz/src/full_stack.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ use lightning::ln::peer_handler::{MessageHandler,PeerManager,SocketDescriptor,Ig
3838
use lightning::ln::msgs::DecodeError;
3939
use lightning::ln::script::ShutdownScript;
4040
use lightning::routing::router::get_route;
41-
use lightning::routing::network_graph::NetGraphMsgHandler;
41+
use lightning::routing::network_graph::{NetGraphMsgHandler, NetworkGraph};
4242
use lightning::util::config::UserConfig;
4343
use lightning::util::errors::APIError;
4444
use lightning::util::events::Event;
@@ -378,7 +378,8 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
378378
};
379379
let channelmanager = Arc::new(ChannelManager::new(fee_est.clone(), monitor.clone(), broadcast.clone(), Arc::clone(&logger), keys_manager.clone(), config, params));
380380
let our_id = PublicKey::from_secret_key(&Secp256k1::signing_only(), &keys_manager.get_node_secret());
381-
let net_graph_msg_handler = Arc::new(NetGraphMsgHandler::new(genesis_block(network).block_hash(), None, Arc::clone(&logger)));
381+
let network_graph = NetworkGraph::new(genesis_block(network).block_hash());
382+
let net_graph_msg_handler = Arc::new(NetGraphMsgHandler::new(network_graph, None, Arc::clone(&logger)));
382383

383384
let peers = RefCell::new([false; 256]);
384385
let mut loss_detector = MoneyLossDetector::new(&peers, channelmanager.clone(), monitor.clone(), PeerManager::new(MessageHandler {
@@ -434,7 +435,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
434435
},
435436
4 => {
436437
let value = slice_to_be24(get_slice!(3)) as u64;
437-
let route = match get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &get_pubkey!(), None, None, &Vec::new(), value, 42, Arc::clone(&logger)) {
438+
let route = match get_route(&our_id, &net_graph_msg_handler.network_graph, &get_pubkey!(), None, None, &Vec::new(), value, 42, Arc::clone(&logger)) {
438439
Ok(route) => route,
439440
Err(_) => return,
440441
};
@@ -451,7 +452,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
451452
},
452453
15 => {
453454
let value = slice_to_be24(get_slice!(3)) as u64;
454-
let mut route = match get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &get_pubkey!(), None, None, &Vec::new(), value, 42, Arc::clone(&logger)) {
455+
let mut route = match get_route(&our_id, &net_graph_msg_handler.network_graph, &get_pubkey!(), None, None, &Vec::new(), value, 42, Arc::clone(&logger)) {
455456
Ok(route) => route,
456457
Err(_) => return,
457458
};

fuzz/src/router.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
160160
let logger: Arc<dyn Logger> = Arc::new(test_logger::TestLogger::new("".to_owned(), out));
161161

162162
let our_pubkey = get_pubkey!();
163-
let mut net_graph = NetworkGraph::new(genesis_block(Network::Bitcoin).header.block_hash());
163+
let net_graph = NetworkGraph::new(genesis_block(Network::Bitcoin).header.block_hash());
164164

165165
let mut node_pks = HashSet::new();
166166
let mut scid = 42;

0 commit comments

Comments
 (0)