diff options
author | Grant Limberg <grant.limberg@zerotier.com> | 2017-01-05 13:56:07 -0800 |
---|---|---|
committer | Grant Limberg <grant.limberg@zerotier.com> | 2017-01-05 13:56:07 -0800 |
commit | e41d71cd19b4179c0b061d1121527788f388c6e2 (patch) | |
tree | 01d664a93299e3176a2b7161a9b723b0bf937ddf /java/src/com | |
parent | a54c2b438c0abc574039055ecfc70dd829e2cade (diff) | |
download | infinitytier-e41d71cd19b4179c0b061d1121527788f388c6e2.tar.gz infinitytier-e41d71cd19b4179c0b061d1121527788f388c6e2.zip |
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
Diffstat (limited to 'java/src/com')
-rw-r--r-- | java/src/com/zerotier/sdk/VirtualNetworkRoute.java | 51 |
1 files 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<VirtualNetworkRoute> { - 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; + } } |