MCPcopy Create free account
hub / github.com/Sovereign-Engineering/obscuravpn-client / initialize

Function initialize

rustlib/src/android/ffi.rs:46–68  ·  view source on GitHub ↗
(env: &mut JNIEnv, j_config_dir: &JString, j_user_agent: &JString, class_cache: Arc<ClassCache>)

Source from the content-addressed store, hash-verified

44 jni::sys::JNI_VERSION_1_6
45}
46
47fn initialize(env: &mut JNIEnv, j_config_dir: &JString, j_user_agent: &JString, class_cache: Arc<ClassCache>) -> anyhow::Result<Global> {
48 let runtime = Runtime::new().expect("Failed to create tokio runtime");
49 let _runtime_guard = runtime.enter();
50 let config_dir = Utf8JavaStr::new(env, j_config_dir, "j_config_dir", "INsGbyhM")?;
51 let user_agent = Utf8JavaStr::new(env, j_user_agent, "j_user_agent", "NXCS11u3")?;
52 let log_dir = config_dir.as_path().join(RUST_LOG_DIR_NAME);
53 let log_persistence = crate::logging::init(tracing_android::layer("ObscuraNative")?, Some(&log_dir));
54 rustls::crypto::aws_lc_rs::default_provider()
55 .install_default()
56 .map_err(|_| anyhow::format_err!("failed to install crypto provider"))?;
57 let jvm = Arc::new(env.get_java_vm().context("failed to get JavaVM")?);
58 let os_impl = Arc::new(AndroidOsImpl::new(jvm, class_cache.clone()));
59 let manager = Manager::new(
60 config_dir.as_path().into(),
61 // TODO: https://linear.app/soveng/issue/OBS-2699/android-keychain-equivalent
62 WgKeyStore::Plaintext,
63 user_agent.as_str().into(),
64 os_impl.clone(),
65 os_impl.network_interface(),
66 log_persistence,
67 true,
68 )?;
69 Ok(Global { manager, os_impl, runtime, class_cache })
70}
71

Calls 3

initFunction · 0.85
as_pathMethod · 0.80
as_strMethod · 0.45

Tested by

no test coverage detected