InitSyncTracker::ChannelsSyncing(c) if c < 0xffff_ffff_ffff_ffff => {
let steps = ((MSG_BUFF_SIZE - peer.pending_outbound_buffer.len() + 2) / 3) as u8;
let all_messages = self.message_handler.route_handler.get_next_channel_announcements(c, steps);
- for &(ref announce, ref update_a, ref update_b) in all_messages.iter() {
+ for &(ref announce, ref update_a_option, ref update_b_option) in all_messages.iter() {
encode_and_send_msg!(announce);
- encode_and_send_msg!(update_a);
- encode_and_send_msg!(update_b);
+ if let &Some(ref update_a) = update_a_option {
+ encode_and_send_msg!(update_a);
+ }
+ if let &Some(ref update_b) = update_b_option {
+ encode_and_send_msg!(update_b);
+ }
peer.sync_status = InitSyncTracker::ChannelsSyncing(announce.contents.short_channel_id + 1);
}
if all_messages.is_empty() || all_messages.len() != steps as usize {