aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/backend
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-06-07 04:35:07 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-06-07 04:35:07 +0200
commit21d9ba41056f7c40ee69245fa51319db6d39c991 (patch)
treed977167b737cb235ff78b56bd8f42d698cd77d13 /app/src/main/java/com/wireguard/android/backend
parentGive Samuel heart attack by removing Dagger (diff)
downloadwireguard-android-21d9ba41056f7c40ee69245fa51319db6d39c991.tar.xz
wireguard-android-21d9ba41056f7c40ee69245fa51319db6d39c991.zip
Backend: abstract version information
Diffstat (limited to 'app/src/main/java/com/wireguard/android/backend')
-rw-r--r--app/src/main/java/com/wireguard/android/backend/Backend.java15
-rw-r--r--app/src/main/java/com/wireguard/android/backend/GoBackend.java6
-rw-r--r--app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java14
3 files changed, 32 insertions, 3 deletions
diff --git a/app/src/main/java/com/wireguard/android/backend/Backend.java b/app/src/main/java/com/wireguard/android/backend/Backend.java
index 9a88550c..875cbd78 100644
--- a/app/src/main/java/com/wireguard/android/backend/Backend.java
+++ b/app/src/main/java/com/wireguard/android/backend/Backend.java
@@ -62,4 +62,19 @@ public interface Backend {
* @return The updated state of the tunnel.
*/
State setState(Tunnel tunnel, State state) throws Exception;
+
+ /**
+ * Determine version of underlying backend.
+ *
+ * @return The version of the backend.
+ * @throws Exception
+ */
+ String getVersion() throws Exception;
+
+ /**
+ * Determine type name of underlying backend.
+ *
+ * @return Type name
+ */
+ String getTypeName();
}
diff --git a/app/src/main/java/com/wireguard/android/backend/GoBackend.java b/app/src/main/java/com/wireguard/android/backend/GoBackend.java
index 8c8d593a..10d8d911 100644
--- a/app/src/main/java/com/wireguard/android/backend/GoBackend.java
+++ b/app/src/main/java/com/wireguard/android/backend/GoBackend.java
@@ -58,7 +58,11 @@ public final class GoBackend implements Backend {
private static native String wgVersion();
- public static String getVersion() { return wgVersion(); }
+ @Override
+ public String getVersion() { return wgVersion(); }
+
+ @Override
+ public String getTypeName() { return "Go userspace"; }
@Override
public Config applyConfig(final Tunnel tunnel, final Config config) throws Exception {
diff --git a/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java b/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java
index 56d62a1f..2068e5f4 100644
--- a/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java
+++ b/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java
@@ -13,8 +13,6 @@ import com.wireguard.android.Application;
import com.wireguard.android.model.Tunnel;
import com.wireguard.android.model.Tunnel.State;
import com.wireguard.android.model.Tunnel.Statistics;
-import com.wireguard.android.util.RootShell;
-import com.wireguard.android.util.ToolsInstaller;
import com.wireguard.config.Config;
import java.io.File;
@@ -42,6 +40,18 @@ public final class WgQuickBackend implements Backend {
}
@Override
+ public String getVersion() throws Exception {
+ final List<String> output = new ArrayList<>();
+ if (Application.getRootShell()
+ .run(output, "cat /sys/module/wireguard/version") != 0 || output.isEmpty())
+ throw new Exception("Unable to determine kernel module version");
+ return output.get(0);
+ }
+
+ @Override
+ public String getTypeName() { return "Kernel module"; }
+
+ @Override
public Config applyConfig(final Tunnel tunnel, final Config config) throws Exception {
if (tunnel.getState() == State.UP) {
// Restart the tunnel to apply the new config.