diff options
-rw-r--r-- | Cargo.lock | 2 | ||||
-rw-r--r-- | ffi/Cargo.toml | 2 | ||||
-rw-r--r-- | ffi/src/net.rs | 19 |
3 files changed, 15 insertions, 8 deletions
@@ -1975,7 +1975,7 @@ dependencies = [ "sequoia-net", "sequoia-openpgp", "sequoia-store", - "tokio-core", + "tokio 0.2.22", ] [[package]] diff --git a/ffi/Cargo.toml b/ffi/Cargo.toml index 8b672eaf..504d0cce 100644 --- a/ffi/Cargo.toml +++ b/ffi/Cargo.toml @@ -32,7 +32,7 @@ lazy_static = "1.0.0" libc = "0.2.33" memsec = { version = "0.6", default-features = false } native-tls = "0.2.0" -tokio-core = "0.1" +tokio = { version = "0.2", features = ["rt-core", "io-driver", "io-util", "time"] } [dev-dependencies] filetime = "0.2" diff --git a/ffi/src/net.rs b/ffi/src/net.rs index 01263870..3a4abe2f 100644 --- a/ffi/src/net.rs +++ b/ffi/src/net.rs @@ -37,8 +37,6 @@ use native_tls::Certificate; use std::ptr; use std::slice; -use tokio_core; - use sequoia_net::KeyServer; use super::error::Status; @@ -125,8 +123,8 @@ fn sq_keyserver_get(ctx: *mut Context, let ks = ffi_param_ref_mut!(ks); let id = id.ref_raw(); - let mut core = ffi_try_or!(tokio_core::reactor::Core::new(), None); - core.run(ks.get(&id)).move_into_raw(Some(ctx.errp())) + let mut core = ffi_try_or!(basic_runtime(), None); + core.block_on(ks.get(&id)).move_into_raw(Some(ctx.errp())) } /// Sends the given key to the server. @@ -142,7 +140,16 @@ fn sq_keyserver_send(ctx: *mut Context, let ks = ffi_param_ref_mut!(ks); let cert = cert.ref_raw(); - ffi_try_status!(tokio_core::reactor::Core::new() + ffi_try_status!(basic_runtime() .map_err(|e| e.into()) - .and_then(|mut core| core.run(ks.send(cert)))) + .and_then(|mut rt| rt.block_on(ks.send(cert)))) +} + +/// Constructs a basic Tokio runtime. +fn basic_runtime() -> tokio::io::Result<tokio::runtime::Runtime> { + tokio::runtime::Builder::new() + .basic_scheduler() + .enable_io() + .enable_time() + .build() } |