port across "simple_sync" changes from testnet1 branch (#409)

* port across "simple_sync" changes from testnet1 branch
Cleanup direct refs to peer map or peer store
P2P server acts as a facade, handling the list of connected peers
and the storage of their information. Everything else goes through
the p2p server instead of having a peer map reference or going
straight to the store.
Fix p2p tests

* fix "monitoring peers" log msg (use connected_peers)
This commit is contained in:
AntiochP
2017-11-30 10:27:50 -05:00
committed by GitHub
parent 90a1187bf7
commit 442ef3b255
12 changed files with 300 additions and 392 deletions
+4 -5
View File
@@ -229,12 +229,12 @@ impl Handler for SumTreeHandler {
}
pub struct PeersAllHandler {
pub peer_store: Arc<p2p::PeerStore>,
pub p2p_server: Arc<p2p::Server>,
}
impl Handler for PeersAllHandler {
fn handle(&self, _req: &mut Request) -> IronResult<Response> {
let peers = &self.peer_store.all_peers();
let peers = &self.p2p_server.all_peers();
json_response_pretty(&peers)
}
}
@@ -246,7 +246,7 @@ pub struct PeersConnectedHandler {
impl Handler for PeersConnectedHandler {
fn handle(&self, _req: &mut Request) -> IronResult<Response> {
let mut peers = vec![];
for p in &self.p2p_server.all_peers() {
for p in &self.p2p_server.connected_peers() {
let p = p.read().unwrap();
let peer_info = p.info.clone();
peers.push(peer_info);
@@ -374,7 +374,6 @@ pub fn start_rest_apis<T>(
chain: Arc<chain::Chain>,
tx_pool: Arc<RwLock<pool::TransactionPool<T>>>,
p2p_server: Arc<p2p::Server>,
peer_store: Arc<p2p::PeerStore>,
) where
T: pool::BlockChain + Send + Sync + 'static,
{
@@ -396,7 +395,7 @@ pub fn start_rest_apis<T>(
tx_pool: tx_pool.clone(),
};
let peers_all_handler = PeersAllHandler {
peer_store: peer_store.clone(),
p2p_server: p2p_server.clone(),
};
let peers_connected_handler = PeersConnectedHandler {
p2p_server: p2p_server.clone(),