Browse Source

don't create an InetSocketAddress on local address if it's equal to ZT_SOCKADDR_NULL

Grant Limberg 10 years ago
parent
commit
75a191a856
1 changed files with 6 additions and 1 deletions
  1. 6 1
      java/jni/com_zerotierone_sdk_Node.cpp

+ 6 - 1
java/jni/com_zerotierone_sdk_Node.cpp

@@ -469,7 +469,12 @@ namespace {
             return -2;
             return -2;
         }
         }
         
         
-        jobject localAddressObj = newInetSocketAddress(env, *localAddress);
+        jobject localAddressObj = NULL;
+        if(memcmp(localAddress, &ZT_SOCKADDR_NULL, sizeof(sockaddr_storage)) != 0)
+        {
+            localAddressObj = newInetSocketAddress(env, *localAddress);
+        }
+
         jobject remoteAddressObj = newInetSocketAddress(env, *remoteAddress);
         jobject remoteAddressObj = newInetSocketAddress(env, *remoteAddress);
         jbyteArray bufferObj = env->NewByteArray(bufferSize);
         jbyteArray bufferObj = env->NewByteArray(bufferSize);
         env->SetByteArrayRegion(bufferObj, 0, bufferSize, (jbyte*)buffer);
         env->SetByteArrayRegion(bufferObj, 0, bufferSize, (jbyte*)buffer);