static ca_mutex g_multicastDataListMutex = NULL;
/**
+ * To Store Adapter Mode information
+ */
+static bool g_isDiscoveryServer = false;
+
+/**
* This function creates mutex.
*/
static CAResult_t CAEDRManagerInitializeMutex(void);
static void CAEDRDataRecvCallback(bt_socket_received_data_s *data, void *userData);
/**
- * This function starts device discovery.
- */
-static CAResult_t CAEDRStartDeviceDiscovery(void);
-
-/**
* This function stops any ongoing service sevice search.
*/
static CAResult_t CAEDRStopServiceSearch(void);
{
OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "IN");
-
bool isDiscoveryStarted = false;
// Check the device discovery state
}
}
+ g_isDiscoveryServer = true;
+
OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT");
return CA_STATUS_OK;
}
bt_socket_set_connection_state_changed_cb(CAEDRSocketConnectionStateCallback, NULL);
bt_socket_set_data_received_cb(CAEDRDataRecvCallback, NULL);
- // Start device discovery
- CAResult_t result = CAEDRStartDeviceDiscovery();
- if(CA_STATUS_OK != result)
- {
- OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "Failed to Start Device discovery");
- return CA_STATUS_FAILED;
- }
-
OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT");
return CA_STATUS_OK;
}
ca_mutex_unlock(g_edrDeviceListMutex);
- // Start the device Discovery.
- result = CAEDRStartDeviceDiscovery();
- if (CA_STATUS_OK == result)
+ if(g_isDiscoveryServer)
{
- OIC_LOG(INFO, EDR_ADAPTER_TAG, "Add the data to the multicast data list");
-
- EDRData *multicastData = (EDRData *)OICCalloc(1, sizeof(EDRData));
- if (NULL == multicastData)
+ // Start the device Discovery.
+ result = CAEDRStartDeviceDiscovery();
+ if (CA_STATUS_OK == result)
{
- OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Malloc failed");
- goto exit;
- }
- multicastData->data = OICCalloc(1, dataLength);
- if (NULL == multicastData->data)
- {
- OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Malloc failed");
- goto exit;
- }
- memcpy(multicastData->data, data, dataLength);
- multicastData->dataLength = dataLength;
+ OIC_LOG(INFO, EDR_ADAPTER_TAG, "Add the data to the multicast data list");
- // Add the data to pending multicast data list.
- ca_mutex_lock(g_multicastDataListMutex);
- if (NULL == g_multicastDataList)
- {
- g_multicastDataList = u_arraylist_create();
+ EDRData *multicastData = (EDRData *)OICCalloc(1, sizeof(EDRData));
+ if (NULL == multicastData)
+ {
+ OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Malloc failed");
+ goto exit;
+ }
+ multicastData->data = OICCalloc(1, dataLength);
+ if (NULL == multicastData->data)
+ {
+ OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Malloc failed");
+ goto exit;
+ }
+ memcpy(multicastData->data, data, dataLength);
+ multicastData->dataLength = dataLength;
+
+ // Add the data to pending multicast data list.
+ ca_mutex_lock(g_multicastDataListMutex);
+ if (NULL == g_multicastDataList)
+ {
+ g_multicastDataList = u_arraylist_create();
+ }
+ u_arraylist_add(g_multicastDataList, (void *)multicastData);
+ ca_mutex_unlock(g_multicastDataListMutex);
}
- u_arraylist_add(g_multicastDataList, (void *)multicastData);
- ca_mutex_unlock(g_multicastDataListMutex);
}
exit: