Swap read_event read type for a slice isntead of a Vec
authorMatt Corallo <git@bluematt.me>
Sat, 1 Feb 2020 01:57:01 +0000 (20:57 -0500)
committerMatt Corallo <git@bluematt.me>
Mon, 3 Feb 2020 02:38:53 +0000 (21:38 -0500)
It looks like we don't currently use the Vec as a Vec, and can
happily take a slice, which makes things easier on the calling
side.

fuzz/src/full_stack.rs
lightning-net-tokio/src/lib.rs
lightning/src/ln/peer_handler.rs

index e29e24ca4660456dfe430ce81e698509b6d0ec25..2237e91333b34d47cb875b3ee1bed456bef160d2 100644 (file)
@@ -380,7 +380,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
                        3 => {
                                let peer_id = get_slice!(1)[0];
                                if !peers.borrow()[peer_id as usize] { return; }
-                               match loss_detector.handler.read_event(&mut Peer{id: peer_id, peers_connected: &peers}, get_slice!(get_slice!(1)[0]).to_vec()) {
+                               match loss_detector.handler.read_event(&mut Peer{id: peer_id, peers_connected: &peers}, get_slice!(get_slice!(1)[0])) {
                                        Ok(res) => assert!(!res),
                                        Err(_) => { peers.borrow_mut()[peer_id as usize] = false; }
                                }
index 47e179189789f953f0944b017b0bc3a5ff9faaec..ca12cad406ee6fb52613247c6b0eb0a26bb1ded2 100644 (file)
@@ -62,7 +62,7 @@ impl Connection {
                        //TODO: There's a race where we don't meet the requirements of disconnect_socket if its
                        //called right here, after we release the us_ref lock in the scope above, but before we
                        //call read_event!
-                       match peer_manager.read_event(&mut SocketDescriptor::new(us_ref.clone(), peer_manager.clone()), pending_read) {
+                       match peer_manager.read_event(&mut SocketDescriptor::new(us_ref.clone(), peer_manager.clone()), &pending_read) {
                                Ok(pause_read) => {
                                        if pause_read {
                                                let mut lock = us_ref.lock().unwrap();
@@ -181,7 +181,7 @@ impl<CMH: ChannelMessageHandler> peer_handler::SocketDescriptor for SocketDescri
                                        }
                                        if !read_data.is_empty() {
                                                let mut us_clone = $us_ref.clone();
-                                               match $us_ref.peer_manager.read_event(&mut us_clone, read_data) {
+                                               match $us_ref.peer_manager.read_event(&mut us_clone, &read_data) {
                                                        Ok(pause_read) => {
                                                                if pause_read { return Ok(()); }
                                                        },
index a0ab8ffcebe159ea260e8fc41eab3b2b310de235..f715e26a07b1734f5e1a00f1eec77c39acfa610b 100644 (file)
@@ -445,7 +445,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
        /// this file descriptor has resume_read set (preventing DoS issues in the send buffer).
        ///
        /// Panics if the descriptor was not previously registered in a new_*_connection event.
-       pub fn read_event(&self, peer_descriptor: &mut Descriptor, data: Vec<u8>) -> Result<bool, PeerHandleError> {
+       pub fn read_event(&self, peer_descriptor: &mut Descriptor, data: &[u8]) -> Result<bool, PeerHandleError> {
                match self.do_read_event(peer_descriptor, data) {
                        Ok(res) => Ok(res),
                        Err(e) => {
@@ -455,7 +455,7 @@ impl<Descriptor: SocketDescriptor, CM: Deref> PeerManager<Descriptor, CM> where
                }
        }
 
-       fn do_read_event(&self, peer_descriptor: &mut Descriptor, data: Vec<u8>) -> Result<bool, PeerHandleError> {
+       fn do_read_event(&self, peer_descriptor: &mut Descriptor, data: &[u8]) -> Result<bool, PeerHandleError> {
                let pause_read = {
                        let mut peers_lock = self.peers.lock().unwrap();
                        let peers = &mut *peers_lock;