Skip to content

Commit 0725098

Browse files
authored
Merge pull request #900 from lightning-signer/init-asap
Send Init message immediately after handshake even if not initiator
2 parents 6494e53 + 7113dbd commit 0725098

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,6 @@ enum InitSyncTracker{
233233

234234
struct Peer {
235235
channel_encryptor: PeerChannelEncryptor,
236-
outbound: bool,
237236
their_node_id: Option<PublicKey>,
238237
their_features: Option<InitFeatures>,
239238

@@ -465,7 +464,6 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
465464
let mut peers = self.peers.lock().unwrap();
466465
if peers.peers.insert(descriptor, Peer {
467466
channel_encryptor: peer_encryptor,
468-
outbound: true,
469467
their_node_id: None,
470468
their_features: None,
471469

@@ -502,7 +500,6 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
502500
let mut peers = self.peers.lock().unwrap();
503501
if peers.peers.insert(descriptor, Peer {
504502
channel_encryptor: peer_encryptor,
505-
outbound: false,
506503
their_node_id: None,
507504
their_features: None,
508505

@@ -744,6 +741,9 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
744741
peer.pending_read_is_header = true;
745742
peer.their_node_id = Some(their_node_id);
746743
insert_node_id!();
744+
let features = InitFeatures::known();
745+
let resp = msgs::Init { features };
746+
self.enqueue_message(&mut peers.peers_needing_send, peer, peer_descriptor.clone(), &resp);
747747
},
748748
NextNoiseStep::NoiseComplete => {
749749
if peer.pending_read_is_header {
@@ -854,12 +854,6 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
854854
return Err(PeerHandleError{ no_connection_possible: true }.into());
855855
}
856856

857-
if !peer.outbound {
858-
let features = InitFeatures::known();
859-
let resp = msgs::Init { features };
860-
self.enqueue_message(peers_needing_send, peer, peer_descriptor.clone(), &resp);
861-
}
862-
863857
self.message_handler.route_handler.sync_routing_table(&peer.their_node_id.unwrap(), &msg);
864858

865859
self.message_handler.chan_handler.peer_connected(&peer.their_node_id.unwrap(), &msg);

0 commit comments

Comments
 (0)