From e41d71cd19b4179c0b061d1121527788f388c6e2 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Thu, 5 Jan 2017 13:56:07 -0800 Subject: add implementations of compareTo() and equals() for VirtualNetworkRoute(). Android app was relying on these, but since they didn't exist, they didn't function properly --- java/src/com/zerotier/sdk/VirtualNetworkRoute.java | 51 +++++++++++++++++++++- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/java/src/com/zerotier/sdk/VirtualNetworkRoute.java b/java/src/com/zerotier/sdk/VirtualNetworkRoute.java index 738c4158..b89dce7b 100644 --- a/java/src/com/zerotier/sdk/VirtualNetworkRoute.java +++ b/java/src/com/zerotier/sdk/VirtualNetworkRoute.java @@ -29,9 +29,14 @@ package com.zerotier.sdk; import java.net.InetSocketAddress; -public final class VirtualNetworkRoute +public final class VirtualNetworkRoute implements Comparable { - private VirtualNetworkRoute() {} + private VirtualNetworkRoute() { + target = null; + via = null; + flags = 0; + metric = 0; + } /** * Target network / netmask bits (in port field) or NULL or 0.0.0.0/0 for default @@ -52,4 +57,46 @@ public final class VirtualNetworkRoute * Route metric (not currently used) */ public int metric; + + + @Override + public int compareTo(VirtualNetworkRoute other) { + return target.toString().compareTo(other.target.toString()); + } + + public boolean equals(VirtualNetworkRoute other) { + boolean targetEquals; + if (target == null && other.target == null) { + targetEquals = true; + } + else if (target == null && other.target != null) { + targetEquals = false; + } + else if (target != null && other.target == null) { + targetEquals = false; + } + else { + targetEquals = target.equals(other.target); + } + + + boolean viaEquals; + if (via == null && other.via == null) { + viaEquals = true; + } + else if (via == null && other.via != null) { + viaEquals = false; + } + else if (via != null && other.via == null) { + viaEquals = false; + } + else { + viaEquals = via.equals(other.via); + } + + return viaEquals && + viaEquals && + flags == other.flags && + metric == other.metric; + } } -- cgit v1.2.3