diff --git a/Cargo.lock b/Cargo.lock index 0f8fdebf2..f85db607e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -161,7 +161,7 @@ dependencies = [ "lazycell", "log", "peeking_take_while", - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", "regex", "rustc-hash", @@ -453,7 +453,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39858aa5bac06462d4dd4b9164848eb81ffc4aa5c479746393598fd193afa227" dependencies = [ "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -503,7 +503,7 @@ dependencies = [ "log", "num 0.3.1", "owning_ref", - "syn 1.0.31", + "syn 1.0.54", "unicode-segmentation", "unicode-width", "wasmer_enumset", @@ -537,10 +537,10 @@ checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", "strsim 0.9.3", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -551,7 +551,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -637,9 +637,9 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57001dfb2532f5a103ff869656887fae9a8defa7d236f3e39d2ee86ed629ad7" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -680,9 +680,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", "synstructure 0.12.4", ] @@ -815,9 +815,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -848,7 +848,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project", + "pin-project 0.4.20", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -1269,6 +1269,12 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + [[package]] name = "humansize" version = "1.1.0" @@ -1286,9 +1292,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.6" +version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e7655b9594024ad0ee439f3b5a7299369dc2a3f459b47c696f9ff676f9aa1f" +checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" dependencies = [ "bytes", "futures-channel", @@ -1298,13 +1304,13 @@ dependencies = [ "http", "http-body", "httparse", + "httpdate", "itoa", - "log", - "pin-project", + "pin-project 1.0.2", "socket2", - "time", "tokio", "tower-service", + "tracing", "want", ] @@ -1972,7 +1978,16 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e75373ff9037d112bb19bc61333a06a159eaeb217660dcfbea7d88e1db823919" dependencies = [ - "pin-project-internal", + "pin-project-internal 0.4.20", +] + +[[package]] +name = "pin-project" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7" +dependencies = [ + "pin-project-internal 1.0.2", ] [[package]] @@ -1981,9 +1996,20 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10b4b44893d3c370407a1d6a5cfde7c41ae0478e31c516c85f67eb3adc51be6d" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.54", ] [[package]] @@ -1992,6 +2018,12 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" +[[package]] +name = "pin-project-lite" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c" + [[package]] name = "pin-utils" version = "0.1.0" @@ -2051,9 +2083,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.18" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" dependencies = [ "unicode-xid 0.2.0", ] @@ -2079,7 +2111,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", ] [[package]] @@ -2487,9 +2519,9 @@ version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -2625,11 +2657,11 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.31" +version = "1.0.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6" +checksum = "9a2af957a63d6bd42255c359c93d9bfdb97076bd3b820897ce55ffbfbf107f44" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", "unicode-xid 0.2.0", ] @@ -2652,9 +2684,9 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", "unicode-xid 0.2.0", ] @@ -2742,9 +2774,9 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.21" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" +checksum = "a6d7ad61edd59bfcc7e80dababf0f4aed2e6d5e0ba1659356ae889752dfc12ff" dependencies = [ "bytes", "fnv", @@ -2757,7 +2789,7 @@ dependencies = [ "mio-named-pipes", "mio-uds", "num_cpus", - "pin-project-lite", + "pin-project-lite 0.1.7", "signal-hook-registry", "slab", "tokio-macros", @@ -2776,13 +2808,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" +checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -2807,7 +2839,7 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project-lite", + "pin-project-lite 0.1.7", "tokio", ] @@ -2821,7 +2853,7 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project-lite", + "pin-project-lite 0.1.7", "tokio", ] @@ -2840,6 +2872,27 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" +[[package]] +name = "tracing" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" +dependencies = [ + "cfg-if 1.0.0", + "log", + "pin-project-lite 0.2.0", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" +dependencies = [ + "lazy_static", +] + [[package]] name = "traitobject" version = "0.1.0" @@ -3017,9 +3070,9 @@ dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", "wasm-bindgen-shared", ] @@ -3039,9 +3092,9 @@ version = "0.2.63" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3156052d8ec77142051a533cdd686cba889537b213f948cd1d20869926e68e92" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3069,9 +3122,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1b32d98e11194200baf6d3f85eb2d6cfe56f6d9af0dd617f90ca48f958a88" dependencies = [ "darling", - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", ] [[package]] @@ -3222,9 +3275,9 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.24", "quote 1.0.7", - "syn 1.0.31", + "syn 1.0.54", "synstructure 0.12.4", ] diff --git a/api/src/rest.rs b/api/src/rest.rs index a9b38ddc5..c94c73a91 100644 --- a/api/src/rest.rs +++ b/api/src/rest.rs @@ -36,6 +36,7 @@ use std::sync::Arc; use std::{io, thread}; use tokio::net::TcpListener; use tokio::runtime::Runtime; +use tokio::stream::StreamExt; use tokio_rustls::TlsAcceptor; /// Errors that can be returned by an ApiEndpoint implementation. @@ -253,7 +254,10 @@ impl ApiServer { .spawn(move || { let server = async move { let mut listener = TcpListener::bind(&addr).await.expect("failed to bind"); - let listener = listener.incoming().and_then(move |s| acceptor.accept(s)); + let listener = listener + .incoming() + .and_then(move |s| acceptor.accept(s)) + .filter(|r| r.is_ok()); let server = Server::builder(accept::from_stream(listener)).serve( make_service_fn(move |_| {