if (NULL == g_networkChangeCb)
{
- OIC_LOG(DEBUG, TAG, "gNetworkChangeCb is null");
+ OIC_LOG(DEBUG, TAG, "g_networkChangeCb is null");
return;
}
if (state_on == status)
{
CANetworkStatus_t newStatus = CA_INTERFACE_UP;
+
+ CAResult_t res = CAEDRStartUnicastServer(false);
+ if (CA_STATUS_OK != res)
+ {
+ OIC_LOG(ERROR, TAG, "CAEDRStartUnicastServer failed");
+ return;
+ }
CAEDRServerStartAcceptThread();
g_networkChangeCb(newStatus);
}
else if (state_off == status)
{
CANetworkStatus_t newStatus = CA_INTERFACE_DOWN;
+ CAEDRServerStop();
+ CAEDRNativeSocketCloseToAll(env);
+ CAEDRNativeRemoveAllDeviceState();
CAEDRNativeRemoveAllDeviceSocket(env);
- CAEDRNativeRemoveAllDeviceState(env);
g_networkChangeCb(newStatus);
}
}
CAAdapterReceiveThreadContext_t *ctx = (CAAdapterReceiveThreadContext_t *) data;
+ ca_mutex_lock(g_mutexUnicastServer);
+ g_stopUnicast = false;
+ ca_mutex_unlock(g_mutexUnicastServer);
+
while (true != *(ctx->stopFlag))
{
// if new socket object is added in socket list after below logic is ran.
// remove socket to list
CAEDRNativeRemoveDeviceSocket(env, jni_obj_socket);
+ CAEDRNativeRemoveDevice(address);
(*env)->ReleaseStringUTFChars(env, jni_str_address, address);
(*env)->DeleteLocalRef(env, jni_str_address);
if (!jni_cid_BTsocket)
{
(*env)->DeleteLocalRef(env, jni_str_address);
-
OIC_LOG(ERROR, TAG, "[EDR][Native] btReadData: jni_cid_BTsocket is null");
return CA_STATUS_FAILED;
}