diff options
author | Grant Limberg <grant.limberg@zerotier.com> | 2017-07-12 13:12:45 -0700 |
---|---|---|
committer | Grant Limberg <grant.limberg@zerotier.com> | 2017-07-12 13:12:45 -0700 |
commit | 512c3af4eabaa085aca1c8b3dfdbcdd383135b9a (patch) | |
tree | 4760e0753483918ddf306868ccb8bed8630e5bca /java | |
parent | d8f1c3dff73277000b1c4fe0f8e6dc169576a880 (diff) | |
download | infinitytier-512c3af4eabaa085aca1c8b3dfdbcdd383135b9a.tar.gz infinitytier-512c3af4eabaa085aca1c8b3dfdbcdd383135b9a.zip |
fix packet sending functions
Diffstat (limited to 'java')
-rw-r--r-- | java/jni/com_zerotierone_sdk_Node.cpp | 15 | ||||
-rw-r--r-- | java/src/com/zerotier/sdk/Node.java | 6 |
2 files changed, 16 insertions, 5 deletions
diff --git a/java/jni/com_zerotierone_sdk_Node.cpp b/java/jni/com_zerotierone_sdk_Node.cpp index 94466db1..4d0dcff9 100644 --- a/java/jni/com_zerotierone_sdk_Node.cpp +++ b/java/jni/com_zerotierone_sdk_Node.cpp @@ -443,11 +443,22 @@ namespace { LOGV("Calling onDataStoreGet(%s, %p)", p, buffer); - return (int)env->CallLongMethod( + int retval = (int)env->CallLongMethod( ref->dataStoreGetListener, dataStoreGetCallbackMethod, nameStr, bufferObj); + + LOGV("onDataStoreGet returned %d", retval); + + if(retval > 0) + { + void *data = env->GetPrimitiveArrayCritical(bufferObj, NULL); + memcpy(buffer, data, retval); + env->ReleasePrimitiveArrayCritical(bufferObj, data, 0); + } + + return retval; } int WirePacketSendFunction(ZT_Node *node, @@ -459,7 +470,7 @@ namespace { unsigned int bufferSize, unsigned int ttl) { - LOGV("WirePacketSendFunction(%ld, %p, %p, %d)", localSocket, remoteAddress, buffer, bufferSize); + LOGV("WirePacketSendFunction(%lld, %p, %p, %d)", (long long)localSocket, remoteAddress, buffer, bufferSize); JniRef *ref = (JniRef*)userData; assert(ref->node == node); diff --git a/java/src/com/zerotier/sdk/Node.java b/java/src/com/zerotier/sdk/Node.java index 8e7d44e7..ef6ac9d2 100644 --- a/java/src/com/zerotier/sdk/Node.java +++ b/java/src/com/zerotier/sdk/Node.java @@ -173,12 +173,12 @@ public class Node { */ public ResultCode processWirePacket( long now, - InetSocketAddress localAddress, + long localSocket, InetSocketAddress remoteAddress, byte[] packetData, long[] nextBackgroundTaskDeadline) { return processWirePacket( - nodeId, now, localAddress, remoteAddress, packetData, + nodeId, now, localSocket, remoteAddress, packetData, nextBackgroundTaskDeadline); } @@ -426,7 +426,7 @@ public class Node { private native ResultCode processWirePacket( long nodeId, long now, - InetSocketAddress localAddress, + long localSocket, InetSocketAddress remoteAddress, byte[] packetData, long[] nextBackgroundTaskDeadline); |