From 31101f24181ea6e525659a4b0834efff4e6ee7a3 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 26 Apr 2018 19:41:35 +0200 Subject: [PATCH] WgQuickBackend: always create configuration file It might be removed on an update. Signed-off-by: Jason A. Donenfeld --- .../wireguard/android/backend/WgQuickBackend.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 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 a0371842..b91d8476 100644 --- a/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java +++ b/app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java @@ -100,17 +100,12 @@ public final class WgQuickBackend implements Backend { private void setStateInternal(final Tunnel tunnel, final Config config, final State state) throws Exception { final File tempFile = new File(localTemporaryDir, tunnel.getName() + ".conf"); - final int result; - if (state == State.UP) { - try (FileOutputStream stream = new FileOutputStream(tempFile, false)) { - stream.write(config.toString().getBytes(StandardCharsets.UTF_8)); - } - result = rootShell.run(null, "wg-quick up '" + tempFile.getAbsolutePath() + '\''); - } else { - result = rootShell.run(null, "wg-quick down '" + tempFile.getAbsolutePath() + '\''); - if (result == 0 && !tempFile.delete()) - Log.w(TAG, "Couldn't delete temp config after bringing down " + tunnel.getName()); + try (FileOutputStream stream = new FileOutputStream(tempFile, false)) { + stream.write(config.toString().getBytes(StandardCharsets.UTF_8)); } + final String command = String.format("wg-quick %s '%s'", state.toString().toLowerCase(), tempFile.getAbsolutePath()); + final int result = rootShell.run(null, command); + tempFile.delete(); if (result != 0) throw new Exception("Unable to configure tunnel (wg-quick returned " + result + ')'); }