Просмотр исходного кода

WgQuickBackend: always create configuration file

It might be removed on an update.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
master
Jason A. Donenfeld 6 лет назад
Родитель
Сommit
31101f2418
1 измененных файлов: 5 добавлений и 10 удалений
  1. +5
    -10
      app/src/main/java/com/wireguard/android/backend/WgQuickBackend.java

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


Загрузка…
Отмена
Сохранить