mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-05 20:13:44 +02:00
scaffolding for implementation of status() and networkConfig()
They should be able to be called, but will not return valid objects yet Signed-off-by: Grant Limberg <glimberg@gmail.com>
This commit is contained in:
parent
34028aa7c8
commit
32a35e6808
1 changed files with 100 additions and 0 deletions
|
@ -659,6 +659,106 @@ JNIEXPORT jlong JNICALL Java_com_zerotierone_sdk_Node_address
|
||||||
return (jlong)address;
|
return (jlong)address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_zerotierone_sdk_Node
|
||||||
|
* Method: status
|
||||||
|
* Signature: (J)Lcom/zerotierone/sdk/NodeStatus;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_status
|
||||||
|
(JNIEnv *env, jobject obj, jlong id)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// static so we only have to look these up once
|
||||||
|
static jclass nodeStatusClass = NULL;
|
||||||
|
static jmethodID nodeStatusConstructor = NULL;
|
||||||
|
|
||||||
|
// create a com.zerotierone.sdk.NodeStatus object
|
||||||
|
if(nodeStatusClass == NULL)
|
||||||
|
{
|
||||||
|
nodeStatusClass = env->FindClass("com.zerotierone.sdk.NodeStatus");
|
||||||
|
if(nodeStatusClass == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(nodeStatusConstructor == NULL)
|
||||||
|
{
|
||||||
|
nodeStatusConstructor = env->GetMethodID(
|
||||||
|
nodeStatusClass, "<init>", "()V");
|
||||||
|
if(nodeStatusConstructor == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jobject nodeStatusObj = env->NewObject(nodeStatusClass, nodeStatusConstructor);
|
||||||
|
if(nodeStatusObj == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZT1_NodeStatus nodeStatus;
|
||||||
|
ZT1_Node_status(node, &nodeStatus);
|
||||||
|
|
||||||
|
// TODO: copy data from C to Java
|
||||||
|
|
||||||
|
return nodeStatusObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_zerotierone_sdk_Node
|
||||||
|
* Method: networkConfig
|
||||||
|
* Signature: (J)Lcom/zerotierone/sdk/VirtualNetworkConfig;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networkConfig
|
||||||
|
(JNIEnv *env, jobject obj, jlong id, jlong nwid)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create a com.zerotierone.sdk.VirtualNetworkConfig object
|
||||||
|
jclass vnetConfigClass = env->FindClass("com.zerotierone.sdk.VirtualNetworkConfig");
|
||||||
|
if(vnetConfigClass == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
jmethodID vnetConfigConstructor = env->GetMethodID(
|
||||||
|
vnetConfigClass, "<init>", "()V");
|
||||||
|
if(vnetConfigConstructor == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
jobject vnetConfigObj = env->NewObject(vnetConfigClass, vnetConfigConstructor);
|
||||||
|
if(vnetConfigObj == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZT1_VirtualNetworkConfig *vnetConfig = ZT1_Node_networkConfig(node, nwid);
|
||||||
|
|
||||||
|
// TODO: copy data from C to Java
|
||||||
|
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: com_zerotierone_sdk_Node
|
||||||
* Method: version
|
* Method: version
|
||||||
* Signature: (J)Lcom/zerotierone/sdk/Version;
|
* Signature: (J)Lcom/zerotierone/sdk/Version;
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue