Minor fixes, testing server peer count.

This commit is contained in:
Ignotus Peverell 2016-12-13 16:05:24 -08:00
parent 7bea7341ab
commit 19a700b81e
No known key found for this signature in database
GPG key ID: 99CD25F39F8F8211
3 changed files with 15 additions and 6 deletions

View file

@ -1,5 +1,5 @@
[package]
name = "grin_p2p_fut"
name = "grin_p2p"
version = "0.1.0"
authors = ["Ignotus Peverell <igno.peverell@protonmail.com>"]

View file

@ -117,9 +117,9 @@ impl Server {
pub fn connect_peer(&self,
addr: SocketAddr,
h: reactor::Handle)
-> Box<Future<Item = (), Error = Error>> {
let socket = TcpStream::connect(&addr, &h).map_err(|e| Error::IOErr(e));
-> Box<Future<Item = (), Error = ()>> {
let peers = self.peers.clone();
let socket = TcpStream::connect(&addr, &h).map_err(|e| Error::IOErr(e));
let request = socket.and_then(move |socket| {
let peers = peers.clone();
@ -128,10 +128,15 @@ impl Server {
let peer_connect = add_to_peers(peers, Peer::connect(socket, &Handshake::new()));
with_timeout(Box::new(peer_connect), &h)
})
.and_then(|(socket, peer)| peer.run(socket, &DummyAdapter {}));
.and_then(|(socket, peer)| peer.run(socket, &DummyAdapter {}))
.map_err(|_| ());
Box::new(request)
}
pub fn peers_count(&self) -> u32 {
self.peers.read().unwrap().len() as u32
}
/// Stops the server. Disconnect from all peers at the same time.
pub fn stop(self) {
let peers = self.peers.write().unwrap();

View file

@ -13,7 +13,7 @@
// limitations under the License.
extern crate grin_core as core;
extern crate grin_p2p_fut as p2p;
extern crate grin_p2p as p2p;
extern crate env_logger;
extern crate futures;
extern crate tokio_core;
@ -60,7 +60,11 @@ fn peer_handshake() {
assert!(sent > 0);
assert!(recv > 0);
Ok(())
}).and_then(|_| {server.stop(); Ok(())})
}).and_then(|_| {
assert!(server.peers_count() > 0);
server.stop();
Ok(())
})
}).map_err(|e| {
panic!("Client connection failed: {}", e);
}));