mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-05 20:13:44 +02:00
add ResultCode.fromInt
This commit is contained in:
parent
056cef7292
commit
34ff813e2a
5 changed files with 39 additions and 65 deletions
|
@ -105,6 +105,7 @@ jmethodID VirtualNetworkRoute_ctor;
|
||||||
jmethodID Event_fromInt_method;
|
jmethodID Event_fromInt_method;
|
||||||
jmethodID InetAddress_getByAddress_method;
|
jmethodID InetAddress_getByAddress_method;
|
||||||
jmethodID PeerRole_fromInt_method;
|
jmethodID PeerRole_fromInt_method;
|
||||||
|
jmethodID ResultCode_fromInt_method;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Instance fields
|
// Instance fields
|
||||||
|
@ -160,13 +161,6 @@ jfieldID VirtualNetworkRoute_via_field;
|
||||||
// Static fields
|
// Static fields
|
||||||
//
|
//
|
||||||
|
|
||||||
jfieldID ResultCode_RESULT_ERROR_BAD_PARAMETER_field;
|
|
||||||
jfieldID ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field;
|
|
||||||
jfieldID ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field;
|
|
||||||
jfieldID ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field;
|
|
||||||
jfieldID ResultCode_RESULT_FATAL_ERROR_INTERNAL_field;
|
|
||||||
jfieldID ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field;
|
|
||||||
jfieldID ResultCode_RESULT_OK_field;
|
|
||||||
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field;
|
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field;
|
||||||
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field;
|
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field;
|
||||||
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field;
|
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field;
|
||||||
|
@ -259,6 +253,7 @@ void setupJNICache(JavaVM *vm) {
|
||||||
EXCEPTIONANDNULLCHECK(Event_fromInt_method = env->GetStaticMethodID(Event_class, "fromInt", "(I)Lcom/zerotier/sdk/Event;"));
|
EXCEPTIONANDNULLCHECK(Event_fromInt_method = env->GetStaticMethodID(Event_class, "fromInt", "(I)Lcom/zerotier/sdk/Event;"));
|
||||||
EXCEPTIONANDNULLCHECK(InetAddress_getByAddress_method = env->GetStaticMethodID(InetAddress_class, "getByAddress", "([B)Ljava/net/InetAddress;"));
|
EXCEPTIONANDNULLCHECK(InetAddress_getByAddress_method = env->GetStaticMethodID(InetAddress_class, "getByAddress", "([B)Ljava/net/InetAddress;"));
|
||||||
EXCEPTIONANDNULLCHECK(PeerRole_fromInt_method = env->GetStaticMethodID(PeerRole_class, "fromInt", "(I)Lcom/zerotier/sdk/PeerRole;"));
|
EXCEPTIONANDNULLCHECK(PeerRole_fromInt_method = env->GetStaticMethodID(PeerRole_class, "fromInt", "(I)Lcom/zerotier/sdk/PeerRole;"));
|
||||||
|
EXCEPTIONANDNULLCHECK(ResultCode_fromInt_method = env->GetStaticMethodID(ResultCode_class, "fromInt", "(I)Lcom/zerotier/sdk/ResultCode;"));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Instance fields
|
// Instance fields
|
||||||
|
@ -314,13 +309,6 @@ void setupJNICache(JavaVM *vm) {
|
||||||
// Static fields
|
// Static fields
|
||||||
//
|
//
|
||||||
|
|
||||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_ERROR_BAD_PARAMETER_field = env->GetStaticFieldID(ResultCode_class, "RESULT_ERROR_BAD_PARAMETER", "Lcom/zerotier/sdk/ResultCode;"));
|
|
||||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field = env->GetStaticFieldID(ResultCode_class, "RESULT_ERROR_NETWORK_NOT_FOUND", "Lcom/zerotier/sdk/ResultCode;"));
|
|
||||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field = env->GetStaticFieldID(ResultCode_class, "RESULT_ERROR_UNSUPPORTED_OPERATION", "Lcom/zerotier/sdk/ResultCode;"));
|
|
||||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field = env->GetStaticFieldID(ResultCode_class, "RESULT_FATAL_ERROR_DATA_STORE_FAILED", "Lcom/zerotier/sdk/ResultCode;"));
|
|
||||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_FATAL_ERROR_INTERNAL_field = env->GetStaticFieldID(ResultCode_class, "RESULT_FATAL_ERROR_INTERNAL", "Lcom/zerotier/sdk/ResultCode;"));
|
|
||||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field = env->GetStaticFieldID(ResultCode_class, "RESULT_FATAL_ERROR_OUT_OF_MEMORY", "Lcom/zerotier/sdk/ResultCode;"));
|
|
||||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_OK_field = env->GetStaticFieldID(ResultCode_class, "RESULT_OK", "Lcom/zerotier/sdk/ResultCode;"));
|
|
||||||
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
||||||
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
||||||
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
||||||
|
|
|
@ -74,6 +74,7 @@ extern jmethodID VirtualNetworkRoute_ctor;
|
||||||
extern jmethodID Event_fromInt_method;
|
extern jmethodID Event_fromInt_method;
|
||||||
extern jmethodID InetAddress_getByAddress_method;
|
extern jmethodID InetAddress_getByAddress_method;
|
||||||
extern jmethodID PeerRole_fromInt_method;
|
extern jmethodID PeerRole_fromInt_method;
|
||||||
|
extern jmethodID ResultCode_fromInt_method;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Instance fields
|
// Instance fields
|
||||||
|
@ -129,13 +130,6 @@ extern jfieldID VirtualNetworkRoute_via_field;
|
||||||
// Static fields
|
// Static fields
|
||||||
//
|
//
|
||||||
|
|
||||||
extern jfieldID ResultCode_RESULT_ERROR_BAD_PARAMETER_field;
|
|
||||||
extern jfieldID ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field;
|
|
||||||
extern jfieldID ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field;
|
|
||||||
extern jfieldID ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field;
|
|
||||||
extern jfieldID ResultCode_RESULT_FATAL_ERROR_INTERNAL_field;
|
|
||||||
extern jfieldID ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field;
|
|
||||||
extern jfieldID ResultCode_RESULT_OK_field;
|
|
||||||
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field;
|
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field;
|
||||||
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field;
|
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field;
|
||||||
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field;
|
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field;
|
||||||
|
|
|
@ -32,48 +32,12 @@
|
||||||
|
|
||||||
jobject createResultObject(JNIEnv *env, ZT_ResultCode code)
|
jobject createResultObject(JNIEnv *env, ZT_ResultCode code)
|
||||||
{
|
{
|
||||||
jobject resultObject = NULL;
|
jobject resultObject = env->CallStaticObjectMethod(ResultCode_class, ResultCode_fromInt_method, code);
|
||||||
|
if(env->ExceptionCheck() || resultObject == NULL) {
|
||||||
jfieldID field;
|
LOGE("Error creating ResultCode object");
|
||||||
switch(code)
|
return NULL;
|
||||||
{
|
|
||||||
case ZT_RESULT_OK:
|
|
||||||
case ZT_RESULT_OK_IGNORED:
|
|
||||||
LOGV("ZT_RESULT_OK");
|
|
||||||
field = ResultCode_RESULT_OK_field;
|
|
||||||
break;
|
|
||||||
case ZT_RESULT_FATAL_ERROR_OUT_OF_MEMORY:
|
|
||||||
LOGV("ZT_RESULT_FATAL_ERROR_OUT_OF_MEMORY");
|
|
||||||
field = ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field;
|
|
||||||
break;
|
|
||||||
case ZT_RESULT_FATAL_ERROR_DATA_STORE_FAILED:
|
|
||||||
LOGV("ZT_RESULT_FATAL_ERROR_DATA_STORE_FAILED");
|
|
||||||
field = ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field;
|
|
||||||
break;
|
|
||||||
case ZT_RESULT_ERROR_NETWORK_NOT_FOUND:
|
|
||||||
LOGV("ZT_RESULT_ERROR_NETWORK_NOT_FOUND");
|
|
||||||
field = ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field;
|
|
||||||
break;
|
|
||||||
case ZT_RESULT_ERROR_UNSUPPORTED_OPERATION:
|
|
||||||
LOGV("ZT_RESULT_ERROR_UNSUPPORTED_OPERATION");
|
|
||||||
field = ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field;
|
|
||||||
break;
|
|
||||||
case ZT_RESULT_ERROR_BAD_PARAMETER:
|
|
||||||
LOGV("ZT_RESULT_ERROR_BAD_PARAMETER");
|
|
||||||
field = ResultCode_RESULT_ERROR_BAD_PARAMETER_field;
|
|
||||||
break;
|
|
||||||
case ZT_RESULT_FATAL_ERROR_INTERNAL:
|
|
||||||
default:
|
|
||||||
LOGV("ZT_RESULT_FATAL_ERROR_INTERNAL");
|
|
||||||
field = ResultCode_RESULT_FATAL_ERROR_INTERNAL_field;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
resultObject = env->GetStaticObjectField(ResultCode_class, field);
|
|
||||||
if(env->ExceptionCheck() || resultObject == NULL)
|
|
||||||
{
|
|
||||||
LOGE("Error on GetStaticObjectField");
|
|
||||||
}
|
|
||||||
return resultObject;
|
return resultObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -656,6 +656,10 @@ JNIEXPORT jobject JNICALL Java_com_zerotier_sdk_Node_node_1init(
|
||||||
{
|
{
|
||||||
LOGE("Error creating Node: %d", rc);
|
LOGE("Error creating Node: %d", rc);
|
||||||
resultObject = createResultObject(env, rc);
|
resultObject = createResultObject(env, rc);
|
||||||
|
if (env->ExceptionCheck() || resultObject == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if(node)
|
if(node)
|
||||||
{
|
{
|
||||||
ZT_Node_delete(node);
|
ZT_Node_delete(node);
|
||||||
|
|
|
@ -34,6 +34,8 @@ package com.zerotier.sdk;
|
||||||
* occurs, the node should be considered to not be working correctly. These
|
* occurs, the node should be considered to not be working correctly. These
|
||||||
* indicate serious problems like an inaccessible data store or a compile
|
* indicate serious problems like an inaccessible data store or a compile
|
||||||
* problem.</p>
|
* problem.</p>
|
||||||
|
*
|
||||||
|
* Defined in ZeroTierOne.h as ZT_ResultCode
|
||||||
*/
|
*/
|
||||||
public enum ResultCode {
|
public enum ResultCode {
|
||||||
|
|
||||||
|
@ -69,10 +71,32 @@ public enum ResultCode {
|
||||||
|
|
||||||
RESULT_ERROR_BAD_PARAMETER(1002);
|
RESULT_ERROR_BAD_PARAMETER(1002);
|
||||||
|
|
||||||
|
private final int id;
|
||||||
private final int id;
|
|
||||||
ResultCode(int id) { this.id = id; }
|
ResultCode(int id) {
|
||||||
public int getValue() { return id; }
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ResultCode fromInt(int id) {
|
||||||
|
switch (id) {
|
||||||
|
case 0:
|
||||||
|
return RESULT_OK;
|
||||||
|
case 100:
|
||||||
|
return RESULT_FATAL_ERROR_OUT_OF_MEMORY;
|
||||||
|
case 101:
|
||||||
|
return RESULT_FATAL_ERROR_DATA_STORE_FAILED;
|
||||||
|
case 102:
|
||||||
|
return RESULT_FATAL_ERROR_INTERNAL;
|
||||||
|
case 1000:
|
||||||
|
return RESULT_ERROR_NETWORK_NOT_FOUND;
|
||||||
|
case 1001:
|
||||||
|
return RESULT_ERROR_UNSUPPORTED_OPERATION;
|
||||||
|
case 1002:
|
||||||
|
return RESULT_ERROR_BAD_PARAMETER;
|
||||||
|
default:
|
||||||
|
throw new RuntimeException("Unhandled value: " + id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isFatal(int id) {
|
public boolean isFatal(int id) {
|
||||||
return (id > 100 && id < 1000);
|
return (id > 100 && id < 1000);
|
||||||
|
|
Loading…
Add table
Reference in a new issue