@@ -811,6 +811,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref, CMH: Deref> P
811811 log_given_level!( self . logger, level, "Error handling message{}; ignoring: {}" , OptionalFromDebugger ( & peer. their_node_id) , e. err) ;
812812 continue
813813 } ,
814+ msgs:: ErrorAction :: IgnoreDuplicateGossip => continue , // Don't even bother logging these
814815 msgs:: ErrorAction :: IgnoreError => {
815816 log_debug!( self . logger, "Error handling message{}; ignoring: {}" , OptionalFromDebugger ( & peer. their_node_id) , e. err) ;
816817 continue ;
@@ -1351,21 +1352,31 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref, CMH: Deref> P
13511352 } ,
13521353 MessageSendEvent :: BroadcastChannelAnnouncement { msg, update_msg } => {
13531354 log_debug ! ( self . logger, "Handling BroadcastChannelAnnouncement event in peer_handler for short channel id {}" , msg. contents. short_channel_id) ;
1354- if self . message_handler . route_handler . handle_channel_announcement ( & msg) . is_ok ( ) && self . message_handler . route_handler . handle_channel_update ( & update_msg) . is_ok ( ) {
1355- self . forward_broadcast_msg ( peers, & wire:: Message :: ChannelAnnouncement ( msg) , None ) ;
1356- self . forward_broadcast_msg ( peers, & wire:: Message :: ChannelUpdate ( update_msg) , None ) ;
1355+ match self . message_handler . route_handler . handle_channel_announcement ( & msg) {
1356+ Ok ( _) | Err ( LightningError { action : msgs:: ErrorAction :: IgnoreDuplicateGossip , .. } ) =>
1357+ self . forward_broadcast_msg ( peers, & wire:: Message :: ChannelAnnouncement ( msg) , None ) ,
1358+ _ => { } ,
1359+ }
1360+ match self . message_handler . route_handler . handle_channel_update ( & update_msg) {
1361+ Ok ( _) | Err ( LightningError { action : msgs:: ErrorAction :: IgnoreDuplicateGossip , .. } ) =>
1362+ self . forward_broadcast_msg ( peers, & wire:: Message :: ChannelUpdate ( update_msg) , None ) ,
1363+ _ => { } ,
13571364 }
13581365 } ,
13591366 MessageSendEvent :: BroadcastNodeAnnouncement { msg } => {
13601367 log_debug ! ( self . logger, "Handling BroadcastNodeAnnouncement event in peer_handler" ) ;
1361- if self . message_handler . route_handler . handle_node_announcement ( & msg) . is_ok ( ) {
1362- self . forward_broadcast_msg ( peers, & wire:: Message :: NodeAnnouncement ( msg) , None ) ;
1368+ match self . message_handler . route_handler . handle_node_announcement ( & msg) {
1369+ Ok ( _) | Err ( LightningError { action : msgs:: ErrorAction :: IgnoreDuplicateGossip , .. } ) =>
1370+ self . forward_broadcast_msg ( peers, & wire:: Message :: NodeAnnouncement ( msg) , None ) ,
1371+ _ => { } ,
13631372 }
13641373 } ,
13651374 MessageSendEvent :: BroadcastChannelUpdate { msg } => {
13661375 log_debug ! ( self . logger, "Handling BroadcastChannelUpdate event in peer_handler for short channel id {}" , msg. contents. short_channel_id) ;
1367- if self . message_handler . route_handler . handle_channel_update ( & msg) . is_ok ( ) {
1368- self . forward_broadcast_msg ( peers, & wire:: Message :: ChannelUpdate ( msg) , None ) ;
1376+ match self . message_handler . route_handler . handle_channel_update ( & msg) {
1377+ Ok ( _) | Err ( LightningError { action : msgs:: ErrorAction :: IgnoreDuplicateGossip , .. } ) =>
1378+ self . forward_broadcast_msg ( peers, & wire:: Message :: ChannelUpdate ( msg) , None ) ,
1379+ _ => { } ,
13691380 }
13701381 } ,
13711382 MessageSendEvent :: SendChannelUpdate { ref node_id, ref msg } => {
@@ -1398,6 +1409,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref, CMH: Deref> P
13981409 msgs:: ErrorAction :: IgnoreAndLog ( level) => {
13991410 log_given_level ! ( self . logger, level, "Received a HandleError event to be ignored for node {}" , log_pubkey!( node_id) ) ;
14001411 } ,
1412+ msgs:: ErrorAction :: IgnoreDuplicateGossip => { } ,
14011413 msgs:: ErrorAction :: IgnoreError => {
14021414 log_debug ! ( self . logger, "Received a HandleError event to be ignored for node {}" , log_pubkey!( node_id) ) ;
14031415 } ,
0 commit comments