Replace #[no_mangle]
with #[unsafe(no_mangle)]
This commit is contained in:
parent
29363ae5ca
commit
53a11fdfef
@ -72,7 +72,7 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub extern "C" fn mullvad_api_device_iter_next(
|
pub extern "C" fn mullvad_api_device_iter_next(
|
||||||
mut iter: MullvadApiDeviceIterator,
|
mut iter: MullvadApiDeviceIterator,
|
||||||
device_ptr: *mut MullvadApiDevice,
|
device_ptr: *mut MullvadApiDevice,
|
||||||
@ -93,12 +93,12 @@ pub extern "C" fn mullvad_api_device_iter_next(
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub extern "C" fn mullvad_api_device_iter_drop(iter: MullvadApiDeviceIterator) {
|
pub extern "C" fn mullvad_api_device_iter_drop(iter: MullvadApiDeviceIterator) {
|
||||||
iter.drop()
|
iter.drop()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub extern "C" fn mullvad_api_device_drop(device: MullvadApiDevice) {
|
pub extern "C" fn mullvad_api_device_drop(device: MullvadApiDevice) {
|
||||||
device.drop()
|
device.drop()
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ impl MullvadApiError {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub extern "C" fn mullvad_api_error_drop(error: MullvadApiError) {
|
pub extern "C" fn mullvad_api_error_drop(error: MullvadApiError) {
|
||||||
error.drop()
|
error.drop()
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,9 @@ use std::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
AccountsProxy, ApiEndpoint, DevicesProxy,
|
||||||
proxy::ApiConnectionMode,
|
proxy::ApiConnectionMode,
|
||||||
rest::{self, MullvadRestHandle},
|
rest::{self, MullvadRestHandle},
|
||||||
AccountsProxy, ApiEndpoint, DevicesProxy,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mod device;
|
mod device;
|
||||||
@ -237,7 +237,7 @@ impl FfiClient {
|
|||||||
/// * `hostname`: pointer to a null-terminated UTF-8 string representing the hostname that will be
|
/// * `hostname`: pointer to a null-terminated UTF-8 string representing the hostname that will be
|
||||||
/// used for TLS validation.
|
/// used for TLS validation.
|
||||||
/// * `disable_tls`: only valid when built for tests, can be ignored when consumed by Swift.
|
/// * `disable_tls`: only valid when built for tests, can be ignored when consumed by Swift.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_client_initialize(
|
pub unsafe extern "C" fn mullvad_api_client_initialize(
|
||||||
client_ptr: *mut MullvadApiClient,
|
client_ptr: *mut MullvadApiClient,
|
||||||
api_address_ptr: *const libc::c_char,
|
api_address_ptr: *const libc::c_char,
|
||||||
@ -275,7 +275,7 @@ pub unsafe extern "C" fn mullvad_api_client_initialize(
|
|||||||
///
|
///
|
||||||
/// * `account_str_ptr`: pointer to nul-terminated UTF-8 string containing the account number of the
|
/// * `account_str_ptr`: pointer to nul-terminated UTF-8 string containing the account number of the
|
||||||
/// account that will have all of it's devices removed.
|
/// account that will have all of it's devices removed.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_remove_all_devices(
|
pub unsafe extern "C" fn mullvad_api_remove_all_devices(
|
||||||
client_ptr: MullvadApiClient,
|
client_ptr: MullvadApiClient,
|
||||||
account_ptr: *const libc::c_char,
|
account_ptr: *const libc::c_char,
|
||||||
@ -297,7 +297,7 @@ pub unsafe extern "C" fn mullvad_api_remove_all_devices(
|
|||||||
///
|
///
|
||||||
/// * `expiry_unix_timestamp`: a pointer to a signed 64 bit integer. If this function returns no
|
/// * `expiry_unix_timestamp`: a pointer to a signed 64 bit integer. If this function returns no
|
||||||
/// error, the expiry timestamp will be written to this pointer.
|
/// error, the expiry timestamp will be written to this pointer.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_get_expiry(
|
pub unsafe extern "C" fn mullvad_api_get_expiry(
|
||||||
client_ptr: MullvadApiClient,
|
client_ptr: MullvadApiClient,
|
||||||
account_str_ptr: *const libc::c_char,
|
account_str_ptr: *const libc::c_char,
|
||||||
@ -325,7 +325,7 @@ pub unsafe extern "C" fn mullvad_api_get_expiry(
|
|||||||
/// * `device_iter_ptr`: a pointer to a `device::MullvadApiDeviceIterator`. If this function doesn't
|
/// * `device_iter_ptr`: a pointer to a `device::MullvadApiDeviceIterator`. If this function doesn't
|
||||||
/// return an error, the pointer will be initialized with a valid instance of
|
/// return an error, the pointer will be initialized with a valid instance of
|
||||||
/// `device::MullvadApiDeviceIterator`, which can be used to iterate through the devices.
|
/// `device::MullvadApiDeviceIterator`, which can be used to iterate through the devices.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_list_devices(
|
pub unsafe extern "C" fn mullvad_api_list_devices(
|
||||||
client_ptr: MullvadApiClient,
|
client_ptr: MullvadApiClient,
|
||||||
account_str_ptr: *const libc::c_char,
|
account_str_ptr: *const libc::c_char,
|
||||||
@ -355,7 +355,7 @@ pub unsafe extern "C" fn mullvad_api_list_devices(
|
|||||||
///
|
///
|
||||||
/// * `new_device_ptr`: a pointer to enough memory to allocate a `MullvadApiDevice`. If this
|
/// * `new_device_ptr`: a pointer to enough memory to allocate a `MullvadApiDevice`. If this
|
||||||
/// function doesn't return an error, it will be initialized.
|
/// function doesn't return an error, it will be initialized.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_add_device(
|
pub unsafe extern "C" fn mullvad_api_add_device(
|
||||||
client_ptr: MullvadApiClient,
|
client_ptr: MullvadApiClient,
|
||||||
account_str_ptr: *const libc::c_char,
|
account_str_ptr: *const libc::c_char,
|
||||||
@ -385,7 +385,7 @@ pub unsafe extern "C" fn mullvad_api_add_device(
|
|||||||
/// * `account_str_ptr`: If a new account is created successfully, a pointer to an allocated C
|
/// * `account_str_ptr`: If a new account is created successfully, a pointer to an allocated C
|
||||||
/// string containing the new account number will be written to this pointer. It must be freed via
|
/// string containing the new account number will be written to this pointer. It must be freed via
|
||||||
/// `mullvad_api_cstring_drop`.
|
/// `mullvad_api_cstring_drop`.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_create_account(
|
pub unsafe extern "C" fn mullvad_api_create_account(
|
||||||
client_ptr: MullvadApiClient,
|
client_ptr: MullvadApiClient,
|
||||||
account_str_ptr: *mut *const libc::c_char,
|
account_str_ptr: *mut *const libc::c_char,
|
||||||
@ -414,7 +414,7 @@ pub unsafe extern "C" fn mullvad_api_create_account(
|
|||||||
/// * `client_ptr`: Must be a valid, initialized instance of `MullvadApiClient`
|
/// * `client_ptr`: Must be a valid, initialized instance of `MullvadApiClient`
|
||||||
///
|
///
|
||||||
/// * `account_str_ptr`: Must be a null-terminated string representing the account to be deleted.
|
/// * `account_str_ptr`: Must be a null-terminated string representing the account to be deleted.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_delete_account(
|
pub unsafe extern "C" fn mullvad_api_delete_account(
|
||||||
client_ptr: MullvadApiClient,
|
client_ptr: MullvadApiClient,
|
||||||
account_str_ptr: *const libc::c_char,
|
account_str_ptr: *const libc::c_char,
|
||||||
@ -426,7 +426,7 @@ pub unsafe extern "C" fn mullvad_api_delete_account(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub extern "C" fn mullvad_api_client_drop(client: MullvadApiClient) {
|
pub extern "C" fn mullvad_api_client_drop(client: MullvadApiClient) {
|
||||||
client.drop()
|
client.drop()
|
||||||
}
|
}
|
||||||
@ -436,7 +436,7 @@ pub extern "C" fn mullvad_api_client_drop(client: MullvadApiClient) {
|
|||||||
/// # Safety
|
/// # Safety
|
||||||
///
|
///
|
||||||
/// `cstr_ptr` must be a pointer to a string allocated by another `mullvad_api` function.
|
/// `cstr_ptr` must be a pointer to a string allocated by another `mullvad_api` function.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn mullvad_api_cstring_drop(cstr_ptr: *mut libc::c_char) {
|
pub unsafe extern "C" fn mullvad_api_cstring_drop(cstr_ptr: *mut libc::c_char) {
|
||||||
let _ = unsafe { CString::from_raw(cstr_ptr) };
|
let _ = unsafe { CString::from_raw(cstr_ptr) };
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ impl EncryptedDnsProxyState {
|
|||||||
///
|
///
|
||||||
/// * The caller must ensure that the pointer to the [domain_name] string contains a nul terminator
|
/// * The caller must ensure that the pointer to the [domain_name] string contains a nul terminator
|
||||||
/// at the end of the string.
|
/// at the end of the string.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn encrypted_dns_proxy_init(
|
pub unsafe extern "C" fn encrypted_dns_proxy_init(
|
||||||
domain_name: *const c_char,
|
domain_name: *const c_char,
|
||||||
) -> *mut EncryptedDnsProxyState {
|
) -> *mut EncryptedDnsProxyState {
|
||||||
@ -116,7 +116,7 @@ pub unsafe extern "C" fn encrypted_dns_proxy_init(
|
|||||||
/// `ptr` must be a valid, exclusive pointer to `EncryptedDnsProxyState`, initialized
|
/// `ptr` must be a valid, exclusive pointer to `EncryptedDnsProxyState`, initialized
|
||||||
/// by `encrypted_dns_proxy_init`. This function is not thread safe, and should only be called
|
/// by `encrypted_dns_proxy_init`. This function is not thread safe, and should only be called
|
||||||
/// once.
|
/// once.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn encrypted_dns_proxy_free(ptr: *mut EncryptedDnsProxyState) {
|
pub unsafe extern "C" fn encrypted_dns_proxy_free(ptr: *mut EncryptedDnsProxyState) {
|
||||||
let _ = unsafe { Box::from_raw(ptr) };
|
let _ = unsafe { Box::from_raw(ptr) };
|
||||||
}
|
}
|
||||||
@ -130,7 +130,7 @@ pub unsafe extern "C" fn encrypted_dns_proxy_free(ptr: *mut EncryptedDnsProxySta
|
|||||||
///
|
///
|
||||||
/// `proxy_handle` will only contain valid values if the return value is zero. It is still valid to
|
/// `proxy_handle` will only contain valid values if the return value is zero. It is still valid to
|
||||||
/// deallocate the memory.
|
/// deallocate the memory.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn encrypted_dns_proxy_start(
|
pub unsafe extern "C" fn encrypted_dns_proxy_start(
|
||||||
encrypted_dns_proxy: *mut EncryptedDnsProxyState,
|
encrypted_dns_proxy: *mut EncryptedDnsProxyState,
|
||||||
proxy_handle: *mut ProxyHandle,
|
proxy_handle: *mut ProxyHandle,
|
||||||
@ -166,7 +166,7 @@ pub unsafe extern "C" fn encrypted_dns_proxy_start(
|
|||||||
/// # Safety
|
/// # Safety
|
||||||
/// `proxy_config` must be a valid pointer to a `ProxyHandle` as initialized by
|
/// `proxy_config` must be a valid pointer to a `ProxyHandle` as initialized by
|
||||||
/// [`encrypted_dns_proxy_start`]. It should only ever be called once.
|
/// [`encrypted_dns_proxy_start`]. It should only ever be called once.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn encrypted_dns_proxy_stop(proxy_config: *mut ProxyHandle) -> i32 {
|
pub unsafe extern "C" fn encrypted_dns_proxy_stop(proxy_config: *mut ProxyHandle) -> i32 {
|
||||||
let ptr = unsafe { (*proxy_config).context };
|
let ptr = unsafe { (*proxy_config).context };
|
||||||
if !ptr.is_null() {
|
if !ptr.is_null() {
|
||||||
|
@ -118,7 +118,7 @@ extern "C" {
|
|||||||
/// # Safety
|
/// # Safety
|
||||||
/// `sender` must be pointing to a valid instance of a `EphemeralPeerCancelToken` created by the
|
/// `sender` must be pointing to a valid instance of a `EphemeralPeerCancelToken` created by the
|
||||||
/// `PacketTunnelProvider`.
|
/// `PacketTunnelProvider`.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn cancel_ephemeral_peer_exchange(
|
pub unsafe extern "C" fn cancel_ephemeral_peer_exchange(
|
||||||
sender: *mut peer_exchange::ExchangeCancelToken,
|
sender: *mut peer_exchange::ExchangeCancelToken,
|
||||||
) {
|
) {
|
||||||
@ -132,7 +132,7 @@ pub unsafe extern "C" fn cancel_ephemeral_peer_exchange(
|
|||||||
/// # Safety
|
/// # Safety
|
||||||
/// `sender` must be pointing to a valid instance of a `EphemeralPeerCancelToken` created by the
|
/// `sender` must be pointing to a valid instance of a `EphemeralPeerCancelToken` created by the
|
||||||
/// `PacketTunnelProvider`.
|
/// `PacketTunnelProvider`.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn drop_ephemeral_peer_exchange_token(
|
pub unsafe extern "C" fn drop_ephemeral_peer_exchange_token(
|
||||||
sender: *mut peer_exchange::ExchangeCancelToken,
|
sender: *mut peer_exchange::ExchangeCancelToken,
|
||||||
) {
|
) {
|
||||||
@ -148,7 +148,7 @@ pub unsafe extern "C" fn drop_ephemeral_peer_exchange_token(
|
|||||||
/// function is called, and thus must be copied here. `packet_tunnel` must be valid pointers to a
|
/// function is called, and thus must be copied here. `packet_tunnel` must be valid pointers to a
|
||||||
/// packet tunnel, the packet tunnel pointer must outlive the ephemeral peer exchange.
|
/// packet tunnel, the packet tunnel pointer must outlive the ephemeral peer exchange.
|
||||||
/// `cancel_token` should be owned by the caller of this function.
|
/// `cancel_token` should be owned by the caller of this function.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn request_ephemeral_peer(
|
pub unsafe extern "C" fn request_ephemeral_peer(
|
||||||
public_key: *const u8,
|
public_key: *const u8,
|
||||||
ephemeral_key: *const u8,
|
ephemeral_key: *const u8,
|
||||||
|
@ -10,7 +10,7 @@ pub struct ProxyHandle {
|
|||||||
pub port: u16,
|
pub port: u16,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub static CONFIG_SERVICE_PORT: u16 = talpid_tunnel_config_client::CONFIG_SERVICE_PORT;
|
pub static CONFIG_SERVICE_PORT: u16 = talpid_tunnel_config_client::CONFIG_SERVICE_PORT;
|
||||||
|
|
||||||
mod ios {
|
mod ios {
|
||||||
|
@ -14,7 +14,7 @@ static INIT_LOGGING: Once = Once::new();
|
|||||||
///
|
///
|
||||||
/// `proxy_config` must be pointing to a valid memory region for the size of a `ProxyHandle`
|
/// `proxy_config` must be pointing to a valid memory region for the size of a `ProxyHandle`
|
||||||
/// instance.
|
/// instance.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn start_shadowsocks_proxy(
|
pub unsafe extern "C" fn start_shadowsocks_proxy(
|
||||||
forward_address: *const u8,
|
forward_address: *const u8,
|
||||||
forward_address_len: usize,
|
forward_address_len: usize,
|
||||||
@ -90,7 +90,7 @@ pub unsafe extern "C" fn start_shadowsocks_proxy(
|
|||||||
/// # Safety
|
/// # Safety
|
||||||
/// `proxy_config` must be pointing to a valid instance of a `ProxyInstance`, as instantiated by
|
/// `proxy_config` must be pointing to a valid instance of a `ProxyInstance`, as instantiated by
|
||||||
/// `start_shadowsocks_proxy`.
|
/// `start_shadowsocks_proxy`.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn stop_shadowsocks_proxy(proxy_config: *mut ProxyHandle) -> i32 {
|
pub unsafe extern "C" fn stop_shadowsocks_proxy(proxy_config: *mut ProxyHandle) -> i32 {
|
||||||
let context_ptr = unsafe { (*proxy_config).context };
|
let context_ptr = unsafe { (*proxy_config).context };
|
||||||
if context_ptr.is_null() {
|
if context_ptr.is_null() {
|
||||||
|
@ -14,7 +14,7 @@ pub enum TunnelObfuscatorProtocol {
|
|||||||
Shadowsocks,
|
Shadowsocks,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn start_tunnel_obfuscator_proxy(
|
pub unsafe extern "C" fn start_tunnel_obfuscator_proxy(
|
||||||
peer_address: *const u8,
|
peer_address: *const u8,
|
||||||
peer_address_len: usize,
|
peer_address_len: usize,
|
||||||
@ -56,7 +56,7 @@ pub unsafe extern "C" fn start_tunnel_obfuscator_proxy(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn stop_tunnel_obfuscator_proxy(proxy_handle: *mut ProxyHandle) -> i32 {
|
pub unsafe extern "C" fn stop_tunnel_obfuscator_proxy(proxy_handle: *mut ProxyHandle) -> i32 {
|
||||||
let context_ptr = unsafe { (*proxy_handle).context };
|
let context_ptr = unsafe { (*proxy_handle).context };
|
||||||
if context_ptr.is_null() {
|
if context_ptr.is_null() {
|
||||||
|
@ -73,7 +73,7 @@ struct DaemonContext {
|
|||||||
|
|
||||||
/// Spawn Mullvad daemon. There can only be a single instance, which must be shut down using
|
/// Spawn Mullvad daemon. There can only be a single instance, which must be shut down using
|
||||||
/// `MullvadDaemon.shutdown`. On success, nothing is returned. On error, an exception is thrown.
|
/// `MullvadDaemon.shutdown`. On success, nothing is returned. On error, an exception is thrown.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_initialize(
|
pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_initialize(
|
||||||
env: JNIEnv<'_>,
|
env: JNIEnv<'_>,
|
||||||
_class: JClass<'_>,
|
_class: JClass<'_>,
|
||||||
@ -121,7 +121,7 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_initial
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Shut down Mullvad daemon that was initialized using `MullvadDaemon.initialize`.
|
/// Shut down Mullvad daemon that was initialized using `MullvadDaemon.initialize`.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_shutdown(
|
pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_shutdown(
|
||||||
_: JNIEnv<'_>,
|
_: JNIEnv<'_>,
|
||||||
|
@ -10,7 +10,7 @@ use mullvad_api::ApiEndpoint;
|
|||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use talpid_types::ErrorExt;
|
use talpid_types::ErrorExt;
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_collectReport(
|
pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_collectReport(
|
||||||
env: JNIEnv<'_>,
|
env: JNIEnv<'_>,
|
||||||
@ -36,7 +36,7 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemRepor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_sendProblemReport(
|
pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_sendProblemReport(
|
||||||
env: JNIEnv<'_>,
|
env: JNIEnv<'_>,
|
||||||
|
@ -23,7 +23,7 @@ const MAX_PATH_SIZE: isize = 32_767;
|
|||||||
|
|
||||||
/// SAFETY: path needs to be a windows path encoded as a string of u16 that terminates in 0 (two
|
/// SAFETY: path needs to be a windows path encoded as a string of u16 that terminates in 0 (two
|
||||||
/// nul-bytes). The string is also not allowed to be greater than `MAX_PATH_SIZE`.
|
/// nul-bytes). The string is also not allowed to be greater than `MAX_PATH_SIZE`.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn create_privileged_directory(path: *const u16) -> Status {
|
pub unsafe extern "C" fn create_privileged_directory(path: *const u16) -> Status {
|
||||||
catch_and_log_unwind(|| {
|
catch_and_log_unwind(|| {
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
@ -52,7 +52,7 @@ pub unsafe extern "C" fn create_privileged_directory(path: *const u16) -> Status
|
|||||||
/// is returned, and the required buffer size (in chars) is returned in `buffer_size`.
|
/// is returned, and the required buffer size (in chars) is returned in `buffer_size`.
|
||||||
/// On success, `buffer_size` is set to the length of the string, including
|
/// On success, `buffer_size` is set to the length of the string, including
|
||||||
/// the final null terminator.
|
/// the final null terminator.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn get_system_local_appdata(
|
pub unsafe extern "C" fn get_system_local_appdata(
|
||||||
buffer: *mut u16,
|
buffer: *mut u16,
|
||||||
buffer_size: *mut usize,
|
buffer_size: *mut usize,
|
||||||
@ -91,7 +91,7 @@ pub unsafe extern "C" fn get_system_local_appdata(
|
|||||||
/// `InsufficientBufferSize` is returned, and the required buffer size (in
|
/// `InsufficientBufferSize` is returned, and the required buffer size (in
|
||||||
/// chars) is returned in `buffer_size`. On success, `buffer_size` is set to the
|
/// chars) is returned in `buffer_size`. On success, `buffer_size` is set to the
|
||||||
/// length of the string, including the final null terminator.
|
/// length of the string, including the final null terminator.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
pub unsafe extern "C" fn get_system_version(buffer: *mut u16, buffer_size: *mut usize) -> Status {
|
pub unsafe extern "C" fn get_system_version(buffer: *mut u16, buffer_size: *mut usize) -> Status {
|
||||||
use talpid_platform_metadata::version;
|
use talpid_platform_metadata::version;
|
||||||
catch_and_log_unwind(|| {
|
catch_and_log_unwind(|| {
|
||||||
|
@ -157,7 +157,7 @@ impl ConnectivityListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Entry point for Android Java code to notify the connectivity status.
|
/// Entry point for Android Java code to notify the connectivity status.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub extern "system" fn Java_net_mullvad_talpid_ConnectivityListener_notifyConnectivityChange(
|
pub extern "system" fn Java_net_mullvad_talpid_ConnectivityListener_notifyConnectivityChange(
|
||||||
_: JNIEnv<'_>,
|
_: JNIEnv<'_>,
|
||||||
|
@ -161,7 +161,7 @@ fn configured_routes(state: &NetworkState) -> HashSet<Route> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Entry point for Android Java code to notify the current default network state.
|
/// Entry point for Android Java code to notify the current default network state.
|
||||||
#[no_mangle]
|
#[unsafe(no_mangle)]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub extern "system" fn Java_net_mullvad_talpid_ConnectivityListener_notifyDefaultNetworkChange(
|
pub extern "system" fn Java_net_mullvad_talpid_ConnectivityListener_notifyDefaultNetworkChange(
|
||||||
env: JNIEnv<'_>,
|
env: JNIEnv<'_>,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user