mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-06 12:33:44 +02:00
added functions to create Event, and VirtualNetworkStatus objects
Signed-off-by: Grant Limberg <glimberg@gmail.com>
This commit is contained in:
parent
32a35e6808
commit
667a103a6a
1 changed files with 109 additions and 13 deletions
|
@ -40,6 +40,10 @@ extern "C" {
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
jobject createResultObject(JNIEnv *env, ZT1_ResultCode code);
|
||||||
|
jobject createVirtualNetworkStatus(JNIEnv *env, ZT1_VirtualNetworkStatus status);
|
||||||
|
jobject createEvent(JNIEnv *env, ZT1_Event event);
|
||||||
|
|
||||||
struct JniRef
|
struct JniRef
|
||||||
{
|
{
|
||||||
JniRef()
|
JniRef()
|
||||||
|
@ -163,7 +167,7 @@ namespace {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
jfieldID enumField = env->GetStaticFieldID(resultClass, fieldName.c_str(), "Lcom/zerotierone/sdk/ResultCode");
|
jfieldID enumField = env->GetStaticFieldID(resultClass, fieldName.c_str(), "Lcom/zerotierone/sdk/ResultCode;");
|
||||||
|
|
||||||
resultObject = env->GetStaticObjectField(resultClass, enumField);
|
resultObject = env->GetStaticObjectField(resultClass, enumField);
|
||||||
|
|
||||||
|
@ -180,6 +184,98 @@ namespace {
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jobject createVirtualNetworkStatus(JNIEnv *env, ZT1_VirtualNetworkStatus status)
|
||||||
|
{
|
||||||
|
static jclass statusClass = NULL;
|
||||||
|
|
||||||
|
jobject statusObject = NULL;
|
||||||
|
|
||||||
|
if(statusClass == NULL)
|
||||||
|
{
|
||||||
|
statusClass = env->FindClass("com/zerotierone/sdk/VirtualNetworkStatus");
|
||||||
|
if(statusClass == NULL)
|
||||||
|
{
|
||||||
|
return NULL; // exception thrown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string fieldName;
|
||||||
|
switch(status)
|
||||||
|
{
|
||||||
|
case ZT1_NETWORK_STATUS_REQUESTING_CONFIGURATION:
|
||||||
|
fieldName = "NETWORK_STATUS_REQUESTING_CONFIGURATION";
|
||||||
|
break;
|
||||||
|
case ZT1_NETWORK_STATUS_OK:
|
||||||
|
fieldName = "NETWORK_STATUS_OK";
|
||||||
|
break;
|
||||||
|
case ZT1_NETWORK_STATUS_ACCESS_DENIED:
|
||||||
|
fieldName = "NETWORK_STATUS_ACCESS_DENIED";
|
||||||
|
break;
|
||||||
|
case ZT1_NETWORK_STATUS_NOT_FOUND:
|
||||||
|
fieldName = "NETWORK_STATUS_NOT_FOUND";
|
||||||
|
break;
|
||||||
|
case ZT1_NETWORK_STATUS_PORT_ERROR:
|
||||||
|
fieldName = "NETWORK_STATUS_PORT_ERROR";
|
||||||
|
break;
|
||||||
|
case ZT1_NETWORK_STATUS_CLIENT_TOO_OLD:
|
||||||
|
fieldName = "NETWORK_STATUS_CLIENT_TOO_OLD";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
jfieldID enumField = env->GetStaticFieldID(statusClass, fieldName.c_str(), "Lcom/zerotierone/sdk/VirtualNetworkStatus;");
|
||||||
|
|
||||||
|
statusObject = env->GetStaticObjectField(statusClass, enumField);
|
||||||
|
|
||||||
|
return statusObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
jobject createEvent(JNIEnv *env, ZT1_Event event)
|
||||||
|
{
|
||||||
|
static jclass eventClass = NULL;
|
||||||
|
jobject eventObject = NULL;
|
||||||
|
|
||||||
|
if(eventClass == NULL)
|
||||||
|
{
|
||||||
|
eventClass = env->FindClass("com/zerotierone/sdk/Event");
|
||||||
|
if(eventClass == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string fieldName;
|
||||||
|
switch(event)
|
||||||
|
{
|
||||||
|
case ZT1_EVENT_UP:
|
||||||
|
fieldName = "EVENT_UP";
|
||||||
|
break;
|
||||||
|
case ZT1_EVENT_OFFLINE:
|
||||||
|
fieldName = "EVENT_OFFLINE";
|
||||||
|
break;
|
||||||
|
case ZT1_EVENT_DOWN:
|
||||||
|
fieldName = "EVENT_DOWN";
|
||||||
|
break;
|
||||||
|
case ZT1_EVENT_FATAL_ERROR_IDENTITY_COLLISION:
|
||||||
|
fieldName = "EVENT_FATAL_ERROR_IDENTITY_COLLISION";
|
||||||
|
break;
|
||||||
|
case ZT1_EVENT_AUTHENTICATION_FAILURE:
|
||||||
|
fieldName = "EVENT_AUTHENTICATION_FAILURE";
|
||||||
|
break;
|
||||||
|
case ZT1_EVENT_INVALID_PACKET:
|
||||||
|
fieldName = "EVENT_INVALID_PACKET";
|
||||||
|
break;
|
||||||
|
case ZT1_EVENT_TRACE:
|
||||||
|
fieldName = "EVENT_TRACE";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
jfieldID enumField = env->GetStaticFieldID(eventClass, fieldName.c_str(), "Lcom/zerotierone/sdk/Event;");
|
||||||
|
|
||||||
|
eventObject = env->GetStaticObjectField(eventClass, enumField);
|
||||||
|
|
||||||
|
return eventObject;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -226,7 +322,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_node_1init
|
||||||
|
|
||||||
jclass cls = env->GetObjectClass(obj);
|
jclass cls = env->GetObjectClass(obj);
|
||||||
jfieldID fid = env->GetFieldID(
|
jfieldID fid = env->GetFieldID(
|
||||||
cls, "getListener", "Lcom.zerotierone.sdk.DataStoreGetListener;");
|
cls, "getListener", "Lcom/zerotierone/sdk/DataStoreGetListener;");
|
||||||
|
|
||||||
if(fid == NULL)
|
if(fid == NULL)
|
||||||
{
|
{
|
||||||
|
@ -240,7 +336,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_node_1init
|
||||||
}
|
}
|
||||||
|
|
||||||
fid = env->GetFieldID(
|
fid = env->GetFieldID(
|
||||||
cls, "putListener", "Lcom.zerotierone.sdk.DataStorePutLisetner;");
|
cls, "putListener", "Lcom/zerotierone/sdk/DataStorePutLisetner;");
|
||||||
|
|
||||||
if(fid == NULL)
|
if(fid == NULL)
|
||||||
{
|
{
|
||||||
|
@ -254,7 +350,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_node_1init
|
||||||
}
|
}
|
||||||
|
|
||||||
fid = env->GetFieldID(
|
fid = env->GetFieldID(
|
||||||
cls, "sender", "Lcom.zerotierone.sdk.PacketSender;");
|
cls, "sender", "Lcom/zerotierone/sdk/PacketSender;");
|
||||||
if(fid == NULL)
|
if(fid == NULL)
|
||||||
{
|
{
|
||||||
return NULL; // exception already thrown
|
return NULL; // exception already thrown
|
||||||
|
@ -267,7 +363,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_node_1init
|
||||||
}
|
}
|
||||||
|
|
||||||
fid = env->GetFieldID(
|
fid = env->GetFieldID(
|
||||||
cls, "frameListener", "Lcom.zerotierone.sdk.VirtualNetworkFrameListener;");
|
cls, "frameListener", "Lcom/zerotierone/sdk/VirtualNetworkFrameListener;");
|
||||||
if(fid == NULL)
|
if(fid == NULL)
|
||||||
{
|
{
|
||||||
return NULL; // exception already thrown
|
return NULL; // exception already thrown
|
||||||
|
@ -280,7 +376,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_node_1init
|
||||||
}
|
}
|
||||||
|
|
||||||
fid = env->GetFieldID(
|
fid = env->GetFieldID(
|
||||||
cls, "configListener", "Lcom.zerotierone.sdk.VirtualNetworkConfigListener;");
|
cls, "configListener", "Lcom/zerotierone/sdk/VirtualNetworkConfigListener;");
|
||||||
if(fid == NULL)
|
if(fid == NULL)
|
||||||
{
|
{
|
||||||
return NULL; // exception already thrown
|
return NULL; // exception already thrown
|
||||||
|
@ -682,7 +778,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_status
|
||||||
// create a com.zerotierone.sdk.NodeStatus object
|
// create a com.zerotierone.sdk.NodeStatus object
|
||||||
if(nodeStatusClass == NULL)
|
if(nodeStatusClass == NULL)
|
||||||
{
|
{
|
||||||
nodeStatusClass = env->FindClass("com.zerotierone.sdk.NodeStatus");
|
nodeStatusClass = env->FindClass("com/zerotierone/sdk/NodeStatus");
|
||||||
if(nodeStatusClass == NULL)
|
if(nodeStatusClass == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -730,7 +826,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_networkConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a com.zerotierone.sdk.VirtualNetworkConfig object
|
// create a com.zerotierone.sdk.VirtualNetworkConfig object
|
||||||
jclass vnetConfigClass = env->FindClass("com.zerotierone.sdk.VirtualNetworkConfig");
|
jclass vnetConfigClass = env->FindClass("com/zerotierone/sdk/VirtualNetworkConfig");
|
||||||
if(vnetConfigClass == NULL)
|
if(vnetConfigClass == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -766,7 +862,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||||
(JNIEnv *env, jobject obj)
|
(JNIEnv *env, jobject obj)
|
||||||
{
|
{
|
||||||
// create a com.zerotierone.sdk.Version object
|
// create a com.zerotierone.sdk.Version object
|
||||||
jclass versionClass = env->FindClass("com.zerotierone.sdk.Version");
|
jclass versionClass = env->FindClass("com/zerotierone/sdk/Version");
|
||||||
if(versionClass == NULL)
|
if(versionClass == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -800,7 +896,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||||
|
|
||||||
if(majorField == NULL)
|
if(majorField == NULL)
|
||||||
{
|
{
|
||||||
majorField = env->GetFieldID(versionClass, "major", "Lcom.zerotierone.sdk.Version");
|
majorField = env->GetFieldID(versionClass, "major", "Lcom/zerotierone/sdk/Version;");
|
||||||
if(majorField = NULL)
|
if(majorField = NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -809,7 +905,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||||
|
|
||||||
if(minorField == NULL)
|
if(minorField == NULL)
|
||||||
{
|
{
|
||||||
minorField = env->GetFieldID(versionClass, "minor", "Lcom.zerotierone.sdk.Version");
|
minorField = env->GetFieldID(versionClass, "minor", "Lcom/zerotierone/sdk/Version;");
|
||||||
if(minorField == NULL)
|
if(minorField == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -818,7 +914,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||||
|
|
||||||
if(revisionField == NULL)
|
if(revisionField == NULL)
|
||||||
{
|
{
|
||||||
revisionField = env->GetFieldID(versionClass, "revision", "Lcom.zerotierone.sdk.Version");
|
revisionField = env->GetFieldID(versionClass, "revision", "Lcom/zerotierone/sdk/Version;");
|
||||||
if(revisionField == NULL)
|
if(revisionField == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -827,7 +923,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_version
|
||||||
|
|
||||||
if(featureFlagsField == NULL)
|
if(featureFlagsField == NULL)
|
||||||
{
|
{
|
||||||
featureFlagsField = env->GetFieldID(versionClass, "featureFlags", "Lcom.zerotierone.sdk.Version");
|
featureFlagsField = env->GetFieldID(versionClass, "featureFlags", "Lcom/zerotierone/sdk/Version;");
|
||||||
if(featureFlagsField == NULL)
|
if(featureFlagsField == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Add table
Reference in a new issue