Collect all lightning std::sync imports under crate::sync
[rust-lightning] / lightning / src / ln / peer_handler.rs
index 5fab2c6009c6ceec7a801fc3c9e5420053e1a491..0ec24fbf84c3ad31bfdf32bff421ffa310b9873d 100644 (file)
@@ -33,7 +33,7 @@ use routing::network_graph::NetGraphMsgHandler;
 use prelude::*;
 use alloc::collections::LinkedList;
 use alloc::fmt::Debug;
-use std::sync::{Arc, Mutex};
+use sync::{Arc, Mutex};
 use core::sync::atomic::{AtomicUsize, Ordering};
 use core::{cmp, hash, fmt, mem};
 use core::ops::Deref;
@@ -717,15 +717,19 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
                                                                                        match e.action {
                                                                                                msgs::ErrorAction::DisconnectPeer { msg: _ } => {
                                                                                                        //TODO: Try to push msg
-                                                                                                       log_debug!(self.logger, "Got Err handling message, disconnecting peer with: {}", e.err);
+                                                                                                       log_debug!(self.logger, "Error handling message; disconnecting peer with: {}", e.err);
                                                                                                        return Err(PeerHandleError{ no_connection_possible: false });
                                                                                                },
+                                                                                               msgs::ErrorAction::IgnoreAndLog(level) => {
+                                                                                                       log_given_level!(self.logger, level, "Error handling message; ignoring: {}", e.err);
+                                                                                                       continue
+                                                                                               },
                                                                                                msgs::ErrorAction::IgnoreError => {
-                                                                                                       log_debug!(self.logger, "Got ignored error handling message: {}", e.err);
+                                                                                                       log_debug!(self.logger, "Error handling message; ignoring: {}", e.err);
                                                                                                        continue;
                                                                                                },
                                                                                                msgs::ErrorAction::SendErrorMessage { msg } => {
-                                                                                                       log_debug!(self.logger, "Got Err handling message, sending Error message with: {}", e.err);
+                                                                                                       log_debug!(self.logger, "Error handling message; sending error message with: {}", e.err);
                                                                                                        self.enqueue_message(peer, &msg);
                                                                                                        continue;
                                                                                                },
@@ -1260,6 +1264,12 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
                                                        self.forward_broadcast_msg(peers, &wire::Message::ChannelUpdate(msg), None);
                                                }
                                        },
+                                       MessageSendEvent::SendChannelUpdate { ref node_id, ref msg } => {
+                                               log_trace!(self.logger, "Handling SendChannelUpdate event in peer_handler for node {} for channel {}",
+                                                               log_pubkey!(node_id), msg.contents.short_channel_id);
+                                               let peer = get_peer_for_forwarding!(node_id);
+                                               peer.pending_outbound_buffer.push_back(peer.channel_encryptor.encrypt_message(&encode_msg!(msg)));
+                                       },
                                        MessageSendEvent::PaymentFailureNetworkUpdate { ref update } => {
                                                self.message_handler.route_handler.handle_htlc_fail_channel_update(update);
                                        },
@@ -1284,7 +1294,12 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
                                                                        self.message_handler.chan_handler.peer_disconnected(&node_id, false);
                                                                }
                                                        },
-                                                       msgs::ErrorAction::IgnoreError => {},
+                                                       msgs::ErrorAction::IgnoreAndLog(level) => {
+                                                               log_given_level!(self.logger, level, "Received a HandleError event to be ignored for node {}", log_pubkey!(node_id));
+                                                       },
+                                                       msgs::ErrorAction::IgnoreError => {
+                                                               log_debug!(self.logger, "Received a HandleError event to be ignored for node {}", log_pubkey!(node_id));
+                                                       },
                                                        msgs::ErrorAction::SendErrorMessage { ref msg } => {
                                                                log_trace!(self.logger, "Handling SendErrorMessage HandleError event in peer_handler for node {} with message {}",
                                                                                log_pubkey!(node_id),
@@ -1432,7 +1447,7 @@ mod tests {
        use bitcoin::secp256k1::key::{SecretKey, PublicKey};
 
        use prelude::*;
-       use std::sync::{Arc, Mutex};
+       use sync::{Arc, Mutex};
        use core::sync::atomic::Ordering;
 
        #[derive(Clone)]