implement VirtualNetworkConfigFunctionCallback

This commit is contained in:
Grant Limberg 2015-04-24 18:39:17 -07:00
parent 99af0f3a88
commit 28168fa673
4 changed files with 78 additions and 6 deletions

View file

@ -65,14 +65,49 @@ namespace {
};
int VirtualNetworkConfigFunctionCallback(ZT1_Node *node,void *userData,uint64_t,enum ZT1_VirtualNetworkConfigOperation,const ZT1_VirtualNetworkConfig *)
int VirtualNetworkConfigFunctionCallback(ZT1_Node *node,void *userData,uint64_t nwid,enum ZT1_VirtualNetworkConfigOperation operation, const ZT1_VirtualNetworkConfig *config)
{
JniRef *ref = (JniRef*)userData;
assert(ref->node == node);
JNIEnv *env = ref->env;
return 0;
static jclass configListenerClass = NULL;
static jmethodID callbackMethod = NULL;
if(configListenerClass == NULL)
{
configListenerClass = env->GetObjectClass(ref->configListener);
if(configListenerClass == NULL)
{
return -1;
}
}
if(callbackMethod == NULL)
{
callbackMethod = env->GetMethodID(configListenerClass,
"onNetworkConfigurationUpdated",
"(JLcom/zerotierone/sdk/VirtualNetworkConfigOperation;Lcom/zerotierone/sdk/VirtualNetworkConfig;)I");
if(callbackMethod == NULL)
{
return -2;
}
}
jobject operationObject = createVirtualNetworkConfigOperation(env, operation);
if(operationObject == NULL)
{
return -3;
}
jobject networkConfigObject = newNetworkConfig(env, *config);
if(networkConfigObject == NULL)
{
return -4;
}
return env->CallIntMethod(ref->configListener, callbackMethod, (jlong)nwid, operationObject, networkConfigObject);
}
void VirtualNetworkFrameFunctionCallback(ZT1_Node *node,void *userData,uint64_t,uint64_t,uint64_t,unsigned int,unsigned int,const void *,unsigned int)