diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-20 15:51:21 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-24 11:35:21 +0000 |
| commit | 9d05edfe05d330e4fc8d2967fe3e31a0d3307991 (patch) | |
| tree | f61dfa0e3c87d87f8f8e85f7af909877df0a669d | |
| parent | 3c6e1e4a68e67587e7620a8e90770d94591f2d29 (diff) | |
| download | mullvadvpn-9d05edfe05d330e4fc8d2967fe3e31a0d3307991.tar.xz mullvadvpn-9d05edfe05d330e4fc8d2967fe3e31a0d3307991.zip | |
Implement `MullvadProblemReport::collectReport`
| -rw-r--r-- | Cargo.lock | 1 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt | 6 | ||||
| -rw-r--r-- | mullvad-jni/Cargo.toml | 1 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 29 |
4 files changed, 36 insertions, 1 deletions
diff --git a/Cargo.lock b/Cargo.lock index d467747533..5aab93823a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1174,6 +1174,7 @@ dependencies = [ "log-panics 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "mullvad-daemon 2019.5.0", "mullvad-paths 0.1.0", + "mullvad-problem-report 2019.5.0", "mullvad-types 0.1.0", "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "talpid-core 0.1.0", diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt index 56334eca42..502a57c93c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt @@ -5,4 +5,10 @@ const val PROBLEM_REPORT_PATH = "/data/data/net.mullvad.mullvadvpn/problem_repor class MullvadProblemReport { var userEmail = "" var userMessage = "" + + init { + System.loadLibrary("mullvad_jni") + } + + private external fun collectReport(reportPath: String): Boolean } diff --git a/mullvad-jni/Cargo.toml b/mullvad-jni/Cargo.toml index 5792fe27d1..21b1d15ba3 100644 --- a/mullvad-jni/Cargo.toml +++ b/mullvad-jni/Cargo.toml @@ -22,6 +22,7 @@ parking_lot = "0.8" mullvad-daemon = { path = "../mullvad-daemon" } mullvad-paths = { path = "../mullvad-paths" } +mullvad-problem-report = { path = "../mullvad-problem-report" } mullvad-types = { path = "../mullvad-types" } talpid-core = { path = "../talpid-core" } talpid-types = { path = "../talpid-types" } diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 276d49af4d..67a0fd54e2 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -19,7 +19,12 @@ use jni::{ use lazy_static::lazy_static; use mullvad_daemon::{logging, version, Daemon, DaemonCommandSender}; use parking_lot::RwLock; -use std::{collections::HashMap, path::PathBuf, sync::mpsc, thread}; +use std::{ + collections::HashMap, + path::{Path, PathBuf}, + sync::mpsc, + thread, +}; use talpid_types::ErrorExt; const LOG_FILENAME: &str = "daemon.log"; @@ -366,3 +371,25 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_updateRelaySett ); } } + +#[no_mangle] +#[allow(non_snake_case)] +pub extern "system" fn Java_net_mullvad_mullvadvpn_dataproxy_MullvadProblemReport_collectReport( + env: JNIEnv, + _: JObject, + outputPath: JString, +) -> jboolean { + 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()) { + Ok(()) => JNI_TRUE, + Err(error) => { + log::error!( + "{}", + error.display_chain_with_msg("Failed to collect problem report") + ); + JNI_FALSE + } + } +} |
