}, 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));
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, 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() {