@@ -1053,6 +1053,18 @@ pub enum Event {
1053
1053
/// The onion message intended to be forwarded to `peer_node_id`.
1054
1054
message : msgs:: OnionMessage ,
1055
1055
} ,
1056
+ /// Indicates that an onion message supporting peer has come online and it may
1057
+ /// be time to forward any onion messages that were previously intercepted for
1058
+ /// them. This event will only be generated if the `OnionMessenger` was
1059
+ /// initialized with
1060
+ /// [`OnionMessenger::new_with_offline_peer_interception`], see its docs.
1061
+ ///
1062
+ /// [`OnionMessenger::new_with_offline_peer_interception`]: crate::onion_message::messenger::OnionMessenger::new_with_offline_peer_interception
1063
+ OnionMessagePeerConnected {
1064
+ /// The node id of the peer we just connected to, who advertises support for
1065
+ /// onion messages.
1066
+ peer_node_id : PublicKey ,
1067
+ }
1056
1068
}
1057
1069
1058
1070
impl Writeable for Event {
@@ -1304,6 +1316,12 @@ impl Writeable for Event {
1304
1316
( 0 , peer_node_id, required) ,
1305
1317
( 2 , message, required) ,
1306
1318
} ) ;
1319
+ } ,
1320
+ & Event :: OnionMessagePeerConnected { ref peer_node_id } => {
1321
+ 39u8 . write ( writer) ?;
1322
+ write_tlv_fields ! ( writer, {
1323
+ ( 0 , peer_node_id, required) ,
1324
+ } ) ;
1307
1325
}
1308
1326
// Note that, going forward, all new events must only write data inside of
1309
1327
// `write_tlv_fields`. Versions 0.0.101+ will ignore odd-numbered events that write
@@ -1728,6 +1746,17 @@ impl MaybeReadable for Event {
1728
1746
} ;
1729
1747
f ( )
1730
1748
} ,
1749
+ 39u8 => {
1750
+ let mut f = || {
1751
+ _init_and_read_len_prefixed_tlv_fields ! ( reader, {
1752
+ ( 0 , peer_node_id, required) ,
1753
+ } ) ;
1754
+ Ok ( Some ( Event :: OnionMessagePeerConnected {
1755
+ peer_node_id : peer_node_id. 0 . unwrap ( )
1756
+ } ) )
1757
+ } ;
1758
+ f ( )
1759
+ } ,
1731
1760
// Versions prior to 0.0.100 did not ignore odd types, instead returning InvalidValue.
1732
1761
// Version 0.0.100 failed to properly ignore odd types, possibly resulting in corrupt
1733
1762
// reads.
0 commit comments