Skip to content

Commit 04c769b

Browse files
committed
Improve readability in messenger.rs now that we're rustfmt'ing
In ecbab29 we ran rustfmt blindly on `lightning/src/onion_message/messenger.rs`. This exposed a few untidy things in the file and made them worse, which we should have cleaned up as we went. Here we address these, removing some unnecessary generics, condensing some lines by adding intermediate variables, and reducing very vertical match statements.
1 parent c45c3a7 commit 04c769b

File tree

1 file changed

+34
-48
lines changed

1 file changed

+34
-48
lines changed

lightning/src/onion_message/messenger.rs

+34-48
Original file line numberDiff line numberDiff line change
@@ -587,16 +587,11 @@ where
587587
a_tor_only.cmp(b_tor_only).then(a_channels.cmp(b_channels).reverse())
588588
});
589589

590+
let entropy = &**entropy_source;
590591
let paths = peer_info
591592
.into_iter()
592593
.map(|(peer, _, _)| {
593-
BlindedMessagePath::new(
594-
&[peer],
595-
recipient,
596-
context.clone(),
597-
&**entropy_source,
598-
secp_ctx,
599-
)
594+
BlindedMessagePath::new(&[peer], recipient, context.clone(), entropy, secp_ctx)
600595
})
601596
.take(MAX_PATHS)
602597
.collect::<Result<Vec<_>, _>>();
@@ -1050,32 +1045,27 @@ where
10501045
let blinding_factor = {
10511046
let mut hmac = HmacEngine::<Sha256>::new(b"blinded_node_id");
10521047
hmac.input(control_tlvs_ss.as_ref());
1053-
Hmac::from_engine(hmac).to_byte_array()
1048+
let hmac = Hmac::from_engine(hmac).to_byte_array();
1049+
Scalar::from_be_bytes(hmac).unwrap()
10541050
};
1055-
match node_signer.ecdh(
1056-
Recipient::Node,
1057-
&msg.onion_routing_packet.public_key,
1058-
Some(&Scalar::from_be_bytes(blinding_factor).unwrap()),
1059-
) {
1051+
let packet_pubkey = &msg.onion_routing_packet.public_key;
1052+
match node_signer.ecdh(Recipient::Node, packet_pubkey, Some(&blinding_factor)) {
10601053
Ok(ss) => ss.secret_bytes(),
10611054
Err(()) => {
10621055
log_trace!(logger, "Failed to compute onion packet shared secret");
10631056
return Err(());
10641057
},
10651058
}
10661059
};
1067-
match onion_utils::decode_next_untagged_hop(
1060+
let next_hop = onion_utils::decode_next_untagged_hop(
10681061
onion_decode_ss,
10691062
&msg.onion_routing_packet.hop_data[..],
10701063
msg.onion_routing_packet.hmac,
10711064
(control_tlvs_ss, custom_handler.deref(), logger.deref()),
1072-
) {
1065+
);
1066+
match next_hop {
10731067
Ok((
1074-
Payload::Receive::<
1075-
ParsedOnionMessageContents<
1076-
<<CMH as Deref>::Target as CustomOnionMessageHandler>::CustomMessage,
1077-
>,
1078-
> {
1068+
Payload::Receive {
10791069
message,
10801070
control_tlvs: ReceiveControlTlvs::Unblinded(ReceiveTlvs { context }),
10811071
reply_path,
@@ -1117,11 +1107,10 @@ where
11171107
// unwrapping the onion layers to get to the final payload. Since we don't have the option
11181108
// of creating blinded paths with dummy hops currently, we should be ok to not handle this
11191109
// for now.
1120-
let new_pubkey = match onion_utils::next_hop_pubkey(
1121-
&secp_ctx,
1122-
msg.onion_routing_packet.public_key,
1123-
&onion_decode_ss,
1124-
) {
1110+
let packet_pubkey = msg.onion_routing_packet.public_key;
1111+
let new_pubkey_opt =
1112+
onion_utils::next_hop_pubkey(&secp_ctx, packet_pubkey, &onion_decode_ss);
1113+
let new_pubkey = match new_pubkey_opt {
11251114
Ok(pk) => pk,
11261115
Err(e) => {
11271116
log_trace!(logger, "Failed to compute next hop packet pubkey: {}", e);
@@ -1406,14 +1395,14 @@ where
14061395
.map_err(|_| SendError::GetNodeIdFailed)?;
14071396
let secp_ctx = &self.secp_ctx;
14081397

1409-
let peers = self
1410-
.message_recipients
1411-
.lock()
1412-
.unwrap()
1413-
.iter()
1414-
.filter(|(_, peer)| matches!(peer, OnionMessageRecipient::ConnectedPeer(_)))
1415-
.map(|(node_id, _)| *node_id)
1416-
.collect::<Vec<_>>();
1398+
let peers = {
1399+
let message_recipients = self.message_recipients.lock().unwrap();
1400+
message_recipients
1401+
.iter()
1402+
.filter(|(_, peer)| matches!(peer, OnionMessageRecipient::ConnectedPeer(_)))
1403+
.map(|(node_id, _)| *node_id)
1404+
.collect::<Vec<_>>()
1405+
};
14171406

14181407
self.message_router
14191408
.create_blinded_paths(recipient, context, peers, secp_ctx)
@@ -1627,10 +1616,9 @@ where
16271616
if num_peer_connecteds <= 1 {
16281617
for event in peer_connecteds {
16291618
if handler(event).await.is_ok() {
1630-
self.pending_peer_connected_events
1631-
.lock()
1632-
.unwrap()
1633-
.drain(..num_peer_connecteds);
1619+
let mut pending_peer_connected_events =
1620+
self.pending_peer_connected_events.lock().unwrap();
1621+
pending_peer_connected_events.drain(..num_peer_connecteds);
16341622
} else {
16351623
// We failed handling the event. Return to have it eventually replayed.
16361624
self.pending_events_processor.store(false, Ordering::Release);
@@ -1988,12 +1976,13 @@ where
19881976
&self, their_node_id: PublicKey, init: &msgs::Init, _inbound: bool,
19891977
) -> Result<(), ()> {
19901978
if init.features.supports_onion_messages() {
1991-
self.message_recipients
1992-
.lock()
1993-
.unwrap()
1994-
.entry(their_node_id)
1995-
.or_insert_with(|| OnionMessageRecipient::ConnectedPeer(VecDeque::new()))
1996-
.mark_connected();
1979+
{
1980+
let mut message_recipients = self.message_recipients.lock().unwrap();
1981+
message_recipients
1982+
.entry(their_node_id)
1983+
.or_insert_with(|| OnionMessageRecipient::ConnectedPeer(VecDeque::new()))
1984+
.mark_connected();
1985+
}
19971986
if self.intercept_messages_for_offline_peers {
19981987
let mut pending_peer_connected_events =
19991988
self.pending_peer_connected_events.lock().unwrap();
@@ -2090,11 +2079,8 @@ where
20902079
);
20912080
}
20922081

2093-
self.message_recipients
2094-
.lock()
2095-
.unwrap()
2096-
.get_mut(&peer_node_id)
2097-
.and_then(|buffer| buffer.dequeue_message())
2082+
let mut message_recipients = self.message_recipients.lock().unwrap();
2083+
message_recipients.get_mut(&peer_node_id).and_then(|buffer| buffer.dequeue_message())
20982084
}
20992085
}
21002086

0 commit comments

Comments
 (0)