summaryrefslogtreecommitdiffstats
path: root/ffi
diff options
context:
space:
mode:
authorIgor Matuszewski <igor@sequoia-pgp.org>2020-10-20 22:35:56 +0200
committerIgor Matuszewski <igor@sequoia-pgp.org>2020-10-23 12:05:54 +0200
commitc034cee8ff87c2d8e96952eea073d33c8be80d51 (patch)
treeaf9ed3d4dec492a40454a354509a2effb60c7af1 /ffi
parent3fd21d2f10b9d2946c7c6fd5af8cc38a69402996 (diff)
ffi: Migrate to tokio 0.2
Diffstat (limited to 'ffi')
-rw-r--r--ffi/Cargo.toml2
-rw-r--r--ffi/src/net.rs19
2 files changed, 14 insertions, 7 deletions
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()
}