From 0e46f9566838c529ad5b43034ea1e6686f6c7d8b Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 23 Aug 2017 18:02:37 -0500 Subject: Config/Interface: Allow copyFrom() to work on null Signed-off-by: Jason A. Donenfeld --- app/src/main/java/com/wireguard/config/Config.java | 21 +++++++++++++++------ .../main/java/com/wireguard/config/Interface.java | 18 +++++++++++++----- 2 files changed, 28 insertions(+), 11 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/com/wireguard/config/Config.java b/app/src/main/java/com/wireguard/config/Config.java index c7fdcc87..8f61dbdd 100644 --- a/app/src/main/java/com/wireguard/config/Config.java +++ b/app/src/main/java/com/wireguard/config/Config.java @@ -61,12 +61,21 @@ public class Config extends BaseObservable @Override public void copyFrom(final Config source) { - iface.copyFrom(source.iface); - isEnabled = source.isEnabled; - name = source.name; - peers.clear(); - for (final Peer peer : source.peers) - addPeer(peer); + if (source != null) { + iface.copyFrom(source.iface); + isEnabled = source.isEnabled; + isPrimary = source.isPrimary; + name = source.name; + peers.clear(); + for (final Peer peer : source.peers) + addPeer(peer); + } else { + iface.copyFrom(null); + isEnabled = false; + isPrimary = false; + name = null; + peers.clear(); + } } public Interface getInterface() { diff --git a/app/src/main/java/com/wireguard/config/Interface.java b/app/src/main/java/com/wireguard/config/Interface.java index 0ab15a7d..b81b6d99 100644 --- a/app/src/main/java/com/wireguard/config/Interface.java +++ b/app/src/main/java/com/wireguard/config/Interface.java @@ -29,11 +29,19 @@ public class Interface extends BaseObservable implements Copyable, Ob @Override public void copyFrom(final Interface source) { - address = source.address; - dns = source.dns; - listenPort = source.listenPort; - setPrivateKey(source.privateKey); - mtu = source.mtu; + if (source != null) { + address = source.address; + dns = source.dns; + listenPort = source.listenPort; + mtu = source.mtu; + setPrivateKey(source.privateKey); + } else { + address = null; + dns = null; + listenPort = null; + mtu = null; + setPrivateKey(null); + } } public void generateKeypair() { -- cgit v1.2.3