aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/config/Peer.java
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2017-08-23 23:43:58 -0500
committerSamuel Holland <samuel@sholland.org>2017-08-23 23:43:58 -0500
commit95384851cd829b33dee99b3e7d5c5423cb69716f (patch)
treea1310bdea0873029b51c6624420ad44bc5ab0886 /app/src/main/java/com/wireguard/config/Peer.java
parentVpnService: Fix some edge cases in ConfigUpdater (diff)
downloadwireguard-android-95384851cd829b33dee99b3e7d5c5423cb69716f.tar.xz
wireguard-android-95384851cd829b33dee99b3e7d5c5423cb69716f.zip
Config/Interface/Peer: Fix some missed change notifications
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/config/Peer.java')
-rw-r--r--app/src/main/java/com/wireguard/config/Peer.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/app/src/main/java/com/wireguard/config/Peer.java b/app/src/main/java/com/wireguard/config/Peer.java
index f0e24162..912e8bf5 100644
--- a/app/src/main/java/com/wireguard/config/Peer.java
+++ b/app/src/main/java/com/wireguard/config/Peer.java
@@ -12,7 +12,7 @@ import com.android.databinding.library.baseAdapters.BR;
public class Peer extends BaseObservable implements Copyable<Peer>, Observable {
private String allowedIPs;
- private Config config;
+ private final Config config;
private String endpoint;
private String persistentKeepalive;
private String publicKey;
@@ -38,6 +38,7 @@ public class Peer extends BaseObservable implements Copyable<Peer>, Observable {
endpoint = source.endpoint;
persistentKeepalive = source.persistentKeepalive;
publicKey = source.publicKey;
+ notifyChange();
}
@Bindable
@@ -60,23 +61,23 @@ public class Peer extends BaseObservable implements Copyable<Peer>, Observable {
return publicKey;
}
- public void parseFrom(final String line) {
+ public void parse(final String line) {
final Attribute key = Attribute.match(line);
if (key == Attribute.ALLOWED_IPS)
- allowedIPs = key.parseFrom(line);
+ setAllowedIPs(key.parseFrom(line));
else if (key == Attribute.ENDPOINT)
- endpoint = key.parseFrom(line);
+ setEndpoint(key.parseFrom(line));
else if (key == Attribute.PERSISTENT_KEEPALIVE)
- persistentKeepalive = key.parseFrom(line);
+ setPersistentKeepalive(key.parseFrom(line));
else if (key == Attribute.PUBLIC_KEY)
- publicKey = key.parseFrom(line);
+ setPublicKey(key.parseFrom(line));
else
throw new IllegalArgumentException(line);
}
public void removeSelf() {
- config.getPeers().remove(this);
- config = null;
+ if (!config.getPeers().remove(this))
+ throw new IllegalStateException("This peer was already removed from its config");
}
public void setAllowedIPs(String allowedIPs) {