Use tokio::run() to run the example server

This commit is contained in:
Dirkjan Ochtman
2018-05-30 15:54:51 +02:00
parent 94f31ffef3
commit 7db2c3753a
2 changed files with 7 additions and 11 deletions
+2 -4
View File
@@ -1,6 +1,7 @@
extern crate env_logger;
extern crate quinn;
extern crate rustls;
extern crate tokio;
use rustls::internal::pemfile;
use std::{fs::File, io::BufReader};
@@ -26,8 +27,5 @@ fn main() {
let tls_config = quinn::tls::build_server_config(certs, key[0].clone());
env_logger::init();
quinn::Server::new("0.0.0.0", 4433, tls_config)
.unwrap()
.run()
.unwrap();
tokio::run(quinn::Server::new("0.0.0.0", 4433, tls_config).unwrap());
}
+5 -7
View File
@@ -40,10 +40,6 @@ impl Server {
})
}
pub fn run(&mut self) -> QuicResult<()> {
self.wait()
}
fn received(&mut self, addr: SocketAddr, len: usize) -> QuicResult<()> {
let connections = &mut self.connections;
let packet = &mut self.in_buf[..len];
@@ -98,16 +94,18 @@ impl Server {
impl Future for Server {
type Item = ();
type Error = QuicError;
type Error = ();
fn poll(&mut self) -> Poll<(), QuicError> {
fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
let mut waiting;
loop {
waiting = true;
match self.socket.poll_recv_from(&mut self.in_buf) {
Ok(Async::Ready((len, addr))) => {
waiting = false;
self.received(addr, len)?;
if let Err(e) = self.received(addr, len) {
error!("error while handling received packet: {:?}", e);
}
}
Ok(Async::NotReady) => {}
Err(e) => error!("Server RECV ERROR: {:?}", e),