@@ -28,7 +28,7 @@ use super::packet::OnionMessageContents;
2828use super :: packet:: ParsedOnionMessageContents ;
2929use super :: offers:: OffersMessageHandler ;
3030use super :: packet:: { BIG_PACKET_HOP_DATA_LEN , ForwardControlTlvs , Packet , Payload , ReceiveControlTlvs , SMALL_PACKET_HOP_DATA_LEN } ;
31- use crate :: util:: logger:: Logger ;
31+ use crate :: util:: logger:: { Logger , WithContext } ;
3232use crate :: util:: ser:: Writeable ;
3333
3434use core:: fmt;
@@ -748,25 +748,31 @@ where
748748 & self , contents : T , destination : Destination , reply_path : Option < BlindedPath > ,
749749 log_suffix : fmt:: Arguments
750750 ) -> Result < SendSuccess , SendError > {
751+ let mut logger = WithContext :: from ( & self . logger , None , None ) ;
751752 let result = self . find_path ( destination)
752- . and_then ( |path| self . enqueue_onion_message ( path, contents, reply_path, log_suffix) ) ;
753+ . and_then ( |path| {
754+ let first_hop = path. intermediate_nodes . get ( 0 ) . map ( |p| * p) ;
755+ logger = WithContext :: from ( & self . logger , first_hop, None ) ;
756+ self . enqueue_onion_message ( path, contents, reply_path, log_suffix)
757+ } ) ;
753758
754759 match result. as_ref ( ) {
755760 Err ( SendError :: GetNodeIdFailed ) => {
756- log_warn ! ( self . logger, "Unable to retrieve node id {}" , log_suffix) ;
761+ log_warn ! ( logger, "Unable to retrieve node id {}" , log_suffix) ;
757762 } ,
758763 Err ( SendError :: PathNotFound ) => {
759- log_trace ! ( self . logger, "Failed to find path {}" , log_suffix) ;
764+ log_trace ! ( logger, "Failed to find path {}" , log_suffix) ;
760765 } ,
761766 Err ( e) => {
762- log_trace ! ( self . logger, "Failed sending onion message {}: {:?}" , log_suffix, e) ;
767+ log_trace ! ( logger, "Failed sending onion message {}: {:?}" , log_suffix, e) ;
763768 } ,
764769 Ok ( SendSuccess :: Buffered ) => {
765- log_trace ! ( self . logger, "Buffered onion message {}" , log_suffix) ;
770+ log_trace ! ( logger, "Buffered onion message {}" , log_suffix) ;
766771 } ,
767772 Ok ( SendSuccess :: BufferedAwaitingConnection ( node_id) ) => {
768773 log_trace ! (
769- self . logger, "Buffered onion message waiting on peer connection {}: {:?}" ,
774+ logger,
775+ "Buffered onion message waiting on peer connection {}: {}" ,
770776 log_suffix, node_id
771777 ) ;
772778 } ,
@@ -925,12 +931,13 @@ where
925931 OMH :: Target : OffersMessageHandler ,
926932 CMH :: Target : CustomOnionMessageHandler ,
927933{
928- fn handle_onion_message ( & self , _peer_node_id : & PublicKey , msg : & OnionMessage ) {
934+ fn handle_onion_message ( & self , peer_node_id : & PublicKey , msg : & OnionMessage ) {
935+ let logger = WithContext :: from ( & self . logger , Some ( * peer_node_id) , None ) ;
929936 match self . peel_onion_message ( msg) {
930937 Ok ( PeeledOnion :: Receive ( message, path_id, reply_path) ) => {
931938 log_trace ! (
932- self . logger,
933- "Received an onion message with path_id {:02x?} and {} reply_path: {:?}" ,
939+ logger,
940+ "Received an onion message with path_id {:02x?} and {} reply_path: {:?}" ,
934941 path_id, if reply_path. is_some( ) { "a" } else { "no" } , message) ;
935942
936943 match message {
@@ -957,7 +964,10 @@ where
957964 Ok ( PeeledOnion :: Forward ( next_node_id, onion_message) ) => {
958965 let mut message_recipients = self . message_recipients . lock ( ) . unwrap ( ) ;
959966 if outbound_buffer_full ( & next_node_id, & message_recipients) {
960- log_trace ! ( self . logger, "Dropping forwarded onion message to peer {:?}: outbound buffer full" , next_node_id) ;
967+ log_trace ! (
968+ logger,
969+ "Dropping forwarded onion message to peer {}: outbound buffer full" ,
970+ next_node_id) ;
961971 return
962972 }
963973
@@ -971,16 +981,19 @@ where
971981 e. get( ) , OnionMessageRecipient :: ConnectedPeer ( ..)
972982 ) => {
973983 e. get_mut ( ) . enqueue_message ( onion_message) ;
974- log_trace ! ( self . logger, "Forwarding an onion message to peer {}" , next_node_id) ;
984+ log_trace ! ( logger, "Forwarding an onion message to peer {}" , next_node_id) ;
975985 } ,
976986 _ => {
977- log_trace ! ( self . logger, "Dropping forwarded onion message to disconnected peer {:?}" , next_node_id) ;
987+ log_trace ! (
988+ logger,
989+ "Dropping forwarded onion message to disconnected peer {}" ,
990+ next_node_id) ;
978991 return
979992 } ,
980993 }
981994 } ,
982995 Err ( e) => {
983- log_error ! ( self . logger, "Failed to process onion message {:?}" , e) ;
996+ log_error ! ( logger, "Failed to process onion message {:?}" , e) ;
984997 }
985998 }
986999 }
0 commit comments