Skip to content

Commit 7533a3c

Browse files
committed
Pass logger to onion payload decoder
In an upcoming commit, messages for BOLT 12 offers are read from the onion payload. Passing a logger allows for logging semantic errors when parsing the messages.
1 parent 9b3a35a commit 7533a3c

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

lightning/src/onion_message/messenger.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ fn outbound_buffer_full(peer_node_id: &PublicKey, buffer: &HashMap<PublicKey, Ve
301301
impl<ES: Deref, NS: Deref, L: Deref, CMH: Deref> OnionMessageHandler for OnionMessenger<ES, NS, L, CMH>
302302
where ES::Target: EntropySource,
303303
NS::Target: NodeSigner,
304-
L::Target: Logger,
304+
L::Target: Logger + Sized,
305305
CMH::Target: CustomOnionMessageHandler + Sized,
306306
{
307307
/// Handle an incoming onion message. Currently, if a message was destined for us we will log, but
@@ -331,9 +331,10 @@ impl<ES: Deref, NS: Deref, L: Deref, CMH: Deref> OnionMessageHandler for OnionMe
331331
}
332332
}
333333
};
334-
match onion_utils::decode_next_untagged_hop(onion_decode_ss, &msg.onion_routing_packet.hop_data[..],
335-
msg.onion_routing_packet.hmac, (control_tlvs_ss, &*self.custom_handler))
336-
{
334+
match onion_utils::decode_next_untagged_hop(
335+
onion_decode_ss, &msg.onion_routing_packet.hop_data[..], msg.onion_routing_packet.hmac,
336+
(control_tlvs_ss, &*self.custom_handler, &*self.logger)
337+
) {
337338
Ok((Payload::Receive::<<<CMH as Deref>::Target as CustomOnionMessageHandler>::CustomMessage> {
338339
message, control_tlvs: ReceiveControlTlvs::Unblinded(ReceiveTlvs { path_id }), reply_path,
339340
}, None)) => {

lightning/src/onion_message/packet.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use crate::ln::msgs::DecodeError;
1717
use crate::ln::onion_utils;
1818
use super::messenger::CustomOnionMessageHandler;
1919
use crate::util::chacha20poly1305rfc::{ChaChaPolyReadAdapter, ChaChaPolyWriteAdapter};
20+
use crate::util::logger::Logger;
2021
use crate::util::ser::{BigSize, FixedLengthReader, LengthRead, LengthReadable, LengthReadableArgs, Readable, ReadableArgs, Writeable, Writer};
2122

2223
use core::cmp;
@@ -201,9 +202,10 @@ impl<T: CustomOnionMessageContents> Writeable for (Payload<T>, [u8; 32]) {
201202
}
202203

203204
// Uses the provided secret to simultaneously decode and decrypt the control TLVs and data TLV.
204-
impl<H: CustomOnionMessageHandler> ReadableArgs<(SharedSecret, &H)> for Payload<<H as CustomOnionMessageHandler>::CustomMessage> {
205-
fn read<R: Read>(r: &mut R, args: (SharedSecret, &H)) -> Result<Self, DecodeError> {
206-
let (encrypted_tlvs_ss, handler) = args;
205+
impl<H: CustomOnionMessageHandler, L: Logger>
206+
ReadableArgs<(SharedSecret, &H, &L)> for Payload<<H as CustomOnionMessageHandler>::CustomMessage> {
207+
fn read<R: Read>(r: &mut R, args: (SharedSecret, &H, &L)) -> Result<Self, DecodeError> {
208+
let (encrypted_tlvs_ss, handler, _logger) = args;
207209

208210
let v: BigSize = Readable::read(r)?;
209211
let mut rd = FixedLengthReader::new(r, v.0);

0 commit comments

Comments
 (0)