diff options
author | Grant Limberg <glimberg@gmail.com> | 2015-04-24 18:06:26 -0700 |
---|---|---|
committer | Grant Limberg <glimberg@gmail.com> | 2015-04-24 18:06:26 -0700 |
commit | 6f07a476a63ad7525c60db07fc9c912d892985ee (patch) | |
tree | 8007543dacd7f12d9b2ae485cc04f0b1259a3b2d /java | |
parent | 52a20b4b0ffefa5b1eea63e57daa7bd28005ca6d (diff) | |
download | infinitytier-6f07a476a63ad7525c60db07fc9c912d892985ee.tar.gz infinitytier-6f07a476a63ad7525c60db07fc9c912d892985ee.zip |
create and return the peer array
Diffstat (limited to 'java')
-rw-r--r-- | java/jni/com_zerotierone_sdk_Node.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/java/jni/com_zerotierone_sdk_Node.cpp b/java/jni/com_zerotierone_sdk_Node.cpp index c728f47e..abd88fd7 100644 --- a/java/jni/com_zerotierone_sdk_Node.cpp +++ b/java/jni/com_zerotierone_sdk_Node.cpp @@ -1051,7 +1051,34 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version( JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_peers( JNIEnv *env, jobject obj, jlong id) { - return NULL; + uint64_t nodeId = (uint64_t) id; + ZT1_Node *node = findNode(nodeId); + if(node == NULL) + { + // cannot find valid node. We should never get here. + return 0; + } + + ZT1_PeerList *peerList = ZT1_Node_peers(node); + + if(peerList == NULL) + { + return NULL; + } + + jobject peerListObject = newArrayList(env); + if(peerListObject == NULL) + { + return NULL; + } + + for(unsigned int i = 0; i < peerList->peerCount; ++i) + { + jobject peerObj = newPeer(env, peerList->peers[i]); + appendItemToArrayList(env, peerListObject, peerObj); + } + + return peerListObject; } /* |