Fix a missing loop in SwarmFuture::poll (#272)

This commit is contained in:
Pierre Krieger 2018-06-25 14:29:15 +02:00 committed by GitHub
parent 0f0ae368b8
commit de39e321e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -191,19 +191,22 @@ where
fn poll(&mut self) -> Poll<Self::Item, Self::Error> { fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
let handler = &mut self.handler; let handler = &mut self.handler;
match self.next_incoming.poll() { loop {
Ok(Async::Ready(connec)) => { match self.next_incoming.poll() {
debug!("Swarm received new multiplexed incoming connection"); Ok(Async::Ready(connec)) => {
self.next_incoming = self.transport.clone().next_incoming(); debug!("Swarm received new multiplexed incoming connection");
let connec = connec.map(|(out, maf)| { self.next_incoming = self.transport.clone().next_incoming();
(out, Box::new(maf) as Box<Future<Item = Multiaddr, Error = IoError>>) let connec = connec.map(|(out, maf)| {
}); (out, Box::new(maf) as Box<Future<Item = Multiaddr, Error = IoError>>)
self.listeners_upgrade.push(Box::new(connec) as Box<_>); });
} self.listeners_upgrade.push(Box::new(connec) as Box<_>);
Ok(Async::NotReady) => {} }
Err(err) => { Ok(Async::NotReady) => break,
debug!("Error in multiplexed incoming connection: {:?}", err); Err(err) => {
self.next_incoming = self.transport.clone().next_incoming(); debug!("Error in multiplexed incoming connection: {:?}", err);
self.next_incoming = self.transport.clone().next_incoming();
break;
}
} }
} }