Supporting hostnames as peers

This commit is contained in:
Dennis Schwerdel 2015-12-22 22:44:25 +01:00
parent fa4547a309
commit cb00c2f30a
2 changed files with 14 additions and 6 deletions

View File

@ -6,6 +6,7 @@ This project follows [semantic versioning](http://semver.org).
- [changed] Logging more verbosely - [changed] Logging more verbosely
- [fixed] Removing NULL-bytes from interface name - [fixed] Removing NULL-bytes from interface name
- [fixed] Supporting hostnames as peers
### v0.4 (2015-12-22) ### v0.4 (2015-12-22)

View File

@ -150,8 +150,8 @@ impl<P: Protocol> GenericCloud<P> {
pub fn connect<Addr: ToSocketAddrs+fmt::Display>(&mut self, addr: Addr, reconnect: bool) -> Result<(), Error> { pub fn connect<Addr: ToSocketAddrs+fmt::Display>(&mut self, addr: Addr, reconnect: bool) -> Result<(), Error> {
if let Ok(mut addrs) = addr.to_socket_addrs() { if let Ok(mut addrs) = addr.to_socket_addrs() {
while let Some(addr) = addrs.next() { while let Some(a) = addrs.next() {
if self.peers.contains(&addr) || self.blacklist_peers.contains(&addr) { if self.peers.contains(&a) || self.blacklist_peers.contains(&a) {
return Ok(()); return Ok(());
} }
} }
@ -159,14 +159,21 @@ impl<P: Protocol> GenericCloud<P> {
debug!("Connecting to {}", addr); debug!("Connecting to {}", addr);
if reconnect { if reconnect {
if let Ok(mut addrs) = addr.to_socket_addrs() { if let Ok(mut addrs) = addr.to_socket_addrs() {
while let Some(addr) = addrs.next() { while let Some(a) = addrs.next() {
self.reconnect_peers.push(addr); self.reconnect_peers.push(a);
} }
} }
} }
let addrs = self.addresses.clone(); let subnets = self.addresses.clone();
let node_id = self.node_id.clone(); let node_id = self.node_id.clone();
self.send_msg(addr, &mut Message::Init(0, node_id, addrs)) let mut msg = Message::Init(0, node_id, subnets);
if let Ok(mut addrs) = addr.to_socket_addrs() {
while let Some(a) = addrs.next() {
//Ignore error this time
self.send_msg(a, &mut msg).ok();
}
}
Ok(())
} }
fn housekeep(&mut self) -> Result<(), Error> { fn housekeep(&mut self) -> Result<(), Error> {