summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorGrant Limberg <glimberg@gmail.com>2015-04-22 21:29:45 -0700
committerGrant Limberg <glimberg@gmail.com>2015-04-22 21:29:45 -0700
commit3ccaef88b7a0f6cd7a4cf4f68d99aa04cbc47152 (patch)
treea002e82ddb6c42ee5ae0fb10b865f0c2941954db /java
parentf5bb57d5aa811576b80fc746b0935fe7d3754ab2 (diff)
downloadinfinitytier-3ccaef88b7a0f6cd7a4cf4f68d99aa04cbc47152.tar.gz
infinitytier-3ccaef88b7a0f6cd7a4cf4f68d99aa04cbc47152.zip
Added implementation for Node.version()
Signed-off-by: Grant Limberg <glimberg@gmail.com>
Diffstat (limited to 'java')
-rw-r--r--java/jni/com_zerotierone_sdk_Node.cpp85
-rw-r--r--java/jni/com_zerotierone_sdk_Node.h2
-rw-r--r--java/src/com/zerotierone/sdk/Node.java4
-rw-r--r--java/src/com/zerotierone/sdk/Version.java10
4 files changed, 94 insertions, 7 deletions
diff --git a/java/jni/com_zerotierone_sdk_Node.cpp b/java/jni/com_zerotierone_sdk_Node.cpp
index 942f9f6d..eac1ae04 100644
--- a/java/jni/com_zerotierone_sdk_Node.cpp
+++ b/java/jni/com_zerotierone_sdk_Node.cpp
@@ -639,6 +639,91 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_multicastUnsubscribe
return createResultObject(env, rc);
}
+/*
+ * Class: com_zerotierone_sdk_Node
+ * Method: version
+ * Signature: (J)Lcom/zerotierone/sdk/Version;
+ */
+JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
+ (JNIEnv *env, jobject obj)
+{
+ // create a com.zerotierone.sdk.Version object
+ jclass versionClass = env->FindClass("com.zerotierone.sdk.Version");
+ if(versionClass == NULL)
+ {
+ return NULL;
+ }
+
+ jmethodID versionConstructor = env->GetMethodID(
+ versionClass, "<init>", "()V");
+ if(versionConstructor == NULL)
+ {
+ return NULL;
+ }
+
+ jobject versionObj = env->NewObject(versionClass, versionConstructor);
+ if(versionObj == NULL)
+ {
+ return NULL;
+ }
+
+ int major = 0;
+ int minor = 0;
+ int revision = 0;
+ unsigned long featureFlags = 0;
+
+ ZT1_version(&major, &minor, &revision, &featureFlags);
+
+ // copy data to Version object
+ static jfieldID majorField = NULL;
+ static jfieldID minorField = NULL;
+ static jfieldID revisionField = NULL;
+ static jfieldID featureFlagsField = NULL;
+
+ if(majorField == NULL)
+ {
+ majorField = env->GetFieldID(versionClass, "major", "Lcom.zerotierone.sdk.Version");
+ if(majorField = NULL)
+ {
+ return NULL;
+ }
+ }
+
+ if(minorField == NULL)
+ {
+ minorField = env->GetFieldID(versionClass, "minor", "Lcom.zerotierone.sdk.Version");
+ if(minorField == NULL)
+ {
+ return NULL;
+ }
+ }
+
+ if(revisionField == NULL)
+ {
+ revisionField = env->GetFieldID(versionClass, "revision", "Lcom.zerotierone.sdk.Version");
+ if(revisionField == NULL)
+ {
+ return NULL;
+ }
+ }
+
+ if(featureFlagsField == NULL)
+ {
+ featureFlagsField = env->GetFieldID(versionClass, "featureFlags", "Lcom.zerotierone.sdk.Version");
+ if(featureFlagsField == NULL)
+ {
+ return NULL;
+ }
+ }
+
+ env->SetIntField(versionObj, majorField, (jint)major);
+ env->SetIntField(versionObj, minorField, (jint)minor);
+ env->SetIntField(versionObj, revisionField, (jint)revision);
+ env->SetLongField(versionObj, featureFlagsField, (jlong)featureFlags);
+
+
+ return versionObj;
+}
#ifdef __cplusplus
} // extern "C"
diff --git a/java/jni/com_zerotierone_sdk_Node.h b/java/jni/com_zerotierone_sdk_Node.h
index 107d336e..b5044097 100644
--- a/java/jni/com_zerotierone_sdk_Node.h
+++ b/java/jni/com_zerotierone_sdk_Node.h
@@ -109,7 +109,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networkConfig
* Signature: (J)Lcom/zerotierone/sdk/Version;
*/
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
- (JNIEnv *, jobject, jlong);
+ (JNIEnv *, jobject);
#ifdef __cplusplus
}
diff --git a/java/src/com/zerotierone/sdk/Node.java b/java/src/com/zerotierone/sdk/Node.java
index 616951cb..8225e0f0 100644
--- a/java/src/com/zerotierone/sdk/Node.java
+++ b/java/src/com/zerotierone/sdk/Node.java
@@ -222,11 +222,11 @@ public class Node {
// TODO: ZT1_Node_peers
- private native VirtualNetworkConfig networkConfig(long nodeId);
+ private native VirtualNetworkConfig networkConfig(long nodeId, long nwid);
// TODO: ZT1_Node_networks
- private native Version version(long nodeId);
+ private native Version version();
} \ No newline at end of file
diff --git a/java/src/com/zerotierone/sdk/Version.java b/java/src/com/zerotierone/sdk/Version.java
index b260c9de..abdaab9e 100644
--- a/java/src/com/zerotierone/sdk/Version.java
+++ b/java/src/com/zerotierone/sdk/Version.java
@@ -28,8 +28,10 @@
package com.zerotierone.sdk;
public class Version {
- public int major;
- public int minor;
- public int revision;
- public long featureFlags;
+ public Version() {}
+
+ public int major = 0;
+ public int minor = 0;
+ public int revision = 0;
+ public long featureFlags = 0;
} \ No newline at end of file