mirror of
https://github.com/signalapp/libsignal.git
synced 2026-04-25 17:25:18 +02:00
Expose CDSI lookup via FFI
This commit is contained in:
@@ -42,6 +42,13 @@ pub unsafe extern "C" fn signal_free_buffer(buf: *const c_uchar, buf_len: usize)
|
||||
)));
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn signal_free_lookup_response_entry_list(
|
||||
buffer: OwnedBufferOf<crate::FfiCdsiLookupResponseEntry>,
|
||||
) {
|
||||
drop(buffer.into_box())
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn signal_free_string_array(array: StringArray) {
|
||||
drop(array.into_boxed_parts())
|
||||
@@ -129,6 +136,27 @@ pub unsafe extern "C" fn signal_error_get_type(err: *const SignalFfiError) -> u3
|
||||
}
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn signal_error_get_retry_after_seconds(
|
||||
err: *const SignalFfiError,
|
||||
out: *mut u32,
|
||||
) -> *mut SignalFfiError {
|
||||
let err = AssertUnwindSafe(err);
|
||||
run_ffi_safe(|| {
|
||||
let err = err.as_ref().ok_or(SignalFfiError::NullPointer)?;
|
||||
match err {
|
||||
SignalFfiError::RateLimited {
|
||||
retry_after_seconds,
|
||||
} => write_result_to(out, *retry_after_seconds),
|
||||
err => Err(SignalFfiError::Signal(
|
||||
SignalProtocolError::InvalidArgument(format!(
|
||||
"cannot get retry_after_seconds from error ({err})"
|
||||
)),
|
||||
)),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn signal_error_free(err: *mut SignalFfiError) {
|
||||
if !err.is_null() {
|
||||
|
||||
Reference in New Issue
Block a user