summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-11 15:30:33 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-14 13:22:56 +0000
commit220b25415ebb384382cc9b971bede1a14e510a9f (patch)
tree857bff1117c58c3d71446036ccca4c99f648e55b
parent7ee3dcc5b46faef4bc0c0aee0231f1a66a12b148 (diff)
downloadmullvadvpn-220b25415ebb384382cc9b971bede1a14e510a9f.tar.xz
mullvadvpn-220b25415ebb384382cc9b971bede1a14e510a9f.zip
Move problem report JNI methods to a new module
-rw-r--r--mullvad-jni/src/lib.rs66
-rw-r--r--mullvad-jni/src/problem_report.rs73
2 files changed, 75 insertions, 64 deletions
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 94d5d77313..35fe78dd01 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -5,6 +5,7 @@ mod classes;
mod daemon_interface;
mod is_null;
mod jni_event_listener;
+mod problem_report;
mod talpid_vpn_service;
use crate::{daemon_interface::DaemonInterface, jni_event_listener::JniEventListener};
@@ -12,7 +13,7 @@ use jnix::{
jni::{
objects::{GlobalRef, JObject, JString, JValue},
signature::{JavaType, Primitive},
- sys::{jboolean, jlong, JNI_FALSE, JNI_TRUE},
+ sys::{jboolean, jlong},
JNIEnv, JavaVM,
},
FromJava, IntoJava, JnixEnv,
@@ -935,69 +936,6 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_updateR
}
}
-#[no_mangle]
-#[allow(non_snake_case)]
-pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_collectReport(
- env: JNIEnv<'_>,
- _: JObject<'_>,
- logDirectory: JString<'_>,
- outputPath: JString<'_>,
-) -> jboolean {
- let env = JnixEnv::from(env);
- let log_dir_string = String::from_java(&env, logDirectory);
- let log_dir = Path::new(&log_dir_string);
- let output_path_string = String::from_java(&env, outputPath);
- let output_path = Path::new(&output_path_string);
-
- match mullvad_problem_report::collect_report(&[], output_path, Vec::new(), log_dir) {
- Ok(()) => JNI_TRUE,
- Err(error) => {
- log::error!(
- "{}",
- error.display_chain_with_msg("Failed to collect problem report")
- );
- JNI_FALSE
- }
- }
-}
-
-#[no_mangle]
-#[allow(non_snake_case)]
-pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_sendProblemReport(
- env: JNIEnv<'_>,
- _: JObject<'_>,
- userEmail: JString<'_>,
- userMessage: JString<'_>,
- outputPath: JString<'_>,
- resourcesDirectory: JString<'_>,
-) -> jboolean {
- let env = JnixEnv::from(env);
- let user_email = String::from_java(&env, userEmail);
- let user_message = String::from_java(&env, userMessage);
- let output_path_string = String::from_java(&env, outputPath);
- let output_path = Path::new(&output_path_string);
- let resources_directory_string = String::from_java(&env, resourcesDirectory);
- let resources_directory = Path::new(&resources_directory_string);
-
- let send_result = mullvad_problem_report::send_problem_report(
- &user_email,
- &user_message,
- output_path,
- resources_directory,
- );
-
- match send_result {
- Ok(()) => JNI_TRUE,
- Err(error) => {
- log::error!(
- "{}",
- error.display_chain_with_msg("Failed to send problem report")
- );
- JNI_FALSE
- }
- }
-}
-
fn log_request_error(request: &str, error: &daemon_interface::Error) {
match error {
daemon_interface::Error::RpcError(RestError::Aborted(_)) => {
diff --git a/mullvad-jni/src/problem_report.rs b/mullvad-jni/src/problem_report.rs
new file mode 100644
index 0000000000..fb83c06bdc
--- /dev/null
+++ b/mullvad-jni/src/problem_report.rs
@@ -0,0 +1,73 @@
+use jnix::{
+ jni::{
+ objects::{JObject, JString},
+ sys::{jboolean, JNI_FALSE, JNI_TRUE},
+ JNIEnv,
+ },
+ FromJava, JnixEnv,
+};
+use std::path::Path;
+use talpid_types::ErrorExt;
+
+#[no_mangle]
+#[allow(non_snake_case)]
+pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_collectReport(
+ env: JNIEnv<'_>,
+ _: JObject<'_>,
+ logDirectory: JString<'_>,
+ outputPath: JString<'_>,
+) -> jboolean {
+ let env = JnixEnv::from(env);
+ let log_dir_string = String::from_java(&env, logDirectory);
+ let log_dir = Path::new(&log_dir_string);
+ let output_path_string = String::from_java(&env, outputPath);
+ let output_path = Path::new(&output_path_string);
+
+ match mullvad_problem_report::collect_report(&[], output_path, Vec::new(), log_dir) {
+ Ok(()) => JNI_TRUE,
+ Err(error) => {
+ log::error!(
+ "{}",
+ error.display_chain_with_msg("Failed to collect problem report")
+ );
+ JNI_FALSE
+ }
+ }
+}
+
+#[no_mangle]
+#[allow(non_snake_case)]
+pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_sendProblemReport(
+ env: JNIEnv<'_>,
+ _: JObject<'_>,
+ userEmail: JString<'_>,
+ userMessage: JString<'_>,
+ outputPath: JString<'_>,
+ resourcesDirectory: JString<'_>,
+) -> jboolean {
+ let env = JnixEnv::from(env);
+ let user_email = String::from_java(&env, userEmail);
+ let user_message = String::from_java(&env, userMessage);
+ let output_path_string = String::from_java(&env, outputPath);
+ let output_path = Path::new(&output_path_string);
+ let resources_directory_string = String::from_java(&env, resourcesDirectory);
+ let resources_directory = Path::new(&resources_directory_string);
+
+ let send_result = mullvad_problem_report::send_problem_report(
+ &user_email,
+ &user_message,
+ output_path,
+ resources_directory,
+ );
+
+ match send_result {
+ Ok(()) => JNI_TRUE,
+ Err(error) => {
+ log::error!(
+ "{}",
+ error.display_chain_with_msg("Failed to send problem report")
+ );
+ JNI_FALSE
+ }
+ }
+}