|
|
|
|
@ -56,7 +56,11 @@ namespace {
|
|
|
|
|
, eventListener(NULL) |
|
|
|
|
, frameListener(NULL) |
|
|
|
|
, configListener(NULL) |
|
|
|
|
{} |
|
|
|
|
, callbacks(NULL) |
|
|
|
|
{ |
|
|
|
|
callbacks = (ZT_Node_Callbacks*)malloc(sizeof(ZT_Node_Callbacks)); |
|
|
|
|
memset(callbacks, 0, sizeof(ZT_Node_Callbacks)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
~JniRef() |
|
|
|
|
{ |
|
|
|
|
@ -69,6 +73,9 @@ namespace {
|
|
|
|
|
env->DeleteGlobalRef(eventListener); |
|
|
|
|
env->DeleteGlobalRef(frameListener); |
|
|
|
|
env->DeleteGlobalRef(configListener); |
|
|
|
|
|
|
|
|
|
free(callbacks); |
|
|
|
|
callbacks = NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint64_t id; |
|
|
|
|
@ -83,6 +90,8 @@ namespace {
|
|
|
|
|
jobject eventListener; |
|
|
|
|
jobject frameListener; |
|
|
|
|
jobject configListener; |
|
|
|
|
|
|
|
|
|
ZT_Node_Callbacks *callbacks; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -602,17 +611,18 @@ JNIEXPORT jobject JNICALL Java_com_zerotier_sdk_Node_node_1init(
|
|
|
|
|
} |
|
|
|
|
ref->eventListener = env->NewGlobalRef(tmp); |
|
|
|
|
|
|
|
|
|
ref->callbacks->dataStoreGetFunction = &DataStoreGetFunction; |
|
|
|
|
ref->callbacks->dataStorePutFunction = &DataStorePutFunction; |
|
|
|
|
ref->callbacks->wirePacketSendFunction = &WirePacketSendFunction; |
|
|
|
|
ref->callbacks->virtualNetworkFrameFunction = &VirtualNetworkFrameFunctionCallback; |
|
|
|
|
ref->callbacks->virtualNetworkConfigFunction = &VirtualNetworkConfigFunctionCallback; |
|
|
|
|
ref->callbacks->eventCallback = &EventCallback; |
|
|
|
|
|
|
|
|
|
ZT_ResultCode rc = ZT_Node_new( |
|
|
|
|
&node, |
|
|
|
|
ref, |
|
|
|
|
(uint64_t)now, |
|
|
|
|
&DataStoreGetFunction, |
|
|
|
|
&DataStorePutFunction, |
|
|
|
|
&WirePacketSendFunction, |
|
|
|
|
&VirtualNetworkFrameFunctionCallback, |
|
|
|
|
&VirtualNetworkConfigFunctionCallback, |
|
|
|
|
NULL, |
|
|
|
|
&EventCallback); |
|
|
|
|
ref->callbacks, |
|
|
|
|
(uint64_t)now); |
|
|
|
|
|
|
|
|
|
if(rc != ZT_RESULT_OK) |
|
|
|
|
{ |
|
|
|
|
|