aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/backend
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-01-10 03:16:42 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2018-01-10 03:16:42 +0100
commit0b5cfcf923f8fbe8313969120f44a59c65d0b2f1 (patch)
tree16b43b67a65ce141d920412d22331e8e1b2385b6 /app/src/main/java/com/wireguard/android/backend
parentTunnel: ifname has max len 15 (diff)
downloadwireguard-android-0b5cfcf923f8fbe8313969120f44a59c65d0b2f1.tar.xz
wireguard-android-0b5cfcf923f8fbe8313969120f44a59c65d0b2f1.zip
WgQuickBackend: properly report exception so alert shows
Diffstat (limited to 'app/src/main/java/com/wireguard/android/backend')
-rw-r--r--app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java21
1 files changed, 15 insertions, 6 deletions
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 33c7046f..4306b01e 100644
--- a/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java
+++ b/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java
@@ -103,18 +103,27 @@ public final class WgQuickBackend implements Backend {
state = originalState == State.UP ? State.DOWN : State.UP;
if (state == originalState)
return originalState;
+ if (state == State.UP && !new File("/sys/module/wireguard").exists())
+ throw new ModuleNotLoadedException("WireGuard module not loaded");
Log.d(TAG, "Changing tunnel " + tunnel.getName() + " to state " + state);
toolsInstaller.ensureToolsAvailable();
final int result;
- if (state == State.UP) {
- if (!new File("/sys/module/wireguard").exists())
- throw new ErrnoException("WireGuard module not loaded", OsConstants.ENODEV);
+ if (state == State.UP)
result = bringUpTunnel(tunnel, tunnel.getConfig());
- } else {
+ else
result = rootShell.run(null, "wg-quick down '" + tunnel.getName() + '\'');
- }
if (result != 0)
- throw new Exception("wg-quick failed");
+ throw new Exception("Unable to configure tunnel");
return getState(tunnel);
}
+
+ public static class ModuleNotLoadedException extends Exception {
+ public ModuleNotLoadedException(final String message, final Throwable cause) {
+ super(message, cause);
+ }
+
+ public ModuleNotLoadedException(final String message) {
+ super(message);
+ }
+ }
}