From c3ea11e82d856817d123ea4a9a9d3576b17817a7 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Tue, 17 Jul 2018 22:59:24 +0300 Subject: First round of runtime refactoring --- src/main.rs | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index a56c7fd..2b4826f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,10 @@ extern crate indoc; extern crate clap; extern crate colored; +extern crate tokio; +extern crate hyper; +extern crate futures; + use colored::*; use clap::{Arg, App}; use std::path::Path; @@ -12,9 +16,15 @@ use std::process; use std::thread; use std::sync::mpsc; +use hyper::Server; +use hyper::service::service_fn; +use tokio::runtime::Runtime; +use futures::Future; + mod cli; mod upnp; mod serve; +mod notify; fn main() { let app = App::new(env!("CARGO_PKG_NAME")) @@ -48,14 +58,20 @@ fn main() { process::exit(1); } + let addr = "0.0.0.0:51497".parse().unwrap(); - let _http = thread::spawn(move || { - serve::run(); - }); + let server = Server::bind(&addr) + .serve(|| service_fn(serve::response_examples)) + .map_err(|e| eprintln!("server error: {}", e)); - let _udp = thread::spawn(move || { - upnp::discover(); - }); + println!("Listening on http://{}", addr); + + let mut rt = Runtime::new().unwrap(); + rt.spawn(server); + + // let _udp = thread::spawn(move || { + // upnp::discover(); + // }); let (tx, rx) = mpsc::channel(); let child = thread::spawn(move || { -- cgit v1.3.1