summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorGrant Limberg <glimberg@gmail.com>2015-04-24 18:06:26 -0700
committerGrant Limberg <glimberg@gmail.com>2015-04-24 18:06:26 -0700
commit6f07a476a63ad7525c60db07fc9c912d892985ee (patch)
tree8007543dacd7f12d9b2ae485cc04f0b1259a3b2d /java
parent52a20b4b0ffefa5b1eea63e57daa7bd28005ca6d (diff)
downloadinfinitytier-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.cpp29
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;
}
/*