diff options
| author | Brenton Bostick <[email protected]> | 2023-03-09 06:44:27 -0500 |
|---|---|---|
| committer | Brenton Bostick <[email protected]> | 2023-03-09 06:51:29 -0500 |
| commit | 19c5343a0af9dac28c678cf8920db756186ddf27 (patch) | |
| tree | 9065eb7d4fca3766b20f016dd5423d3438b1f6ed /java | |
| parent | 4a4c8f84d50273f80050b665d99804662c8aa6bb (diff) | |
Revert "temp fix for ANDROID-56: crash inside newNetworkConfig from too many args"
This reverts commit dd627cd7f44ad623a110bb14f72d0bea72a09e30.
Diffstat (limited to 'java')
| -rw-r--r-- | java/jni/ZT_jnicache.cpp | 10 | ||||
| -rw-r--r-- | java/jni/ZT_jniutils.cpp | 7 | ||||
| -rw-r--r-- | java/src/com/zerotier/sdk/VirtualNetworkConfig.java | 61 |
3 files changed, 32 insertions, 46 deletions
diff --git a/java/jni/ZT_jnicache.cpp b/java/jni/ZT_jnicache.cpp index 68cacbd7..c721a9ee 100644 --- a/java/jni/ZT_jnicache.cpp +++ b/java/jni/ZT_jnicache.cpp @@ -176,15 +176,7 @@ void setupJNICache(JavaVM *vm) { EXCEPTIONANDNULLCHECK(Peer_ctor = env->GetMethodID(Peer_class, "<init>", "(JIIIILcom/zerotier/sdk/PeerRole;[Lcom/zerotier/sdk/PeerPhysicalPath;)V")); EXCEPTIONANDNULLCHECK(Version_ctor = env->GetMethodID(Version_class, "<init>", "(III)V")); EXCEPTIONANDNULLCHECK(VirtualNetworkConfigListener_onNetworkConfigurationUpdated_method = env->GetMethodID(VirtualNetworkConfigListener_class, "onNetworkConfigurationUpdated", "(JLcom/zerotier/sdk/VirtualNetworkConfigOperation;Lcom/zerotier/sdk/VirtualNetworkConfig;)I")); - - - // - // ANDROID-56: temporarily remove parameters to prevent crashing - // -// EXCEPTIONANDNULLCHECK(VirtualNetworkConfig_ctor = env->GetMethodID(VirtualNetworkConfig_class, "<init>", "(JJLjava/lang/String;Lcom/zerotier/sdk/VirtualNetworkStatus;Lcom/zerotier/sdk/VirtualNetworkType;IZZZIJ[Ljava/net/InetSocketAddress;[Lcom/zerotier/sdk/VirtualNetworkRoute;Lcom/zerotier/sdk/VirtualNetworkDNS;)V")); - EXCEPTIONANDNULLCHECK(VirtualNetworkConfig_ctor = env->GetMethodID(VirtualNetworkConfig_class, "<init>", "(JJLjava/lang/String;Lcom/zerotier/sdk/VirtualNetworkStatus;Lcom/zerotier/sdk/VirtualNetworkType;IZZZ[Ljava/net/InetSocketAddress;[Lcom/zerotier/sdk/VirtualNetworkRoute;Lcom/zerotier/sdk/VirtualNetworkDNS;)V")); - - + EXCEPTIONANDNULLCHECK(VirtualNetworkConfig_ctor = env->GetMethodID(VirtualNetworkConfig_class, "<init>", "(JJLjava/lang/String;Lcom/zerotier/sdk/VirtualNetworkStatus;Lcom/zerotier/sdk/VirtualNetworkType;IZZZIJ[Ljava/net/InetSocketAddress;[Lcom/zerotier/sdk/VirtualNetworkRoute;Lcom/zerotier/sdk/VirtualNetworkDNS;)V")); EXCEPTIONANDNULLCHECK(VirtualNetworkDNS_ctor = env->GetMethodID(VirtualNetworkDNS_class, "<init>", "(Ljava/lang/String;Ljava/util/ArrayList;)V")); EXCEPTIONANDNULLCHECK(VirtualNetworkFrameListener_onVirtualNetworkFrame_method = env->GetMethodID(VirtualNetworkFrameListener_class, "onVirtualNetworkFrame", "(JJJJJ[B)V")); EXCEPTIONANDNULLCHECK(VirtualNetworkRoute_ctor = env->GetMethodID(VirtualNetworkRoute_class, "<init>", "(Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;II)V")); diff --git a/java/jni/ZT_jniutils.cpp b/java/jni/ZT_jniutils.cpp index 17e6a9b3..053c5adb 100644 --- a/java/jni/ZT_jniutils.cpp +++ b/java/jni/ZT_jniutils.cpp @@ -307,11 +307,8 @@ jobject newNetworkConfig(JNIEnv *env, const ZT_VirtualNetworkConfig &vnetConfig) vnetConfig.dhcp, vnetConfig.bridge, vnetConfig.broadcastEnabled, - // - // ANDROID-56: temporarily remove parameters to prevent crashing - // -// vnetConfig.portError, -// vnetConfig.netconfRevision, + vnetConfig.portError, + vnetConfig.netconfRevision, assignedAddrArrayObj, routesArrayObj, dnsObj); diff --git a/java/src/com/zerotier/sdk/VirtualNetworkConfig.java b/java/src/com/zerotier/sdk/VirtualNetworkConfig.java index fea354d0..bcf64854 100644 --- a/java/src/com/zerotier/sdk/VirtualNetworkConfig.java +++ b/java/src/com/zerotier/sdk/VirtualNetworkConfig.java @@ -66,12 +66,9 @@ public class VirtualNetworkConfig implements Comparable<VirtualNetworkConfig> { private final boolean broadcastEnabled; - // - // ANDROID-56: temporarily remove parameters to prevent crashing - // -// private final int portError; -// -// private final long netconfRevision; + private final int portError; + + private final long netconfRevision; private final InetSocketAddress[] assignedAddresses; @@ -79,7 +76,7 @@ public class VirtualNetworkConfig implements Comparable<VirtualNetworkConfig> { private final VirtualNetworkDNS dns; - public VirtualNetworkConfig(long nwid, long mac, String name, VirtualNetworkStatus status, VirtualNetworkType type, int mtu, boolean dhcp, boolean bridge, boolean broadcastEnabled, InetSocketAddress[] assignedAddresses, VirtualNetworkRoute[] routes, VirtualNetworkDNS dns) { + public VirtualNetworkConfig(long nwid, long mac, String name, VirtualNetworkStatus status, VirtualNetworkType type, int mtu, boolean dhcp, boolean bridge, boolean broadcastEnabled, int portError, long netconfRevision, InetSocketAddress[] assignedAddresses, VirtualNetworkRoute[] routes, VirtualNetworkDNS dns) { this.nwid = nwid; this.mac = mac; this.name = name; @@ -92,11 +89,11 @@ public class VirtualNetworkConfig implements Comparable<VirtualNetworkConfig> { this.dhcp = dhcp; this.bridge = bridge; this.broadcastEnabled = broadcastEnabled; -// this.portError = portError; -// if (netconfRevision < 0) { -// throw new RuntimeException("netconfRevision < 0: " + netconfRevision); -// } -// this.netconfRevision = netconfRevision; + this.portError = portError; + if (netconfRevision < 0) { + throw new RuntimeException("netconfRevision < 0: " + netconfRevision); + } + this.netconfRevision = netconfRevision; this.assignedAddresses = assignedAddresses; this.routes = routes; this.dns = dns; @@ -104,7 +101,7 @@ public class VirtualNetworkConfig implements Comparable<VirtualNetworkConfig> { @Override public String toString() { - return "VirtualNetworkConfig(" + StringUtils.networkIdToString(nwid) + ", " + StringUtils.macAddressToString(mac) + ", " + name + ", " + status + ", " + type + ", " + mtu + ", " + dhcp + ", " + bridge + ", " + broadcastEnabled + ", " + Arrays.toString(assignedAddresses) + ", " + Arrays.toString(routes) + ", " + dns + ")"; + return "VirtualNetworkConfig(" + StringUtils.networkIdToString(nwid) + ", " + StringUtils.macAddressToString(mac) + ", " + name + ", " + status + ", " + type + ", " + mtu + ", " + dhcp + ", " + bridge + ", " + broadcastEnabled + ", " + portError + ", " + netconfRevision + ", " + Arrays.toString(assignedAddresses) + ", " + Arrays.toString(routes) + ", " + dns + ")"; } @Override @@ -171,17 +168,17 @@ public class VirtualNetworkConfig implements Comparable<VirtualNetworkConfig> { return false; } -// if (this.portError != cfg.portError) { -// Log.i(TAG, "Port Error Changed. Old: " + this.portError + ", New: " + cfg.portError); -// -// return false; -// } -// -// if (this.netconfRevision != cfg.netconfRevision) { -// Log.i(TAG, "NetConfRevision Changed. Old: " + this.netconfRevision + ", New: " + cfg.netconfRevision); -// -// return false; -// } + if (this.portError != cfg.portError) { + Log.i(TAG, "Port Error Changed. Old: " + this.portError + ", New: " + cfg.portError); + + return false; + } + + if (this.netconfRevision != cfg.netconfRevision) { + Log.i(TAG, "NetConfRevision Changed. Old: " + this.netconfRevision + ", New: " + cfg.netconfRevision); + + return false; + } if (!Arrays.equals(assignedAddresses, cfg.assignedAddresses)) { @@ -280,8 +277,8 @@ public class VirtualNetworkConfig implements Comparable<VirtualNetworkConfig> { result = 37 * result + (dhcp ? 1 : 0); result = 37 * result + (bridge ? 1 : 0); result = 37 * result + (broadcastEnabled ? 1 : 0); -// result = 37 * result + portError; -// result = 37 * result + (int) (netconfRevision ^ (netconfRevision >>> 32)); + result = 37 * result + portError; + result = 37 * result + (int) (netconfRevision ^ (netconfRevision >>> 32)); result = 37 * result + Arrays.hashCode(assignedAddresses); result = 37 * result + Arrays.hashCode(routes); result = 37 * result + (dns == null ? 0 : dns.hashCode()); @@ -362,18 +359,18 @@ public class VirtualNetworkConfig implements Comparable<VirtualNetworkConfig> { /** * If the network is in PORT_ERROR state, this is the error most recently returned by the port config callback */ -// public int getPortError() { -// return portError; -// } + public int getPortError() { + return portError; + } /** * Network config revision as reported by netconf master * * <p>If this is zero, it means we're still waiting for our netconf.</p> */ -// public long getNetconfRevision() { -// return netconfRevision; -// } + public long getNetconfRevision() { + return netconfRevision; + } /** * ZeroTier-assigned addresses (in {@link InetSocketAddress} objects) |
