@@ -28,7 +28,7 @@ use super::packet::OnionMessageContents;
28
28
use super :: packet:: ParsedOnionMessageContents ;
29
29
use super :: offers:: OffersMessageHandler ;
30
30
use 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 } ;
32
32
use crate :: util:: ser:: Writeable ;
33
33
34
34
use core:: fmt;
@@ -748,25 +748,31 @@ where
748
748
& self , contents : T , destination : Destination , reply_path : Option < BlindedPath > ,
749
749
log_suffix : fmt:: Arguments
750
750
) -> Result < SendSuccess , SendError > {
751
+ let mut logger = WithContext :: from ( & self . logger , None , None ) ;
751
752
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
+ } ) ;
753
758
754
759
match result. as_ref ( ) {
755
760
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) ;
757
762
} ,
758
763
Err ( SendError :: PathNotFound ) => {
759
- log_trace ! ( self . logger, "Failed to find path {}" , log_suffix) ;
764
+ log_trace ! ( logger, "Failed to find path {}" , log_suffix) ;
760
765
} ,
761
766
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) ;
763
768
} ,
764
769
Ok ( SendSuccess :: Buffered ) => {
765
- log_trace ! ( self . logger, "Buffered onion message {}" , log_suffix) ;
770
+ log_trace ! ( logger, "Buffered onion message {}" , log_suffix) ;
766
771
} ,
767
772
Ok ( SendSuccess :: BufferedAwaitingConnection ( node_id) ) => {
768
773
log_trace ! (
769
- self . logger, "Buffered onion message waiting on peer connection {}: {}" ,
774
+ logger,
775
+ "Buffered onion message waiting on peer connection {}: {}" ,
770
776
log_suffix, node_id
771
777
) ;
772
778
} ,
@@ -925,12 +931,13 @@ where
925
931
OMH :: Target : OffersMessageHandler ,
926
932
CMH :: Target : CustomOnionMessageHandler ,
927
933
{
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 ) ;
929
936
match self . peel_onion_message ( msg) {
930
937
Ok ( PeeledOnion :: Receive ( message, path_id, reply_path) ) => {
931
938
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: {:?}" ,
934
941
path_id, if reply_path. is_some( ) { "a" } else { "no" } , message) ;
935
942
936
943
match message {
@@ -957,7 +964,10 @@ where
957
964
Ok ( PeeledOnion :: Forward ( next_node_id, onion_message) ) => {
958
965
let mut message_recipients = self . message_recipients . lock ( ) . unwrap ( ) ;
959
966
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) ;
961
971
return
962
972
}
963
973
@@ -971,16 +981,19 @@ where
971
981
e. get( ) , OnionMessageRecipient :: ConnectedPeer ( ..)
972
982
) => {
973
983
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) ;
975
985
} ,
976
986
_ => {
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) ;
978
991
return
979
992
} ,
980
993
}
981
994
} ,
982
995
Err ( e) => {
983
- log_error ! ( self . logger, "Failed to process onion message {:?}" , e) ;
996
+ log_error ! ( logger, "Failed to process onion message {:?}" , e) ;
984
997
}
985
998
}
986
999
}
0 commit comments