summaryrefslogtreecommitdiff
path: root/java/jni
diff options
context:
space:
mode:
authorGrant Limberg <grant.limberg@zerotier.com>2017-07-12 13:12:45 -0700
committerGrant Limberg <grant.limberg@zerotier.com>2017-07-12 13:12:45 -0700
commit512c3af4eabaa085aca1c8b3dfdbcdd383135b9a (patch)
tree4760e0753483918ddf306868ccb8bed8630e5bca /java/jni
parentd8f1c3dff73277000b1c4fe0f8e6dc169576a880 (diff)
downloadinfinitytier-512c3af4eabaa085aca1c8b3dfdbcdd383135b9a.tar.gz
infinitytier-512c3af4eabaa085aca1c8b3dfdbcdd383135b9a.zip
fix packet sending functions
Diffstat (limited to 'java/jni')
-rw-r--r--java/jni/com_zerotierone_sdk_Node.cpp15
1 files changed, 13 insertions, 2 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);