X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=rust-lightning;a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Ffunctional_test_utils.rs;h=9475728d08c022ae45a02c8c06b8d8e9fba7f4c6;hp=53f86c2795395a5710f0f08c8bd7ec675d317339;hb=7ec98e6206f59330327b25d5460048579b47b9ce;hpb=8467223a5d7ea744c2af8557ed2e6a7a20991bdd diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs index 53f86c27..9475728d 100644 --- a/lightning/src/ln/functional_test_utils.rs +++ b/lightning/src/ln/functional_test_utils.rs @@ -7,7 +7,7 @@ use chain::keysinterface::KeysInterface; use ln::channelmanager::{ChannelManager, ChannelManagerReadArgs, RAACommitmentOrder, PaymentPreimage, PaymentHash, PaymentSecret, PaymentSendFailure}; use ln::channelmonitor::{ChannelMonitor, ManyChannelMonitor}; use routing::router::{Route, get_route}; -use routing::network_graph::{NetGraphMsgHandler, NetGraphMsgHandlerReadArgs}; +use routing::network_graph::{NetGraphMsgHandler, NetworkGraph}; use ln::features::InitFeatures; use ln::msgs; use ln::msgs::{ChannelMessageHandler,RoutingMessageHandler}; @@ -18,7 +18,7 @@ use util::events::{Event, EventsProvider, MessageSendEvent, MessageSendEventsPro use util::errors::APIError; use util::logger::Logger; use util::config::UserConfig; -use util::ser::{ReadableArgs, Writeable}; +use util::ser::{ReadableArgs, Writeable, Readable}; use bitcoin::util::hash::BitcoinHash; use bitcoin::blockdata::block::BlockHeader; @@ -36,7 +36,7 @@ use rand::{thread_rng,Rng}; use std::cell::RefCell; use std::rc::Rc; -use std::sync::{Arc, Mutex}; +use std::sync::{Arc, Mutex, RwLock}; use std::mem; use std::collections::HashMap; @@ -102,11 +102,13 @@ impl<'a, 'b, 'c> Drop for Node<'a, 'b, 'c> { // Check that if we serialize the Router, we can deserialize it again. { let mut w = test_utils::TestVecWriter(Vec::new()); - self.net_graph_msg_handler.write(&mut w).unwrap(); - let net_graph_msg_handler = NetGraphMsgHandler::read(&mut ::std::io::Cursor::new(&w.0), NetGraphMsgHandlerReadArgs { - chain_monitor: Arc::clone(&self.chain_monitor) as Arc, - logger: Arc::clone(&self.logger) as Arc - }).unwrap(); + let network_graph_ser = self.net_graph_msg_handler.network_graph.read().unwrap(); + network_graph_ser.write(&mut w).unwrap(); + let network_graph_deser = ::read(&mut ::std::io::Cursor::new(&w.0)).unwrap(); + let net_graph_msg_handler = NetGraphMsgHandler::from_net_graph( + Arc::clone(&self.chain_monitor) as Arc, + Arc::clone(&self.logger) as Arc, RwLock::new(network_graph_deser) + ); let mut chan_progress = 0; loop { let orig_announcements = self.net_graph_msg_handler.get_next_channel_announcements(chan_progress, 255);