android jni function
This commit is contained in:
Generated
+91
-34
@@ -129,6 +129,12 @@ version = "0.7.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
|
||||
|
||||
[[package]]
|
||||
name = "ascii"
|
||||
version = "0.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ae7d751998c189c1d4468cf0a39bb2eae052a9c58d50ebb3b9591ee3813ad50"
|
||||
|
||||
[[package]]
|
||||
name = "async-trait"
|
||||
version = "0.1.68"
|
||||
@@ -376,6 +382,12 @@ dependencies = [
|
||||
"jobserver",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cesu8"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "1.0.0"
|
||||
@@ -514,6 +526,16 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "combine"
|
||||
version = "2.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1645a65a99c7c8d345761f4b75a6ffe5be3b3b27a93ee731fccc5050ba6be97c"
|
||||
dependencies = [
|
||||
"ascii",
|
||||
"byteorder",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "const-oid"
|
||||
version = "0.7.1"
|
||||
@@ -1050,7 +1072,7 @@ checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"humantime 1.3.0",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"regex",
|
||||
"termcolor",
|
||||
]
|
||||
@@ -1076,6 +1098,12 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "error-chain"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
|
||||
|
||||
[[package]]
|
||||
name = "event-listener"
|
||||
version = "2.5.3"
|
||||
@@ -1361,7 +1389,7 @@ dependencies = [
|
||||
"bitflags",
|
||||
"libc",
|
||||
"libgit2-sys",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"url",
|
||||
]
|
||||
|
||||
@@ -1426,7 +1454,7 @@ version = "3.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3"
|
||||
dependencies = [
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"pest",
|
||||
"pest_derive",
|
||||
"quick-error 2.0.1",
|
||||
@@ -1689,7 +1717,7 @@ dependencies = [
|
||||
"ct-logs",
|
||||
"futures-util",
|
||||
"hyper",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"rustls 0.19.1",
|
||||
"rustls-native-certs",
|
||||
"tokio",
|
||||
@@ -1812,6 +1840,25 @@ version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
|
||||
|
||||
[[package]]
|
||||
name = "jni"
|
||||
version = "0.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cffc930ce6a38a4013e30567b559bdc79f601013ba4a81e65dbda9207263efd4"
|
||||
dependencies = [
|
||||
"cesu8",
|
||||
"combine",
|
||||
"error-chain",
|
||||
"jni-sys",
|
||||
"log 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jni-sys"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "de0aaaba8809ab8d83a53fe2b313b996b79e8632b855eae9f70ad4323dca91b8"
|
||||
|
||||
[[package]]
|
||||
name = "jobserver"
|
||||
version = "0.1.26"
|
||||
@@ -1940,6 +1987,15 @@ dependencies = [
|
||||
"scopeguard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
|
||||
dependencies = [
|
||||
"log 0.4.17",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.17"
|
||||
@@ -1992,7 +2048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||
"windows-sys 0.45.0",
|
||||
]
|
||||
@@ -2005,7 +2061,7 @@ checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"openssl",
|
||||
"openssl-probe",
|
||||
"openssl-sys",
|
||||
@@ -2094,7 +2150,7 @@ dependencies = [
|
||||
"clap",
|
||||
"clap_complete",
|
||||
"clap_complete_fig",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"pretty_env_logger",
|
||||
"semver 0.11.0",
|
||||
"serde",
|
||||
@@ -2111,7 +2167,7 @@ dependencies = [
|
||||
"futures",
|
||||
"gloo-timers",
|
||||
"humantime-serde",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-bandwidth-controller",
|
||||
"nym-config",
|
||||
"nym-credential-storage",
|
||||
@@ -2201,7 +2257,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"handlebars",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-network-defaults",
|
||||
"serde",
|
||||
"toml",
|
||||
@@ -2224,7 +2280,7 @@ name = "nym-credential-storage"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"sqlx 0.5.13",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
@@ -2292,7 +2348,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"futures",
|
||||
"getrandom 0.2.9",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-bandwidth-controller",
|
||||
"nym-coconut-interface",
|
||||
"nym-credential-storage",
|
||||
@@ -2323,7 +2379,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"bs58",
|
||||
"futures",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-coconut-interface",
|
||||
"nym-credentials",
|
||||
"nym-crypto",
|
||||
@@ -2352,7 +2408,7 @@ dependencies = [
|
||||
"bs58",
|
||||
"cosmwasm-std",
|
||||
"humantime-serde",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-contracts-common",
|
||||
"schemars",
|
||||
"serde",
|
||||
@@ -2413,7 +2469,7 @@ dependencies = [
|
||||
name = "nym-ordered-buffer"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
@@ -2453,7 +2509,7 @@ name = "nym-service-providers-common"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-bin-common",
|
||||
"nym-sphinx-anonymous-replies",
|
||||
"serde",
|
||||
@@ -2467,7 +2523,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"dirs",
|
||||
"futures",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-bandwidth-controller",
|
||||
"nym-client-core",
|
||||
"nym-config",
|
||||
@@ -2493,7 +2549,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"futures",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-ordered-buffer",
|
||||
"nym-socks5-requests",
|
||||
"nym-task",
|
||||
@@ -2516,7 +2572,7 @@ dependencies = [
|
||||
name = "nym-sphinx"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-crypto",
|
||||
"nym-outfox",
|
||||
"nym-sphinx-acknowledgements",
|
||||
@@ -2580,7 +2636,7 @@ dependencies = [
|
||||
name = "nym-sphinx-chunking"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-sphinx-addressing",
|
||||
"nym-sphinx-params",
|
||||
"nym-sphinx-types",
|
||||
@@ -2656,7 +2712,7 @@ name = "nym-task"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"futures",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"wasm-bindgen",
|
||||
@@ -2669,7 +2725,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bs58",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-bin-common",
|
||||
"nym-crypto",
|
||||
"nym-mixnet-contract-common",
|
||||
@@ -2696,7 +2752,7 @@ dependencies = [
|
||||
"flate2",
|
||||
"futures",
|
||||
"itertools",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"nym-api-requests",
|
||||
"nym-coconut-bandwidth-contract-common",
|
||||
"nym-coconut-dkg-common",
|
||||
@@ -3036,7 +3092,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
|
||||
dependencies = [
|
||||
"env_logger",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3299,7 +3355,7 @@ dependencies = [
|
||||
"hyper-tls",
|
||||
"ipnet",
|
||||
"js-sys",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"mime",
|
||||
"native-tls",
|
||||
"once_cell",
|
||||
@@ -3385,7 +3441,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
|
||||
dependencies = [
|
||||
"base64 0.13.1",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"ring",
|
||||
"sct 0.6.1",
|
||||
"webpki 0.21.4",
|
||||
@@ -3397,7 +3453,7 @@ version = "0.20.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
|
||||
dependencies = [
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"ring",
|
||||
"sct 0.7.0",
|
||||
"webpki 0.22.0",
|
||||
@@ -3757,6 +3813,7 @@ name = "socks5-c"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"jni",
|
||||
"nym-client-core",
|
||||
"nym-config",
|
||||
"nym-credential-storage",
|
||||
@@ -3783,7 +3840,7 @@ dependencies = [
|
||||
"hkdf 0.11.0",
|
||||
"hmac 0.11.0",
|
||||
"lioness",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"rand 0.7.3",
|
||||
"rand_distr",
|
||||
"sha2 0.9.9",
|
||||
@@ -3806,7 +3863,7 @@ dependencies = [
|
||||
"hkdf 0.11.0",
|
||||
"hmac 0.11.0",
|
||||
"lioness",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"rand 0.7.3",
|
||||
"rand_distr",
|
||||
"sha2 0.9.9",
|
||||
@@ -3907,7 +3964,7 @@ dependencies = [
|
||||
"itoa",
|
||||
"libc",
|
||||
"libsqlite3-sys",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"memchr",
|
||||
"once_cell",
|
||||
"paste",
|
||||
@@ -3953,7 +4010,7 @@ dependencies = [
|
||||
"itoa",
|
||||
"libc",
|
||||
"libsqlite3-sys",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"memchr",
|
||||
"once_cell",
|
||||
"paste",
|
||||
@@ -4363,7 +4420,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e96bb520beab540ab664bd5a9cfeaa1fcd846fa68c830b42e2c8963071251d2"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"pin-project",
|
||||
"tokio",
|
||||
"tungstenite",
|
||||
@@ -4437,7 +4494,7 @@ dependencies = [
|
||||
"http",
|
||||
"httparse",
|
||||
"input_buffer",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"rand 0.8.5",
|
||||
"sha-1",
|
||||
"thiserror",
|
||||
@@ -4593,7 +4650,7 @@ version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"try-lock",
|
||||
]
|
||||
|
||||
@@ -4626,7 +4683,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"log",
|
||||
"log 0.4.17",
|
||||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
||||
+3
-1
@@ -7,7 +7,7 @@ edition = "2021"
|
||||
|
||||
[lib]
|
||||
name = "socks5_c"
|
||||
crate-type = ["staticlib"]
|
||||
crate-type = ["dylib", "staticlib"]
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0"
|
||||
@@ -19,3 +19,5 @@ nym-socks5-client-core = { path = "../common/socks5-client-core", default-featur
|
||||
openssl = { version = "0.10", features = ["vendored"] }
|
||||
tokio = { version = "1.24.1", features = ["sync", "time"] }
|
||||
|
||||
[target.'cfg(target_os="android")'.dependencies]
|
||||
jni = { version = "0.5", default-features = false }
|
||||
|
||||
@@ -9,6 +9,49 @@ use std::os::raw::c_char;
|
||||
|
||||
static SOCKS5_CONFIG_ID: &str = "mobile-socks5-test";
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
#[allow(non_snake_case)]
|
||||
pub mod android {
|
||||
extern crate jni;
|
||||
|
||||
use std::ffi::CString;
|
||||
|
||||
use self::jni::objects::{JClass, JString};
|
||||
use self::jni::sys::jstring;
|
||||
use self::jni::JNIEnv;
|
||||
use super::*;
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern fn Java_net_nymtech_nyms5_MyClass_runclient(
|
||||
env: JNIEnv,
|
||||
_: JClass,
|
||||
java_pattern: JString,
|
||||
) {
|
||||
setup_env(None);
|
||||
|
||||
// TODO: does that leak memory and do we have to have a separate free method?
|
||||
// I'd assume not because the allocation came from the caller
|
||||
//let c_str = unsafe { CStr::from_ptr(service_provider) };
|
||||
let c_str = CString::new("https://testnet-gateway.nymtech.net").unwrap();
|
||||
let service_provider = c_str
|
||||
.to_str()
|
||||
.expect("invalid service provider string value provided")
|
||||
.to_string();
|
||||
|
||||
let rt = tokio::runtime::Runtime::new().unwrap();
|
||||
|
||||
rt.block_on(async move {
|
||||
let (config, keys) = init_dummy_socks5_config(service_provider).await.unwrap();
|
||||
let socks5_client = Socks5NymClient::new_with_keys(config, Some(keys));
|
||||
let mut shutdown_handle = socks5_client.start().await?;
|
||||
shutdown_handle.wait_for_shutdown().await;
|
||||
|
||||
Ok::<(), anyhow::Error>(())
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
/// # Safety
|
||||
///
|
||||
/// TODO
|
||||
|
||||
Reference in New Issue
Block a user