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 + ')'); }