use new ZT_Node_Callbacks struct in JNI

This commit is contained in:
Grant Limberg 2016-11-22 13:03:36 -08:00
parent 9892f7bb47
commit 3c5e28a27d

View File

@ -56,7 +56,11 @@ namespace {
, eventListener(NULL) , eventListener(NULL)
, frameListener(NULL) , frameListener(NULL)
, configListener(NULL) , configListener(NULL)
{} , callbacks(NULL)
{
callbacks = (ZT_Node_Callbacks*)malloc(sizeof(ZT_Node_Callbacks));
memset(callbacks, 0, sizeof(ZT_Node_Callbacks));
}
~JniRef() ~JniRef()
{ {
@ -69,6 +73,9 @@ namespace {
env->DeleteGlobalRef(eventListener); env->DeleteGlobalRef(eventListener);
env->DeleteGlobalRef(frameListener); env->DeleteGlobalRef(frameListener);
env->DeleteGlobalRef(configListener); env->DeleteGlobalRef(configListener);
free(callbacks);
callbacks = NULL;
} }
uint64_t id; uint64_t id;
@ -83,6 +90,8 @@ namespace {
jobject eventListener; jobject eventListener;
jobject frameListener; jobject frameListener;
jobject configListener; 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->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( ZT_ResultCode rc = ZT_Node_new(
&node, &node,
ref, ref,
(uint64_t)now, ref->callbacks,
&DataStoreGetFunction, (uint64_t)now);
&DataStorePutFunction,
&WirePacketSendFunction,
&VirtualNetworkFrameFunctionCallback,
&VirtualNetworkConfigFunctionCallback,
NULL,
&EventCallback);
if(rc != ZT_RESULT_OK) if(rc != ZT_RESULT_OK)
{ {