From 96f044d2bfa75db54bb057ef4440e05f625f62cb Mon Sep 17 00:00:00 2001 From: Tyera Eulberg Date: Wed, 20 Jun 2018 12:33:35 -0600 Subject: [PATCH] Clean up; add new_from_server_addr routine --- src/bin/drone.rs | 9 ++---- src/drone.rs | 81 +++++++++++++++++++----------------------------- 2 files changed, 35 insertions(+), 55 deletions(-) diff --git a/src/bin/drone.rs b/src/bin/drone.rs index 71a51071d4..81f2081f54 100644 --- a/src/bin/drone.rs +++ b/src/bin/drone.rs @@ -99,15 +99,12 @@ fn main() { let mut drone_addr: SocketAddr = "0.0.0.0:9900".parse().unwrap(); drone_addr.set_ip(get_ip_addr().unwrap()); - let mut transactions_addr = drone_addr.clone(); - transactions_addr.set_port(8000); - let mut requests_addr = drone_addr.clone(); - requests_addr.set_port(8003); + let mut server_addr = drone_addr.clone(); + server_addr.set_port(8000); let drone = Arc::new(Mutex::new(Drone::new( mint_keypair, drone_addr, - transactions_addr, - requests_addr, + server_addr, time_slice, request_cap, ))); diff --git a/src/drone.rs b/src/drone.rs index e50cd10a68..f483e980e2 100644 --- a/src/drone.rs +++ b/src/drone.rs @@ -35,8 +35,7 @@ pub struct Drone { mint_keypair: KeyPair, ip_cache: Vec, _airdrop_addr: SocketAddr, - transactions_addr: SocketAddr, - requests_addr: SocketAddr, + server_addr: SocketAddr, pub time_slice: Duration, request_cap: u64, pub request_current: u64, @@ -46,8 +45,7 @@ impl Drone { pub fn new( mint_keypair: KeyPair, _airdrop_addr: SocketAddr, - transactions_addr: SocketAddr, - requests_addr: SocketAddr, + server_addr: SocketAddr, time_input: Option, request_cap_input: Option, ) -> Drone { @@ -63,20 +61,21 @@ impl Drone { mint_keypair, ip_cache: Vec::new(), _airdrop_addr, - transactions_addr, - requests_addr, + server_addr, time_slice, request_cap, request_current: 0, } } + pub fn new_from_server_addr(&mut self, addr_type: ServerAddr) -> SocketAddr { + let mut new_addr = self.server_addr.clone(); + new_addr.set_port(self.server_addr.port() + addr_type as u16); + new_addr + } + pub fn check_request_count(&mut self) -> bool { - if self.request_current <= self.request_cap { - true - } else { - false - } + self.request_current <= self.request_cap } pub fn clear_request_count(&mut self) { @@ -112,9 +111,9 @@ impl Drone { let transactions_socket = UdpSocket::bind("0.0.0.0:0").unwrap(); let mut client = ThinClient::new( - self.requests_addr, + self.new_from_server_addr(ServerAddr::RequestsAddr), requests_socket, - self.transactions_addr, + self.new_from_server_addr(ServerAddr::TransactionsAddr), transactions_socket, ); let last_id = client.get_last_id(); @@ -149,6 +148,14 @@ impl Drone { } } +pub enum ServerAddr { + TransactionsAddr, + GossipAddr, + ReplicateAddr, + RequestsAddr, + RepaidAddr, +} + #[cfg(test)] mod tests { use bank::Bank; @@ -172,18 +179,8 @@ mod tests { let keypair = KeyPair::new(); let mut addr: SocketAddr = "0.0.0.0:9900".parse().unwrap(); addr.set_ip(get_ip_addr().unwrap()); - let mut transactions_addr = addr.clone(); - transactions_addr.set_port(8000); - let mut requests_addr = addr.clone(); - requests_addr.set_port(8003); - let mut drone = Drone::new( - keypair, - addr, - transactions_addr, - requests_addr, - None, - Some(3), - ); + let server_addr = addr.clone(); + let mut drone = Drone::new(keypair, addr, server_addr, None, Some(3)); assert!(drone.check_request_count()); drone.request_current = 4; assert!(!drone.check_request_count()); @@ -194,15 +191,12 @@ mod tests { let keypair = KeyPair::new(); let mut addr: SocketAddr = "0.0.0.0:9900".parse().unwrap(); addr.set_ip(get_ip_addr().unwrap()); - let mut transactions_addr = addr.clone(); - transactions_addr.set_port(8000); - let mut requests_addr = addr.clone(); - requests_addr.set_port(8003); - let mut drone = Drone::new(keypair, addr, transactions_addr, requests_addr, None, None); + let server_addr = addr.clone(); + let mut drone = Drone::new(keypair, addr, server_addr, None, None); drone.request_current = drone.request_current + 256; - assert!(drone.request_current == 256); + assert_eq!(drone.request_current, 256); drone.clear_request_count(); - assert!(drone.request_current == 0); + assert_eq!(drone.request_current, 0); } #[test] @@ -210,11 +204,8 @@ mod tests { let keypair = KeyPair::new(); let mut addr: SocketAddr = "0.0.0.0:9900".parse().unwrap(); addr.set_ip(get_ip_addr().unwrap()); - let mut transactions_addr = addr.clone(); - transactions_addr.set_port(8000); - let mut requests_addr = addr.clone(); - requests_addr.set_port(8003); - let mut drone = Drone::new(keypair, addr, transactions_addr, requests_addr, None, None); + let server_addr = addr.clone(); + let mut drone = Drone::new(keypair, addr, server_addr, None, None); let ip = "127.0.0.1".parse().expect("create IpAddr from string"); assert_eq!(drone.ip_cache.len(), 0); drone.add_ip_to_cache(ip); @@ -227,11 +218,8 @@ mod tests { let keypair = KeyPair::new(); let mut addr: SocketAddr = "0.0.0.0:9900".parse().unwrap(); addr.set_ip(get_ip_addr().unwrap()); - let mut transactions_addr = addr.clone(); - transactions_addr.set_port(8000); - let mut requests_addr = addr.clone(); - requests_addr.set_port(8003); - let mut drone = Drone::new(keypair, addr, transactions_addr, requests_addr, None, None); + let server_addr = addr.clone(); + let mut drone = Drone::new(keypair, addr, server_addr, None, None); let ip = "127.0.0.1".parse().expect("create IpAddr from string"); assert_eq!(drone.ip_cache.len(), 0); drone.add_ip_to_cache(ip); @@ -246,17 +234,13 @@ mod tests { let keypair = KeyPair::new(); let mut addr: SocketAddr = "0.0.0.0:9900".parse().unwrap(); addr.set_ip(get_ip_addr().unwrap()); - let mut transactions_addr = addr.clone(); - transactions_addr.set_port(8000); - let mut requests_addr = addr.clone(); - requests_addr.set_port(8003); + let server_addr = addr.clone(); let time_slice: Option = None; let request_cap: Option = None; let drone = Drone::new( keypair, addr, - transactions_addr, - requests_addr, + server_addr, time_slice, request_cap, ); @@ -295,7 +279,6 @@ mod tests { alice.keypair(), addr, leader.data.transactions_addr, - leader.data.requests_addr, None, None, );