Skip to content

Commit 637dc43

Browse files
committed
Make get_route a static function
1 parent ed1f649 commit 637dc43

File tree

7 files changed

+303
-320
lines changed

7 files changed

+303
-320
lines changed

fuzz/src/full_stack.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use lightning::chain::keysinterface::{InMemoryChannelKeys, KeysInterface};
2424
use lightning::ln::channelmonitor;
2525
use lightning::ln::channelmanager::{ChannelManager, PaymentHash, PaymentPreimage, PaymentSecret};
2626
use lightning::ln::peer_handler::{MessageHandler,PeerManager,SocketDescriptor};
27-
use lightning::routing::router::Router;
27+
use lightning::routing::router::get_route;
2828
use lightning::routing::network_graph::NetworkGraph;
2929
use lightning::util::events::{EventsProvider,Event};
3030
use lightning::util::enforcing_trait_impls::EnforcingChannelKeys;
@@ -336,7 +336,6 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
336336
config.peer_channel_config_limits.min_dust_limit_satoshis = 0;
337337
let channelmanager = Arc::new(ChannelManager::new(Network::Bitcoin, fee_est.clone(), monitor.clone(), broadcast.clone(), Arc::clone(&logger), keys_manager.clone(), config, 0).unwrap());
338338
let network_graph = Arc::new(NetworkGraph::new(PublicKey::from_secret_key(&Secp256k1::signing_only(), &keys_manager.get_node_secret()), watch.clone(), Arc::clone(&logger)));
339-
let router = Arc::new(Router::new(Arc::clone(&logger)));
340339

341340
let peers = RefCell::new([false; 256]);
342341
let mut loss_detector = MoneyLossDetector::new(&peers, channelmanager.clone(), monitor.clone(), PeerManager::new(MessageHandler {
@@ -393,7 +392,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
393392
},
394393
4 => {
395394
let value = slice_to_be24(get_slice!(3)) as u64;
396-
let route = match router.get_route(&network_graph, &get_pubkey!(), None, &Vec::new(), value, 42) {
395+
let route = match get_route(&network_graph, &get_pubkey!(), None, &Vec::new(), value, 42) {
397396
Ok(route) => route,
398397
Err(_) => return,
399398
};
@@ -410,7 +409,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
410409
},
411410
15 => {
412411
let value = slice_to_be24(get_slice!(3)) as u64;
413-
let mut route = match router.get_route(&network_graph, &get_pubkey!(), None, &Vec::new(), value, 42) {
412+
let mut route = match get_route(&network_graph, &get_pubkey!(), None, &Vec::new(), value, 42) {
414413
Ok(route) => route,
415414
Err(_) => return,
416415
};

fuzz/src/router.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use lightning::ln::channelmanager::ChannelDetails;
88
use lightning::ln::features::InitFeatures;
99
use lightning::ln::msgs;
1010
use lightning::ln::msgs::RoutingMessageHandler;
11-
use lightning::routing::router::{Router, RouteHint};
11+
use lightning::routing::router::{get_route, RouteHint};
1212
use lightning::util::logger::Logger;
1313
use lightning::util::ser::Readable;
1414
use lightning::routing::network_graph::{NetworkGraph, RoutingFees};
@@ -157,7 +157,6 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
157157
});
158158

159159
let our_pubkey = get_pubkey!();
160-
let router = Router::new(Arc::clone(&logger));
161160
let network_graph = NetworkGraph::new(our_pubkey.clone(), chain_monitor, Arc::clone(&logger));
162161

163162
loop {
@@ -229,7 +228,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
229228
}
230229
&last_hops_vec[..]
231230
};
232-
let _ = router.get_route(&network_graph, &target, first_hops, last_hops, slice_to_be64(get_slice!(8)), slice_to_be32(get_slice!(4)));
231+
let _ = get_route(&network_graph, &target, first_hops, last_hops, slice_to_be64(get_slice!(8)), slice_to_be32(get_slice!(4)));
233232
},
234233
_ => return,
235234
}

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use ln::channelmonitor::ChannelMonitorUpdateErr;
99
use ln::features::InitFeatures;
1010
use ln::msgs;
1111
use ln::msgs::{ChannelMessageHandler, ErrorAction, RoutingMessageHandler};
12+
use routing::router::get_route;
1213
use util::events::{Event, EventsProvider, MessageSendEvent, MessageSendEventsProvider};
1314
use util::errors::APIError;
1415

@@ -30,7 +31,7 @@ fn test_simple_monitor_permanent_update_fail() {
3031

3132
*nodes[0].chan_monitor.update_ret.lock().unwrap() = Err(ChannelMonitorUpdateErr::PermanentFailure);
3233
let network_graph = &nodes[0].network_graph;
33-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
34+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
3435
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_1, &None), true, APIError::ChannelUnavailable {..}, {});
3536
check_added_monitors!(nodes[0], 2);
3637

