Skip to content

Commit ad9b687

Browse files
committed
improve error messaging
1 parent cd28570 commit ad9b687

File tree

2 files changed

+8
-19
lines changed

2 files changed

+8
-19
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
285285
if peers.peers.insert(descriptor, Peer {
286286
encryptor: PeerState::Handshake(handshake),
287287
outbound: true,
288-
their_node_id: None,
288+
their_node_id: Some(their_node_id.clone()),
289289
their_features: None,
290290

291291
pending_outbound_buffer: LinkedList::new(),
@@ -313,7 +313,8 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
313313
/// Panics if descriptor is duplicative with some other descriptor which has not yet has a
314314
/// disconnect_event.
315315
pub fn new_inbound_connection(&self, descriptor: Descriptor) -> Result<(), PeerHandleError> {
316-
let handshake = PeerHandshake::new(&self.our_node_secret, &self.get_ephemeral_key());
316+
let mut handshake = PeerHandshake::new(&self.our_node_secret, &self.get_ephemeral_key());
317+
handshake.make_inbound();
317318

318319
let mut peers = self.peers.lock().unwrap();
319320
if peers.peers.insert(descriptor, Peer {
@@ -465,28 +466,16 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
465466
peer.pending_read_buffer.extend_from_slice(&data);
466467
while peer.pending_read_buffer.len() > 0 {
467468

468-
macro_rules! insert_node_id {
469-
() => {
470-
match peers.node_id_to_descriptor.entry(peer.their_node_id.unwrap()) {
471-
hash_map::Entry::Occupied(_) => {
472-
log_trace!(self, "Got second connection with {}, closing", log_pubkey!(peer.their_node_id.unwrap()));
473-
peer.their_node_id = None; // Unset so that we don't generate a peer_disconnected event
474-
return Err(PeerHandleError{ no_connection_possible: false })
475-
},
476-
hash_map::Entry::Vacant(entry) => {
477-
log_trace!(self, "Finished noise handshake for connection with {}", log_pubkey!(peer.their_node_id.unwrap()));
478-
entry.insert(peer_descriptor.clone())
479-
},
480-
};
481-
}
482-
}
483-
484469
let mut conduit_option = None;
485470

486471
if let &mut PeerState::Handshake(ref mut handshake) = &mut peer.encryptor {
487472
let (response, conduit, remote_pubkey) = handshake.process_act(&peer.pending_read_buffer, None).unwrap();
488473
peer.pending_read_buffer.drain(..); // we read it all
489474

475+
if let Some(key) = remote_pubkey {
476+
peer.their_node_id.replace(key);
477+
}
478+
490479
peer.pending_outbound_buffer.push_back(response);
491480
if let Some(conduit) = conduit {
492481
conduit_option = Some(conduit);

lightning/src/ln/peers/handshake/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ impl PeerHandshake {
8181

8282
match &self.state {
8383
&Some(HandshakeState::Blank) => {
84-
let remote_public_key = remote_public_key.ok_or("Call make_initiator() first")?;
84+
let remote_public_key = remote_public_key.ok_or("remote_public_key must be Some for outbound connections")?;
8585
let act_one = self.initiate(&remote_public_key)?;
8686
response = act_one.0.to_vec();
8787
}

0 commit comments

Comments
 (0)