Bläddra i källkod

* Change a few method signatures from java.lang.Long to long[] so that values can be passed back.

Signed-off-by: Grant Limberg <[email protected]>
Grant Limberg 10 år sedan
förälder
incheckning
787b4a8e50
2 ändrade filer med 46 tillägg och 20 borttagningar
  1. 12 4
      java/jni/com_zerotierone_sdk_Node.h
  2. 34 16
      java/src/com/zerotierone/sdk/Node.java

+ 12 - 4
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

+ 34 - 16
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);