@@ -66,7 +67,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
6667

6768
{
6869
let network_graph = &nodes[0].network_graph;
69-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
70+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
7071
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_1, &None), false, APIError::MonitorUpdateFailed, {});
7172
check_added_monitors!(nodes[0], 1);
7273
}
@@ -113,7 +114,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
113114
{
114115
*nodes[0].chan_monitor.update_ret.lock().unwrap() = Err(ChannelMonitorUpdateErr::TemporaryFailure);
115116
let network_graph = &nodes[0].network_graph;
116-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
117+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
117118
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_2, &None), false, APIError::MonitorUpdateFailed, {});
118119
check_added_monitors!(nodes[0], 1);
119120
}
@@ -178,7 +179,7 @@ fn do_test_monitor_temporary_update_fail(disconnect_count: usize) {
178179
{
179180
*nodes[0].chan_monitor.update_ret.lock().unwrap() = Err(ChannelMonitorUpdateErr::TemporaryFailure);
180181
let network_graph = &nodes[0].network_graph;
181-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
182+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
182183
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_2, &None), false, APIError::MonitorUpdateFailed, {});
183184
check_added_monitors!(nodes[0], 1);
184185
}
@@ -508,7 +509,7 @@ fn test_monitor_update_fail_cs() {
508509
let (payment_preimage, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
509510
{
510511
let network_graph = &nodes[0].network_graph;
511-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
512+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
512513
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
513514
check_added_monitors!(nodes[0], 1);
514515
}
@@ -596,7 +597,7 @@ fn test_monitor_update_fail_no_rebroadcast() {
596597
let (payment_preimage_1, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
597598
{
598599
let network_graph = &nodes[0].network_graph;
599-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
600+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
600601
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
601602
check_added_monitors!(nodes[0], 1);
602603
}
@@ -646,7 +647,7 @@ fn test_monitor_update_raa_while_paused() {
646647
let (payment_preimage_1, our_payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
647648
{
648649
let network_graph = &nodes[0].network_graph;
649-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
650+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
650651
nodes[0].node.send_payment(&route, our_payment_hash_1, &None).unwrap();
651652
check_added_monitors!(nodes[0], 1);
652653
}
@@ -655,7 +656,7 @@ fn test_monitor_update_raa_while_paused() {
655656
let (payment_preimage_2, our_payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
656657
{
657658
let network_graph = &nodes[1].network_graph;
658-
let route = nodes[1].router.get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
659+
let route = get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
659660
nodes[1].node.send_payment(&route, our_payment_hash_2, &None).unwrap();
660661
check_added_monitors!(nodes[1], 1);
661662
}
@@ -746,7 +747,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
746747
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
747748
{
748749
let network_graph = &nodes[0].network_graph;
749-
let route = nodes[0].router.get_route(network_graph, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
750+
let route = get_route(network_graph, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
750751
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
751752
check_added_monitors!(nodes[0], 1);
752753
}
@@ -773,7 +774,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
773774
let (_, payment_hash_3) = get_payment_preimage_hash!(nodes[0]);
774775
{
775776
let network_graph = &nodes[0].network_graph;
776-
let route = nodes[0].router.get_route(network_graph, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
777+
let route = get_route(network_graph, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
777778
nodes[0].node.send_payment(&route, payment_hash_3, &None).unwrap();
778779
check_added_monitors!(nodes[0], 1);
779780
}
@@ -822,7 +823,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
822823
// Try to route another payment backwards from 2 to make sure 1 holds off on responding
823824
let (payment_preimage_4, payment_hash_4) = get_payment_preimage_hash!(nodes[0]);
824825
let network_graph = &nodes[2].network_graph;
825-
let route = nodes[2].router.get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
826+
let route = get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
826827
nodes[2].node.send_payment(&route, payment_hash_4, &None).unwrap();
827828
check_added_monitors!(nodes[2], 1);
828829

@@ -1075,7 +1076,7 @@ fn raa_no_response_awaiting_raa_state() {
10751076
// generation during RAA while in monitor-update-failed state.
10761077
{
10771078
let network_graph = &nodes[0].network_graph;
1078-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1079+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
10791080
nodes[0].node.send_payment(&route, payment_hash_1, &None).unwrap();
10801081
check_added_monitors!(nodes[0], 1);
10811082
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
@@ -1129,7 +1130,7 @@ fn raa_no_response_awaiting_raa_state() {
11291130
// commitment transaction states) whereas here we can explicitly check for it.
11301131
{
11311132
let network_graph = &nodes[0].network_graph;
1132-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1133+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
11331134
nodes[0].node.send_payment(&route, payment_hash_3, &None).unwrap();
11341135
check_added_monitors!(nodes[0], 0);
11351136
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
@@ -1220,7 +1221,7 @@ fn claim_while_disconnected_monitor_update_fail() {
12201221
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
12211222
{
12221223
let network_graph = &nodes[0].network_graph;
1223-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1224+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
12241225
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
12251226
check_added_monitors!(nodes[0], 1);
12261227
}
@@ -1315,7 +1316,7 @@ fn monitor_failed_no_reestablish_response() {
13151316
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
13161317
{
13171318
let network_graph = &nodes[0].network_graph;
1318-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1319+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
13191320
nodes[0].node.send_payment(&route, payment_hash_1, &None).unwrap();
13201321
check_added_monitors!(nodes[0], 1);
13211322
}
@@ -1388,7 +1389,7 @@ fn first_message_on_recv_ordering() {
13881389
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
13891390
{
13901391
let network_graph = &nodes[0].network_graph;
1391-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1392+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
13921393
nodes[0].node.send_payment(&route, payment_hash_1, &None).unwrap();
13931394
check_added_monitors!(nodes[0], 1);
13941395
}
@@ -1413,7 +1414,7 @@ fn first_message_on_recv_ordering() {
14131414
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
14141415
{
14151416
let network_graph = &nodes[0].network_graph;
1416-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1417+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
14171418
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
14181419
check_added_monitors!(nodes[0], 1);
14191420
}
@@ -1492,7 +1493,7 @@ fn test_monitor_update_fail_claim() {
14921493
let (_, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
14931494
{
14941495
let network_graph = &nodes[2].network_graph;
1495-
let route = nodes[2].router.get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1496+
let route = get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
14961497
nodes[2].node.send_payment(&route, payment_hash_2, &None).unwrap();
14971498
check_added_monitors!(nodes[2], 1);
14981499
}
@@ -1576,7 +1577,7 @@ fn test_monitor_update_on_pending_forwards() {
15761577
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
15771578
{
15781579
let network_graph = &nodes[2].network_graph;
1579-
let route = nodes[2].router.get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1580+
let route = get_route(network_graph, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
15801581
nodes[2].node.send_payment(&route, payment_hash_2, &None).unwrap();
15811582
check_added_monitors!(nodes[2], 1);
15821583
}
@@ -1638,7 +1639,7 @@ fn monitor_update_claim_fail_no_response() {
16381639
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
16391640
{
16401641
let network_graph = &nodes[0].network_graph;
1641-
let route = nodes[0].router.get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
1642+
let route = get_route(network_graph, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV).unwrap();
16421643
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
16431644
check_added_monitors!(nodes[0], 1);
16441645
}
@@ -1802,7 +1803,7 @@ fn test_path_paused_mpp() {
18021803

18031804
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(&nodes[0]);
18041805
let payment_secret = PaymentSecret([0xdb; 32]);
1805-
let mut route = nodes[0].router.get_route(&nodes[0].network_graph, &nodes[3].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV).unwrap();
1806+
let mut route = get_route(&nodes[0].network_graph, &nodes[3].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV).unwrap();
18061807

18071808
// Set us up to take multiple routes, one 0 -> 1 -> 3 and one 0 -> 2 -> 3:
18081809
let path = route.paths[0].clone();

lightning/src/ln/channelmanager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,7 @@ impl<ChanSigner: ChannelKeys, M: Deref, T: Deref, K: Deref, F: Deref> ChannelMan
827827
}
828828

829829
/// Gets the list of usable channels, in random order. Useful as an argument to
830-
/// Router::get_route to ensure non-announced channels are used.
830+
/// get_route to ensure non-announced channels are used.
831831
///
832832
/// These are guaranteed to have their is_live value set to true, see the documentation for
833833
/// ChannelDetails::is_live for more info on exactly what the criteria are.
@@ -1877,7 +1877,7 @@ impl<ChanSigner: ChannelKeys, M: Deref, T: Deref, K: Deref, F: Deref> ChannelMan
18771877
.. } => {
18781878
// we get a fail_malformed_htlc from the first hop
18791879
// TODO: We'd like to generate a PaymentFailureNetworkUpdate for temporary
1880-
// failures here, but that would be insufficient as Router::get_route
1880+
// failures here, but that would be insufficient as get_route
18811881
// generally ignores its view of our own channels as we provide them via
18821882
// ChannelDetails.
18831883
// TODO: For non-temporary failures, we really should be closing the

0 commit comments

Comments
 (0)