diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2023-01-28 18:25:15 +0100 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2023-01-28 18:25:15 +0100 |
commit | 80b1e303477b32ff432b7cda04017fa240692a23 (patch) | |
tree | 591bb4750e50cc380c8834a873a1a6ff4b7e7abc /tunnel | |
parent | 44cdfed71ab85ada5bf8b14f666c48ce6742d506 (diff) |
WIP peer status observablepeer-status-observable
Diffstat (limited to 'tunnel')
-rw-r--r-- | tunnel/build.gradle | 1 | ||||
-rw-r--r-- | tunnel/src/main/java/com/wireguard/config/InetEndpoint.java | 8 |
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 + ')'; } } |