Skip to content

Commit bcad257

Browse files
committed
Fix the establish_connection utility method for a 2nd connection
The `establish_connection` method should work for more than one connection per `PeerManager`, which we fix here.
1 parent 1b711ed commit bcad257

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2746,7 +2746,7 @@ mod tests {
27462746

27472747
use crate::sync::{Arc, Mutex};
27482748
use core::convert::Infallible;
2749-
use core::sync::atomic::{AtomicBool, Ordering};
2749+
use core::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
27502750

27512751
#[allow(unused_imports)]
27522752
use crate::prelude::*;
@@ -2898,20 +2898,25 @@ mod tests {
28982898
}
28992899

29002900
fn establish_connection<'a>(peer_a: &PeerManager<FileDescriptor, &'a test_utils::TestChannelMessageHandler, &'a test_utils::TestRoutingMessageHandler, IgnoringMessageHandler, &'a test_utils::TestLogger, &'a TestCustomMessageHandler, &'a test_utils::TestNodeSigner>, peer_b: &PeerManager<FileDescriptor, &'a test_utils::TestChannelMessageHandler, &'a test_utils::TestRoutingMessageHandler, IgnoringMessageHandler, &'a test_utils::TestLogger, &'a TestCustomMessageHandler, &'a test_utils::TestNodeSigner>) -> (FileDescriptor, FileDescriptor) {
2901+
static FD_COUNTER: AtomicUsize = AtomicUsize::new(0);
2902+
let fd = FD_COUNTER.fetch_add(1, Ordering::Relaxed) as u16;
2903+
29012904
let id_a = peer_a.node_signer.get_node_id(Recipient::Node).unwrap();
29022905
let mut fd_a = FileDescriptor {
2903-
fd: 1, outbound_data: Arc::new(Mutex::new(Vec::new())),
2906+
fd, outbound_data: Arc::new(Mutex::new(Vec::new())),
29042907
disconnect: Arc::new(AtomicBool::new(false)),
29052908
};
29062909
let addr_a = SocketAddress::TcpIpV4{addr: [127, 0, 0, 1], port: 1000};
2910+
29072911
let id_b = peer_b.node_signer.get_node_id(Recipient::Node).unwrap();
29082912
let features_a = peer_a.init_features(id_b);
29092913
let features_b = peer_b.init_features(id_a);
29102914
let mut fd_b = FileDescriptor {
2911-
fd: 1, outbound_data: Arc::new(Mutex::new(Vec::new())),
2915+
fd, outbound_data: Arc::new(Mutex::new(Vec::new())),
29122916
disconnect: Arc::new(AtomicBool::new(false)),
29132917
};
29142918
let addr_b = SocketAddress::TcpIpV4{addr: [127, 0, 0, 1], port: 1001};
2919+
29152920
let initial_data = peer_b.new_outbound_connection(id_a, fd_b.clone(), Some(addr_a.clone())).unwrap();
29162921
peer_a.new_inbound_connection(fd_a.clone(), Some(addr_b.clone())).unwrap();
29172922
assert_eq!(peer_a.read_event(&mut fd_a, &initial_data).unwrap(), false);

0 commit comments

Comments
 (0)