From 6f07a476a63ad7525c60db07fc9c912d892985ee Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Fri, 24 Apr 2015 18:06:26 -0700 Subject: create and return the peer array --- java/jni/com_zerotierone_sdk_Node.cpp | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'java/jni') 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; } /* -- cgit v1.2.3