diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/jni/com_zerotierone_sdk_Node.h | 16 | ||||
-rw-r--r-- | java/src/com/zerotierone/sdk/Node.java | 50 |
2 files changed, 46 insertions, 20 deletions
diff --git a/java/jni/com_zerotierone_sdk_Node.h b/java/jni/com_zerotierone_sdk_Node.h index 706e7bcd..4682fa51 100644 --- a/java/jni/com_zerotierone_sdk_Node.h +++ b/java/jni/com_zerotierone_sdk_Node.h @@ -26,18 +26,26 @@ JNIEXPORT void JNICALL Java_com_zerotierone_sdk_Node_node_1delete /* * Class: com_zerotierone_sdk_Node * Method: processVirtualNetworkFrame - * Signature: (JJJJJIILjava/nio/ByteBuffer;ILjava/lang/Long;)Lcom/zerotierone/sdk/ResultCode; + * Signature: (JJJJJII[B[J)Lcom/zerotierone/sdk/ResultCode; */ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_processVirtualNetworkFrame - (JNIEnv *, jobject, jlong, jlong, jlong, jlong, jlong, jint, jint, jobject, jint, jobject); + (JNIEnv *, jobject, jlong, jlong, jlong, jlong, jlong, jint, jint, jbyteArray, jlongArray); + +/* + * Class: com_zerotierone_sdk_Node + * Method: processWirePacket + * Signature: (JJLjava/net/InetAddress;I[B[J)Lcom/zerotierone/sdk/ResultCode; + */ +JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_processWirePacket + (JNIEnv *, jobject, jlong, jlong, jobject, jint, jbyteArray, jlongArray); /* * Class: com_zerotierone_sdk_Node * Method: processBackgroundTasks - * Signature: (JJLjava/lang/Long;)Lcom/zerotierone/sdk/ResultCode; + * Signature: (JJ[J)Lcom/zerotierone/sdk/ResultCode; */ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_processBackgroundTasks - (JNIEnv *, jobject, jlong, jlong, jobject); + (JNIEnv *, jobject, jlong, jlong, jlongArray); /* * Class: com_zerotierone_sdk_Node diff --git a/java/src/com/zerotierone/sdk/Node.java b/java/src/com/zerotierone/sdk/Node.java index 635f2b9e..61150dc9 100644 --- a/java/src/com/zerotierone/sdk/Node.java +++ b/java/src/com/zerotierone/sdk/Node.java @@ -29,6 +29,7 @@ package com.zerotierone.sdk; import java.nio.ByteBuffer; import java.lang.Long; +import java.net.InetAddress; public class Node { static { @@ -85,18 +86,6 @@ public class Node { close(); } - private native ResultCode processVirtualNetworkFrame( - long nodeId, - long now, - long nwid, - long sourceMac, - long destMac, - int etherType, - int vlanId, - ByteBuffer frameData, - int frameLength, - Long nextBackgroundTaskDeadline); - public ResultCode processVirtualNetworkFrame( long now, long nwid, @@ -104,14 +93,24 @@ public class Node { long destMac, int etherType, int vlanId, - ByteBuffer frameData, - int frameLength, - Long nextBackgroundTaskDeadline) { + byte[] frameData, + long[] nextBackgroundTaskDeadline) { return processVirtualNetworkFrame( nodeId, now, nwid, sourceMac, destMac, etherType, vlanId, frameData, frameLength, nextBackgroundTaskDeadline); } + public ResultCode processWirePacket( + long now, + InetAddress remoteAddress, + int linkDesperation, + byte[] packetData, + long[] nextBackgroundTaskDeadline) { + return processWirePacket( + nodeId, now, remoteAddress, linkDesperation, packetData, + nextBackgroundTaskDeadline); + } + public ResultCode processBackgroundTasks(long now, long nextBackgroundTaskDeadline) { return processBackgroundTasks(nodeId, now, nextBackgroundTaskDeadline); } @@ -161,10 +160,29 @@ public class Node { private native void node_delete(long nodeId); + private native ResultCode processVirtualNetworkFrame( + long nodeId, + long now, + long nwid, + long sourceMac, + long destMac, + int etherType, + int vlanId, + byte[] frameData, + long[] nextBackgroundTaskDeadline); + + private native ResultCode processWirePacket( + long nodeId, + long now, + InetAddress remoteAddress, + int linkDesperation, + byte[] packetData, + long[] nextBackgroundTaskDeadline); + private native ResultCode processBackgroundTasks( long nodeId, long now, - Long nextBackgroundTaskDeadline); + long[] nextBackgroundTaskDeadline); private native ResultCode join(long nodeId, long nwid); |