summaryrefslogtreecommitdiffhomepage
path: root/tunnel
diff options
context:
space:
mode:
authorMikael Magnusson <mikma@users.sourceforge.net>2023-01-28 18:25:15 +0100
committerMikael Magnusson <mikma@users.sourceforge.net>2023-01-28 18:25:15 +0100
commit80b1e303477b32ff432b7cda04017fa240692a23 (patch)
tree591bb4750e50cc380c8834a873a1a6ff4b7e7abc /tunnel
parent44cdfed71ab85ada5bf8b14f666c48ce6742d506 (diff)
WIP peer status observablepeer-status-observable
Diffstat (limited to 'tunnel')
-rw-r--r--tunnel/build.gradle1
-rw-r--r--tunnel/src/main/java/com/wireguard/config/InetEndpoint.java8
2 files changed, 7 insertions, 2 deletions
diff --git a/tunnel/build.gradle b/tunnel/build.gradle
index d8aa2497..f9bdeb15 100644
--- a/tunnel/build.gradle
+++ b/tunnel/build.gradle
@@ -68,6 +68,7 @@ android {
dependencies {
implementation "androidx.annotation:annotation:$annotationsVersion"
implementation "androidx.collection:collection:$collectionVersion"
+ implementation "androidx.databinding:databinding-runtime:$databindingVersion"
implementation "io.grpc:grpc-okhttp:$grpcVersion"
implementation "io.grpc:grpc-protobuf-lite:$grpcVersion"
implementation "io.grpc:grpc-stub:$grpcVersion"
diff --git a/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java b/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java
index 66855f11..801e2a42 100644
--- a/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java
+++ b/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java
@@ -18,6 +18,7 @@ import java.util.Optional;
import java.util.regex.Pattern;
import androidx.annotation.Nullable;
+import androidx.databinding.BaseObservable;
/**
@@ -26,7 +27,7 @@ import androidx.annotation.Nullable;
* Instances of this class are externally immutable.
*/
@NonNullForAll
-public final class InetEndpoint {
+public final class InetEndpoint extends BaseObservable {
private static final Pattern BARE_IPV6 = Pattern.compile("^[^\\[\\]]*:[^\\[\\]]*");
private static final Pattern FORBIDDEN_CHARACTERS = Pattern.compile("[/?#]");
@@ -105,8 +106,10 @@ public final class InetEndpoint {
}
resolved = new InetEndpoint(address.getHostAddress(), true, port);
lastResolution = Instant.now();
+ notifyChange();
} catch (final UnknownHostException e) {
resolved = null;
+ notifyChange();
}
}
return Optional.ofNullable(resolved);
@@ -121,6 +124,7 @@ public final class InetEndpoint {
@Override
public String toString() {
final boolean isBareIpv6 = isResolved && BARE_IPV6.matcher(host).matches();
- return (isBareIpv6 ? '[' + host + ']' : host) + ':' + port;
+ String ep = (isBareIpv6 ? '[' + host + ']' : host) + ':' + port;
+ return (isResolved || resolved == null) ? ep : ep + " (" + resolved.host + ')';
}
}