@@ -30,6 +30,7 @@ use lightning::events::{Event, PathFailure};
3030#[ cfg( feature = "std" ) ]  
3131use  lightning:: events:: { EventHandler ,  EventsProvider } ; 
3232use  lightning:: ln:: channelmanager:: ChannelManager ; 
33+ use  lightning:: ln:: msgs:: OnionMessageHandler ; 
3334use  lightning:: ln:: peer_handler:: APeerManager ; 
3435use  lightning:: routing:: gossip:: { NetworkGraph ,  P2PGossipSync } ; 
3536use  lightning:: routing:: utxo:: UtxoLookup ; 
@@ -104,6 +105,11 @@ const PING_TIMER: u64 = 30;
104105#[ cfg( test) ]  
105106const  PING_TIMER :  u64  = 1 ; 
106107
108+ #[ cfg( not( test) ) ]  
109+ const  ONION_MESSAGE_HANDLER_TIMER :  u64  = 10 ; 
110+ #[ cfg( test) ]  
111+ const  ONION_MESSAGE_HANDLER_TIMER :  u64  = 1 ; 
112+ 
107113/// Prune the network graph of stale entries hourly. 
108114const  NETWORK_PRUNE_TIMER :  u64  = 60  *  60 ; 
109115
@@ -283,6 +289,7 @@ macro_rules! define_run_body {
283289		$chain_monitor. rebroadcast_pending_claims( ) ; 
284290
285291		let  mut  last_freshness_call = $get_timer( FRESHNESS_TIMER ) ; 
292+ 		let  mut  last_onion_message_handler_call = $get_timer( ONION_MESSAGE_HANDLER_TIMER ) ; 
286293		let  mut  last_ping_call = $get_timer( PING_TIMER ) ; 
287294		let  mut  last_prune_call = $get_timer( FIRST_NETWORK_PRUNE_TIMER ) ; 
288295		let  mut  last_scorer_persist_call = $get_timer( SCORER_PERSIST_TIMER ) ; 
@@ -336,6 +343,11 @@ macro_rules! define_run_body {
336343				$channel_manager. timer_tick_occurred( ) ; 
337344				last_freshness_call = $get_timer( FRESHNESS_TIMER ) ; 
338345			} 
346+ 			if  $timer_elapsed( & mut  last_onion_message_handler_call,  ONION_MESSAGE_HANDLER_TIMER )  { 
347+ 				log_trace!( $logger,  "Calling OnionMessageHandler's timer_tick_occurred" ) ; 
348+ 				$peer_manager. onion_message_handler( ) . timer_tick_occurred( ) ; 
349+ 				last_onion_message_handler_call = $get_timer( ONION_MESSAGE_HANDLER_TIMER ) ; 
350+ 			} 
339351			if  await_slow { 
340352				// On various platforms, we may be starved of CPU cycles for several reasons. 
341353				// E.g. on iOS, if we've been in the background, we will be entirely paused. 
@@ -1392,9 +1404,11 @@ mod tests {
13921404
13931405	#[ test]  
13941406	fn  test_timer_tick_called ( )  { 
1395- 		// Test that `ChannelManager::timer_tick_occurred` is called every `FRESHNESS_TIMER`, 
1396- 		// `ChainMonitor::rebroadcast_pending_claims` is called every `REBROADCAST_TIMER`, and 
1397- 		// `PeerManager::timer_tick_occurred` every `PING_TIMER`. 
1407+ 		// Test that: 
1408+ 		// - `ChannelManager::timer_tick_occurred` is called every `FRESHNESS_TIMER`, 
1409+ 		// - `ChainMonitor::rebroadcast_pending_claims` is called every `REBROADCAST_TIMER`, 
1410+ 		// - `PeerManager::timer_tick_occurred` is called every `PING_TIMER`, and 
1411+ 		// - `OnionMessageHandler::timer_tick_occurred` is called every `ONION_MESSAGE_HANDLER_TIMER`. 
13981412		let  ( _,  nodes)  = create_nodes ( 1 ,  "test_timer_tick_called" ) ; 
13991413		let  data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ; 
14001414		let  persister = Arc :: new ( Persister :: new ( data_dir) ) ; 
@@ -1405,9 +1419,11 @@ mod tests {
14051419			let  desired_log_1 = "Calling ChannelManager's timer_tick_occurred" . to_string ( ) ; 
14061420			let  desired_log_2 = "Calling PeerManager's timer_tick_occurred" . to_string ( ) ; 
14071421			let  desired_log_3 = "Rebroadcasting monitor's pending claims" . to_string ( ) ; 
1422+ 			let  desired_log_4 = "Calling OnionMessageHandler's timer_tick_occurred" . to_string ( ) ; 
14081423			if  log_entries. get ( & ( "lightning_background_processor" ,  desired_log_1) ) . is_some ( )  &&
14091424				log_entries. get ( & ( "lightning_background_processor" ,  desired_log_2) ) . is_some ( )  &&
1410- 				log_entries. get ( & ( "lightning_background_processor" ,  desired_log_3) ) . is_some ( )  { 
1425+ 				log_entries. get ( & ( "lightning_background_processor" ,  desired_log_3) ) . is_some ( )  &&
1426+ 				log_entries. get ( & ( "lightning_background_processor" ,  desired_log_4) ) . is_some ( )  { 
14111427				break 
14121428			} 
14131429		} 
0 commit comments