diff options
author | Samuel Holland <samuel@sholland.org> | 2018-01-10 00:01:31 -0600 |
---|---|---|
committer | Samuel Holland <samuel@sholland.org> | 2018-01-10 00:01:52 -0600 |
commit | 8b86819b86c4e473171bddc809a650f882e8be68 (patch) | |
tree | 84ea22e6f15f3a313b8c981196b6122c8e0656f9 /app/src/main/java/com/wireguard/android/configStore/FileConfigStore.java | |
parent | FileConfigStore: Simplify error handling (diff) | |
download | wireguard-android-8b86819b86c4e473171bddc809a650f882e8be68.tar.xz wireguard-android-8b86819b86c4e473171bddc809a650f882e8be68.zip |
ConfigStore: Add a rename method and implement it
Signed-off-by: Samuel Holland <samuel@sholland.org>
Diffstat (limited to '')
-rw-r--r-- | app/src/main/java/com/wireguard/android/configStore/FileConfigStore.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/android/configStore/FileConfigStore.java b/app/src/main/java/com/wireguard/android/configStore/FileConfigStore.java index 68dfb485..4bc7a17e 100644 --- a/app/src/main/java/com/wireguard/android/configStore/FileConfigStore.java +++ b/app/src/main/java/com/wireguard/android/configStore/FileConfigStore.java @@ -70,6 +70,17 @@ public final class FileConfigStore implements ConfigStore { } @Override + public void rename(final String name, final String replacement) throws IOException { + Log.d(TAG, "Renaming configuration for tunnel " + name + " to " + replacement); + final File file = fileFor(name); + final File replacementFile = fileFor(replacement); + if (!replacementFile.createNewFile()) + throw new IOException("Configuration for " + replacement + " already exists"); + if (!file.renameTo(replacementFile)) + throw new IOException("Cannot rename configuration file " + file.getName()); + } + + @Override public Config save(final String name, final Config config) throws IOException { Log.d(TAG, "Saving configuration for tunnel " + name); final File file = fileFor(name); |