summaryrefslogtreecommitdiff
path: root/java
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
parentd8f1c3dff73277000b1c4fe0f8e6dc169576a880 (diff)
downloadinfinitytier-512c3af4eabaa085aca1c8b3dfdbcdd383135b9a.tar.gz
infinitytier-512c3af4eabaa085aca1c8b3dfdbcdd383135b9a.zip
fix packet sending functions
Diffstat (limited to 'java')
-rw-r--r--java/jni/com_zerotierone_sdk_Node.cpp15
-rw-r--r--java/src/com/zerotier/sdk/Node.java6
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);