summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ffi-macros/src/lib.rs22
-rw-r--r--ffi/src/core.rs77
-rw-r--r--ffi/src/net.rs44
-rw-r--r--ffi/src/store.rs253
-rw-r--r--ffi/tests/c-tests.rs2
-rw-r--r--openpgp-ffi/src/armor.rs12
-rw-r--r--openpgp-ffi/src/crypto.rs14
-rw-r--r--openpgp-ffi/src/error.rs4
-rw-r--r--openpgp-ffi/src/fingerprint.rs10
-rw-r--r--openpgp-ffi/src/io.rs22
-rw-r--r--openpgp-ffi/src/keyid.rs6
-rw-r--r--openpgp-ffi/src/packet/key.rs12
-rw-r--r--openpgp-ffi/src/packet/mod.rs8
-rw-r--r--openpgp-ffi/src/packet/pkesk.rs4
-rw-r--r--openpgp-ffi/src/packet/signature.rs36
-rw-r--r--openpgp-ffi/src/packet/skesk.rs2
-rw-r--r--openpgp-ffi/src/packet/user_attribute.rs2
-rw-r--r--openpgp-ffi/src/packet/userid.rs10
-rw-r--r--openpgp-ffi/src/parse/mod.rs34
-rw-r--r--openpgp-ffi/src/parse/stream.rs22
-rw-r--r--openpgp-ffi/src/serialize.rs20
-rw-r--r--openpgp-ffi/src/tpk.rs86
-rw-r--r--openpgp-ffi/tests/c-tests.rs2
23 files changed, 342 insertions, 362 deletions
diff --git a/ffi-macros/src/lib.rs b/ffi-macros/src/lib.rs
index 685c448e..bd2997a4 100644
--- a/ffi-macros/src/lib.rs
+++ b/ffi-macros/src/lib.rs
@@ -46,7 +46,7 @@ pub fn extern_fn(attr: TokenStream, item: TokenStream) -> TokenStream {
/// ```rust,ignore
/// #[ffi_catch_abort]
/// #[no_mangle]
-/// pub extern "system" fn sahnetorte() {
+/// pub extern "C" fn sahnetorte() {
/// assert_eq!(2 * 3, 4); // See what happens...
/// }
/// ```
@@ -632,7 +632,7 @@ fn derive_free(span: proc_macro2::Span, prefix: &str, name: &str,
span);
quote! {
/// Frees this object.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #ident #generics (this: *mut #wrapper #generics) {
if this.is_null() {
return;
@@ -667,7 +667,7 @@ fn derive_clone(span: proc_macro2::Span, prefix: &str, name: &str,
span);
quote! {
/// Clones this object.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #ident #generics (this: *const #wrapper #generics)
-> *mut #wrapper #generics {
use ::RefRaw;
@@ -688,7 +688,7 @@ fn derive_equal(span: proc_macro2::Span, prefix: &str, name: &str,
span);
quote! {
/// Compares objects.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #ident #generics (a: *const #wrapper #generics,
b: *const #wrapper #generics)
-> bool {
@@ -711,7 +711,7 @@ fn derive_to_string(span: proc_macro2::Span, prefix: &str, name: &str,
quote! {
/// Returns a human readable description of this object
/// intended for communication with end users.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #ident #generics (this: *const #wrapper #generics)
-> *mut ::libc::c_char {
use ::RefRaw;
@@ -732,7 +732,7 @@ fn derive_debug(span: proc_macro2::Span, prefix: &str, name: &str,
quote! {
/// Returns a human readable description of this object
/// suitable for debugging.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #ident #generics (this: *const #wrapper #generics)
-> *mut ::libc::c_char {
use ::RefRaw;
@@ -752,7 +752,7 @@ fn derive_hash(span: proc_macro2::Span, prefix: &str, name: &str,
span);
quote! {
/// Hashes this object.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #ident #generics (this: *const #wrapper #generics)
-> ::libc::uint64_t {
use ::std::hash::{Hash, Hasher};
@@ -783,7 +783,7 @@ fn derive_parse(span: proc_macro2::Span, prefix: &str, name: &str,
span);
quote! {
/// Parses an object from the given reader.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #from_reader #generics(errp: Option<&mut *mut ::error::Error>,
reader: *mut ::io::Reader)
-> ::Maybe<#wrapper #generics> {
@@ -794,7 +794,7 @@ fn derive_parse(span: proc_macro2::Span, prefix: &str, name: &str,
}
/// Parses an object from the given file.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #from_file #generics(errp: Option<&mut *mut ::error::Error>,
filename: *const ::libc::c_char)
-> ::Maybe<#wrapper #generics> {
@@ -806,7 +806,7 @@ fn derive_parse(span: proc_macro2::Span, prefix: &str, name: &str,
}
/// Parses an object from the given buffer.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #from_bytes #generics(errp: Option<&mut *mut ::error::Error>,
b: *const ::libc::uint8_t, len: ::libc::size_t)
-> ::Maybe<#wrapper #generics> {
@@ -833,7 +833,7 @@ fn derive_serialize(span: proc_macro2::Span, prefix: &str, name: &str,
span);
quote! {
/// Serializes this object.
- #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "system"
+ #[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
fn #ident #generics (errp: Option<&mut *mut ::error::Error>,
this: *const #wrapper #generics,
writer: *mut ::io::Writer)
diff --git a/ffi/src/core.rs b/ffi/src/core.rs
index 8ad3a655..5b139fb4 100644
--- a/ffi/src/core.rs
+++ b/ffi/src/core.rs
@@ -64,9 +64,8 @@ impl Context {
/// Returns the last error.
///
/// Returns and removes the last error from the context.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_last_error(ctx: *mut Context)
- -> *mut ::error::Error {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_last_error(ctx: *mut Context) -> *mut ::error::Error {
let ctx = ffi_param_ref_mut!(ctx);
::std::mem::replace(&mut ctx.e, ptr::null_mut())
}
@@ -79,10 +78,10 @@ pub extern "system" fn sq_context_last_error(ctx: *mut Context)
///
/// Returns `NULL` on errors. If `errp` is not `NULL`, the error is
/// stored there.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_new(domain: *const c_char,
- errp: Option<&mut *mut ::error::Error>)
- -> *mut Context {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_new(domain: *const c_char,
+ errp: Option<&mut *mut ::error::Error>)
+ -> *mut Context {
ffi_make_fry_from_errp!(errp);
let domain = ffi_param_cstr!(domain).to_string_lossy();
@@ -90,8 +89,8 @@ pub extern "system" fn sq_context_new(domain: *const c_char,
}
/// Frees a context.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_free(context: Option<&mut Context>) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_free(context: Option<&mut Context>) {
ffi_free!(context)
}
@@ -104,52 +103,51 @@ pub extern "system" fn sq_context_free(context: Option<&mut Context>) {
/// The configuration is seeded like in `sq_context_new`, but can be
/// modified. A configuration has to be finalized using
/// `sq_config_build()` in order to turn it into a Context.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_configure(domain: *const c_char)
- -> *mut Config {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_configure(domain: *const c_char) -> *mut Config {
let domain = ffi_param_cstr!(domain).to_string_lossy();
Box::into_raw(Box::new(core::Context::configure(&domain)))
}
/// Returns the domain of the context.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_domain(ctx: *const Context) -> *const c_char {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_domain(ctx: *const Context) -> *const c_char {
let ctx = ffi_param_ref!(ctx);
ctx.c.domain().as_bytes().as_ptr() as *const c_char
}
/// Returns the directory containing shared state.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_home(ctx: *const Context) -> *const c_char {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_home(ctx: *const Context) -> *const c_char {
let ctx = ffi_param_ref!(ctx);
ctx.c.home().to_string_lossy().as_ptr() as *const c_char
}
/// Returns the directory containing backend servers.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_lib(ctx: *const Context) -> *const c_char {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_lib(ctx: *const Context) -> *const c_char {
let ctx = ffi_param_ref!(ctx);
ctx.c.lib().to_string_lossy().as_bytes().as_ptr() as *const c_char
}
/// Returns the network policy.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_network_policy(ctx: *const Context) -> c_int {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_network_policy(ctx: *const Context) -> c_int {
let ctx = ffi_param_ref!(ctx);
u8::from(ctx.c.network_policy()) as c_int
}
/// Returns the IPC policy.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_ipc_policy(ctx: *const Context) -> c_int {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_ipc_policy(ctx: *const Context) -> c_int {
let ctx = ffi_param_ref!(ctx);
u8::from(ctx.c.ipc_policy()) as c_int
}
/// Returns whether or not this is an ephemeral context.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_context_ephemeral(ctx: *const Context) -> uint8_t {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_context_ephemeral(ctx: *const Context) -> uint8_t {
let ctx = ffi_param_ref!(ctx);
if ctx.c.ephemeral() { 1 } else { 0 }
}
@@ -161,10 +159,9 @@ pub extern "system" fn sq_context_ephemeral(ctx: *const Context) -> uint8_t {
///
/// Consumes `cfg`. Returns `NULL` on errors. Returns `NULL` on
/// errors. If `errp` is not `NULL`, the error is stored there.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_config_build(cfg: *mut Config,
- errp: Option<&mut *mut ::error::Error>)
- -> *mut Context {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_config_build(cfg: *mut Config, errp: Option<&mut *mut ::error::Error>)
+ -> *mut Context {
ffi_make_fry_from_errp!(errp);
let cfg = ffi_param_move!(cfg);
@@ -172,27 +169,24 @@ pub extern "system" fn sq_config_build(cfg: *mut Config,
}
/// Sets the directory containing shared state.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_config_home(cfg: *mut Config,
- home: *const c_char) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_config_home(cfg: *mut Config, home: *const c_char) {
let cfg = ffi_param_ref_mut!(cfg);
let home = ffi_param_cstr!(home).to_string_lossy();
cfg.set_home(home.as_ref());
}
/// Set the directory containing backend servers.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_config_lib(cfg: *mut Config,
- lib: *const c_char) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_config_lib(cfg: *mut Config, lib: *const c_char) {
let cfg = ffi_param_ref_mut!(cfg);
let lib = ffi_param_cstr!(lib).to_string_lossy();
cfg.set_lib(&lib.as_ref());
}
/// Sets the network policy.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_config_network_policy(cfg: *mut Config,
- policy: c_int) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_config_network_policy(cfg: *mut Config, policy: c_int) {
let cfg = ffi_param_ref_mut!(cfg);
if policy < 0 || policy > 3 {
panic!("Bad network policy: {}", policy);
@@ -201,9 +195,8 @@ pub extern "system" fn sq_config_network_policy(cfg: *mut Config,
}
/// Sets the IPC policy.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_config_ipc_policy(cfg: *mut Config,
- policy: c_int) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_config_ipc_policy(cfg: *mut Config, policy: c_int) {
let cfg = ffi_param_ref_mut!(cfg);
if policy < 0 || policy > 2 {
panic!("Bad ipc policy: {}", policy);
@@ -212,8 +205,8 @@ pub extern "system" fn sq_config_ipc_policy(cfg: *mut Config,
}
/// Makes this context ephemeral.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_config_ephemeral(cfg: *mut Config) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_config_ephemeral(cfg: *mut Config) {
let cfg = ffi_param_ref_mut!(cfg);
cfg.set_ephemeral();
}
diff --git a/ffi/src/net.rs b/ffi/src/net.rs
index 1a2712b4..06942739 100644
--- a/ffi/src/net.rs
+++ b/ffi/src/net.rs
@@ -50,9 +50,8 @@ use Maybe;
/// e.g. `hkps://examle.org`.
///
/// Returns `NULL` on errors.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_keyserver_new(ctx: *mut Context,
- uri: *const c_char) -> *mut KeyServer {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_keyserver_new(ctx: *mut Context, uri: *const c_char) -> *mut KeyServer {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let uri = ffi_param_cstr!(uri).to_string_lossy();
@@ -67,11 +66,11 @@ pub extern "system" fn sq_keyserver_new(ctx: *mut Context,
/// size `len` used to authenticate the server.
///
/// Returns `NULL` on errors.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_keyserver_with_cert(ctx: *mut Context,
- uri: *const c_char,
- cert: *const uint8_t,
- len: size_t) -> *mut KeyServer {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_keyserver_with_cert(ctx: *mut Context,
+ uri: *const c_char,
+ cert: *const uint8_t,
+ len: size_t) -> *mut KeyServer {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let uri = ffi_param_cstr!(uri).to_string_lossy();
@@ -96,28 +95,27 @@ pub extern "system" fn sq_keyserver_with_cert(ctx: *mut Context,
/// included in this library. It is a good default choice.
///
/// Returns `NULL` on errors.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_keyserver_sks_pool(ctx: *mut Context)
- -> *mut KeyServer {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_keyserver_sks_pool(ctx: *mut Context) -> *mut KeyServer {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
ffi_try_box!(KeyServer::sks_pool(&ctx.c))
}
/// Frees a keyserver object.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_keyserver_free(ks: Option<&mut KeyServer>) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_keyserver_free(ks: Option<&mut KeyServer>) {
ffi_free!(ks)
}
/// Retrieves the key with the given `keyid`.
///
/// Returns `NULL` on errors.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_keyserver_get(ctx: *mut Context,
- ks: *mut KeyServer,
- id: *const KeyID)
- -> Maybe<TPK> {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_keyserver_get(ctx: *mut Context,
+ ks: *mut KeyServer,
+ id: *const KeyID)
+ -> Maybe<TPK> {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let ks = ffi_param_ref_mut!(ks);
@@ -129,11 +127,11 @@ pub extern "system" fn sq_keyserver_get(ctx: *mut Context,
/// Sends the given key to the server.
///
/// Returns != 0 on errors.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_keyserver_send(ctx: *mut Context,
- ks: *mut KeyServer,
- tpk: *const TPK)
- -> Status {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_keyserver_send(ctx: *mut Context,
+ ks: *mut KeyServer,
+ tpk: *const TPK)
+ -> Status {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let ks = ffi_param_ref_mut!(ks);
diff --git a/ffi/src/store.rs b/ffi/src/store.rs
index 3b4baa50..2a2c18cf 100644
--- a/ffi/src/store.rs
+++ b/ffi/src/store.rs
@@ -44,10 +44,10 @@ use MoveResultIntoRaw;
use Maybe;
/// Lists all stores with the given prefix.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_list_stores(ctx: *mut Context,
- domain_prefix: *const c_char)
- -> *mut StoreIter {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_list_stores(ctx: *mut Context,
+ domain_prefix: *const c_char)
+ -> *mut StoreIter {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let domain_prefix = ffi_param_cstr!(domain_prefix).to_string_lossy();
@@ -61,12 +61,12 @@ pub extern "system" fn sq_store_list_stores(ctx: *mut Context,
/// stores domain is stored there. If `namep` is not `NULL`, the
/// stores name is stored there. If `policyp` is not `NULL`, the
/// stores network policy is stored there.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_iter_next(iter: *mut StoreIter,
- domainp: Option<&mut *mut c_char>,
- namep: Option<&mut *mut c_char>,
- policyp: Option<&mut uint8_t>)
- -> *mut Store {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_iter_next(iter: *mut StoreIter,
+ domainp: Option<&mut *mut c_char>,
+ namep: Option<&mut *mut c_char>,
+ policyp: Option<&mut uint8_t>)
+ -> *mut Store {
let iter = ffi_param_ref_mut!(iter);
match iter.next() {
Some((domain, name, policy, store)) => {
@@ -89,15 +89,14 @@ pub extern "system" fn sq_store_iter_next(iter: *mut StoreIter,
}
/// Frees a sq_store_iter_t.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_iter_free(iter: Option<&mut StoreIter>) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_iter_free(iter: Option<&mut StoreIter>) {
ffi_free!(iter)
}
/// Lists all keys in the common key pool.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_list_keys(ctx: *mut Context)
- -> *mut KeyIter {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_list_keys(ctx: *mut Context) -> *mut KeyIter {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
@@ -105,9 +104,8 @@ pub extern "system" fn sq_store_list_keys(ctx: *mut Context)
}
/// Lists all log entries.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_server_log(ctx: *mut Context)
- -> *mut LogIter {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_server_log(ctx: *mut Context) -> *mut LogIter {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
@@ -118,10 +116,10 @@ pub extern "system" fn sq_store_server_log(ctx: *mut Context)
///
/// Returns `NULL` on exhaustion. If `fpp` is not `NULL`, the key's
/// fingerprint is stored there.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_key_iter_next(iter: *mut KeyIter,
- fpp: Option<&mut Maybe<Fingerprint>>)
- -> *mut Key {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_key_iter_next(iter: *mut KeyIter,
+ fpp: Option<&mut Maybe<Fingerprint>>)
+ -> *mut Key {
let iter = ffi_param_ref_mut!(iter);
match iter.next() {
Some((fingerprint, key)) => {
@@ -141,8 +139,8 @@ pub extern "system" fn sq_key_iter_next(iter: *mut KeyIter,
}
/// Frees a sq_key_iter_t.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_key_iter_free(iter: Option<&mut KeyIter>) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_key_iter_free(iter: Option<&mut KeyIter>) {
ffi_free!(iter)
}
@@ -150,9 +148,8 @@ pub extern "system" fn sq_key_iter_free(iter: Option<&mut KeyIter>) {
/// Returns the next log entry.
///
/// Returns `NULL` on exhaustion.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_log_iter_next(iter: *mut LogIter)
- -> *mut Log {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_log_iter_next(iter: *mut LogIter) -> *mut Log {
let iter = ffi_param_ref_mut!(iter);
match iter.next() {
Some(e) => {
@@ -176,8 +173,8 @@ pub extern "system" fn sq_log_iter_next(iter: *mut LogIter)
}
/// Frees a sq_log_iter_t.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_log_iter_free(iter: Option<&mut LogIter>) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_log_iter_free(iter: Option<&mut LogIter>) {
ffi_free!(iter)
}
@@ -192,10 +189,10 @@ pub extern "system" fn sq_log_iter_free(iter: Option<&mut LogIter>) {
/// of the context that created the store in the first place.
/// Opening the store with a different network policy is
/// forbidden.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_open(ctx: *mut Context,
- name: *const c_char)
- -> *mut Store {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_open(ctx: *mut Context,
+ name: *const c_char)
+ -> *mut Store {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let name = ffi_param_cstr!(name).to_string_lossy();
@@ -204,18 +201,18 @@ pub extern "system" fn sq_store_open(ctx: *mut Context,
}
/// Frees a sq_store_t.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_free(store: Option<&mut Store>) {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_free(store: Option<&mut Store>) {
ffi_free!(store)
}
/// Adds a key identified by fingerprint to the store.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_add(ctx: *mut Context,
- store: *const Store,
- label: *const c_char,
- fingerprint: *const Fingerprint)
- -> *mut Binding {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_add(ctx: *mut Context,
+ store: *const Store,
+ label: *const c_char,
+ fingerprint: *const Fingerprint)
+ -> *mut Binding {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let store = ffi_param_ref!(store);
@@ -226,12 +223,12 @@ pub extern "system" fn sq_store_add(ctx: *mut Context,
}
/// Imports a key into the store.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_import(ctx: *mut Context,
- store: *const Store,
- label: *const c_char,
- tpk: *const TPK)
- -> Maybe<TPK> {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_import(ctx: *mut Context,
+ store: *const Store,
+ label: *const c_char,
+ tpk: *const TPK)
+ -> Maybe<TPK> {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let store = ffi_param_ref!(store);
@@ -242,11 +239,11 @@ pub extern "system" fn sq_store_import(ctx: *mut Context,
}
/// Returns the binding for the given label.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_lookup(ctx: *mut Context,
- store: *const Store,
- label: *const c_char)
- -> *mut Binding {
+#[::ffi_catch_abort] #[no_mangle] pub extern "C"
+fn sq_store_lookup(ctx: *mut Context,
+ store: *const Store,
+ label: *const c_char)
+ -> *mut Binding {
let ctx = ffi_param_ref_mut!(ctx);
ffi_make_fry_from_ctx!(ctx);
let store = ffi_param_ref!(store);
@@ -256,9 +253,8 @@ pub extern "system" fn sq_store_lookup(ctx: *mut Context,
}
/// Looks up a key in the common key pool by KeyID.
-#[::ffi_catch_abort] #[no_mangle]
-pub extern "system" fn sq_store_lookup_by_keyid(ctx: *mu