diff options
author | Grant Limberg <glimberg@gmail.com> | 2015-04-22 20:33:38 -0700 |
---|---|---|
committer | Grant Limberg <glimberg@gmail.com> | 2015-04-22 20:33:38 -0700 |
commit | 1308f02b93505b64b4d590d83a0fb609d82f4597 (patch) | |
tree | f9408d284b3d9f60f0e9384847656010b92c07ea | |
parent | b078d693729ec5ed0403611725dff3ad02303381 (diff) | |
download | infinitytier-1308f02b93505b64b4d590d83a0fb609d82f4597.tar.gz infinitytier-1308f02b93505b64b4d590d83a0fb609d82f4597.zip |
multicastSubscribe() and multicastUnsubscribe()
Signed-off-by: Grant Limberg <glimberg@gmail.com>
-rw-r--r-- | java/jni/com_zerotierone_sdk_Node.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/java/jni/com_zerotierone_sdk_Node.cpp b/java/jni/com_zerotierone_sdk_Node.cpp index 62cd6da4..ae72f68e 100644 --- a/java/jni/com_zerotierone_sdk_Node.cpp +++ b/java/jni/com_zerotierone_sdk_Node.cpp @@ -565,6 +565,66 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_leave return createResultObject(env, rc); } +/* + * Class: com_zerotierone_sdk_Node + * Method: multicastSubscribe + * Signature: (JJJJ)Lcom/zerotierone/sdk/ResultCode; + */ +JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_multicastSubscribe + (JNIEnv *env, jobject obj, + jlong id, + jlong in_nwid, + jlong in_multicastGroup, + jlong in_multicastAdi) +{ + uint64_t nodeId = (uint64_t) id; + ZT1_Node *node = findNode(nodeId); + if(node == NULL) + { + // cannot find valid node. We should never get here. + return createResultObject(env, ZT1_RESULT_FATAL_ERROR_INTERNAL); + } + + uint64_t nwid = (uint64_t)in_nwid; + uint64_t multicastGroup = (uint64_t)in_multicastGroup; + uint64_t multicastAdi = (uint64_t)in_multicastAdi; + + ZT1_ResultCode rc = ZT1_Node_multicastSubscribe( + node, nwid, multicastGroup, multicastAdi); + + return createResultObject(env, rc); +} + +/* + * Class: com_zerotierone_sdk_Node + * Method: multicastUnsubscribe + * Signature: (JJJJ)Lcom/zerotierone/sdk/ResultCode; + */ +JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_multicastUnsubscribe + (JNIEnv *env, jobject obj, + jlong id, + jlong in_nwid, + jlong in_multicastGroup, + jlong in_multicastAdi) +{ + uint64_t nodeId = (uint64_t) id; + ZT1_Node *node = findNode(nodeId); + if(node == NULL) + { + // cannot find valid node. We should never get here. + return createResultObject(env, ZT1_RESULT_FATAL_ERROR_INTERNAL); + } + + uint64_t nwid = (uint64_t)in_nwid; + uint64_t multicastGroup = (uint64_t)in_multicastGroup; + uint64_t multicastAdi = (uint64_t)in_multicastAdi; + + ZT1_ResultCode rc = ZT1_Node_multicastUnsubscribe( + node, nwid, multicastGroup, multicastAdi); + + return createResultObject(env, rc); +} + #ifdef __cplusplus } // extern "C" |