}, 16);
}
- for msg in self.message_handler.chan_handler.peer_connected(&peer.their_node_id.unwrap()) {
- encode_and_send_msg!(msg, 136);
- }
+ self.message_handler.chan_handler.peer_connected(&peer.their_node_id.unwrap());
},
17 => {
let msg = try_potential_decodeerror!(msgs::ErrorMessage::read(&mut reader));
},
36 => {
let msg = try_potential_decodeerror!(msgs::FundingLocked::read(&mut reader));
- let resp_option = try_potential_handleerror!(self.message_handler.chan_handler.handle_funding_locked(&peer.their_node_id.unwrap(), &msg));
- match resp_option {
- Some(resp) => encode_and_send_msg!(resp, 259),
- None => {},
- }
+ try_potential_handleerror!(self.message_handler.chan_handler.handle_funding_locked(&peer.their_node_id.unwrap(), &msg));
},
38 => {
let msg = try_potential_decodeerror!(msgs::Shutdown::read(&mut reader));
- let resp_options = try_potential_handleerror!(self.message_handler.chan_handler.handle_shutdown(&peer.their_node_id.unwrap(), &msg));
- if let Some(resp) = resp_options.0 {
- encode_and_send_msg!(resp, 38);
- }
- if let Some(resp) = resp_options.1 {
- encode_and_send_msg!(resp, 39);
- }
+ try_potential_handleerror!(self.message_handler.chan_handler.handle_shutdown(&peer.their_node_id.unwrap(), &msg));
},
39 => {
let msg = try_potential_decodeerror!(msgs::ClosingSigned::read(&mut reader));
- let resp_option = try_potential_handleerror!(self.message_handler.chan_handler.handle_closing_signed(&peer.their_node_id.unwrap(), &msg));
- if let Some(resp) = resp_option {
- encode_and_send_msg!(resp, 39);
- }
+ try_potential_handleerror!(self.message_handler.chan_handler.handle_closing_signed(&peer.their_node_id.unwrap(), &msg));
},
128 => {
132 => {
let msg = try_potential_decodeerror!(msgs::CommitmentSigned::read(&mut reader));
- let resps = try_potential_handleerror!(self.message_handler.chan_handler.handle_commitment_signed(&peer.their_node_id.unwrap(), &msg));
- encode_and_send_msg!(resps.0, 133);
- if let Some(resp) = resps.1 {
- encode_and_send_msg!(resp, 132);
- }
+ try_potential_handleerror!(self.message_handler.chan_handler.handle_commitment_signed(&peer.their_node_id.unwrap(), &msg));
},
133 => {
let msg = try_potential_decodeerror!(msgs::RevokeAndACK::read(&mut reader));
- let resp_option = try_potential_handleerror!(self.message_handler.chan_handler.handle_revoke_and_ack(&peer.their_node_id.unwrap(), &msg));
- match resp_option {
- Some(resps) => {
- for resp in resps.update_add_htlcs {
- encode_and_send_msg!(resp, 128);
- }
- for resp in resps.update_fulfill_htlcs {
- encode_and_send_msg!(resp, 130);
- }
- for resp in resps.update_fail_htlcs {
- encode_and_send_msg!(resp, 131);
- }
- if let Some(resp) = resps.update_fee {
- encode_and_send_msg!(resp, 134);
- }
- encode_and_send_msg!(resps.commitment_signed, 132);
- },
- None => {},
- }
+ try_potential_handleerror!(self.message_handler.chan_handler.handle_revoke_and_ack(&peer.their_node_id.unwrap(), &msg));
},
134 => {
let msg = try_potential_decodeerror!(msgs::UpdateFee::read(&mut reader));
},
136 => {
let msg = try_potential_decodeerror!(msgs::ChannelReestablish::read(&mut reader));
- let (funding_locked, revoke_and_ack, commitment_update, order) = try_potential_handleerror!(self.message_handler.chan_handler.handle_channel_reestablish(&peer.their_node_id.unwrap(), &msg));
- if let Some(lock_msg) = funding_locked {
- encode_and_send_msg!(lock_msg, 36);
- }
- macro_rules! handle_raa { () => {
- if let Some(revoke_msg) = revoke_and_ack {
- encode_and_send_msg!(revoke_msg, 133);
- }
- } }
- macro_rules! handle_cu { () => {
- match commitment_update {
- Some(resps) => {
- for resp in resps.update_add_htlcs {
- encode_and_send_msg!(resp, 128);
- }
- for resp in resps.update_fulfill_htlcs {
- encode_and_send_msg!(resp, 130);
- }
- for resp in resps.update_fail_htlcs {
- encode_and_send_msg!(resp, 131);
- }
- if let Some(resp) = resps.update_fee {
- encode_and_send_msg!(resp, 134);
- }
- encode_and_send_msg!(resps.commitment_signed, 132);
- },
- None => {},
- }
- } }
- match order {
- msgs::RAACommitmentOrder::RevokeAndACKFirst => {
- handle_raa!();
- handle_cu!();
- },
- msgs::RAACommitmentOrder::CommitmentFirst => {
- handle_cu!();
- handle_raa!();
- },
- }
+ try_potential_handleerror!(self.message_handler.chan_handler.handle_channel_reestablish(&peer.their_node_id.unwrap(), &msg));
},
// Routing control:
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg, 35)));
Self::do_attempt_write_data(&mut descriptor, peer);
},
- MessageSendEvent::SendFundingLocked { ref node_id, ref msg, ref announcement_sigs } => {
- log_trace!(self, "Handling SendFundingLocked event in peer_handler for node {}{} for channel {}",
+ MessageSendEvent::SendFundingLocked { ref node_id, ref msg } => {
+ log_trace!(self, "Handling SendFundingLocked event in peer_handler for node {} for channel {}",
log_pubkey!(node_id),
- if announcement_sigs.is_some() { " with announcement sigs" } else { "" },
log_bytes!(msg.channel_id));
let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
//TODO: Do whatever we're gonna do for handling dropped messages
});
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg, 36)));
- match announcement_sigs {
- &Some(ref announce_msg) => peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(announce_msg, 259))),
- &None => {},
- }
+ Self::do_attempt_write_data(&mut descriptor, peer);
+ },
+ MessageSendEvent::SendAnnouncementSignatures { ref node_id, ref msg } => {
+ log_trace!(self, "Handling SendAnnouncementSignatures event in peer_handler for node {} for channel {})",
+ log_pubkey!(node_id),
+ log_bytes!(msg.channel_id));
+ let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
+ //TODO: generate a DiscardFunding event indicating to the wallet that
+ //they should just throw away this funding transaction
+ });
+ peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg, 259)));
Self::do_attempt_write_data(&mut descriptor, peer);
},
MessageSendEvent::UpdateHTLCs { ref node_id, updates: msgs::CommitmentUpdate { ref update_add_htlcs, ref update_fulfill_htlcs, ref update_fail_htlcs, ref update_fail_malformed_htlcs, ref update_fee, ref commitment_signed } } => {
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg, 133)));
Self::do_attempt_write_data(&mut descriptor, peer);
},
+ MessageSendEvent::SendClosingSigned { ref node_id, ref msg } => {
+ log_trace!(self, "Handling SendClosingSigned event in peer_handler for node {} for channel {}",
+ log_pubkey!(node_id),
+ log_bytes!(msg.channel_id));
+ let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
+ //TODO: Do whatever we're gonna do for handling dropped messages
+ });
+ peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg, 39)));
+ Self::do_attempt_write_data(&mut descriptor, peer);
+ },
MessageSendEvent::SendShutdown { ref node_id, ref msg } => {
log_trace!(self, "Handling Shutdown event in peer_handler for node {} for channel {}",
log_pubkey!(node_id),
peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg, 38)));
Self::do_attempt_write_data(&mut descriptor, peer);
},
+ MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } => {
+ log_trace!(self, "Handling SendChannelReestablish event in peer_handler for node {} for channel {}",
+ log_pubkey!(node_id),
+ log_bytes!(msg.channel_id));
+ let (mut descriptor, peer) = get_peer_for_forwarding!(node_id, {
+ //TODO: Do whatever we're gonna do for handling dropped messages
+ });
+ peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg, 136)));
+ Self::do_attempt_write_data(&mut descriptor, peer);
+ },
MessageSendEvent::BroadcastChannelAnnouncement { ref msg, ref update_msg } => {
log_trace!(self, "Handling BroadcastChannelAnnouncement event in peer_handler for short channel id {}", msg.contents.short_channel_id);
if self.message_handler.route_handler.handle_channel_announcement(msg).is_ok() && self.message_handler.route_handler.handle_channel_update(update_msg).is_ok() {