+ LEServerInfo *leServerInfo = NULL;
+ CAResult_t result = CA_STATUS_FAILED;
+
+ oc_mutex_lock(g_LEServerListMutex);
+ result = CAGetLEServerInfo(g_LEServerList, remoteAddress, &leServerInfo);
+ oc_mutex_unlock(g_LEServerListMutex);
+
+ if (CA_STATUS_OK == result)
+ {
+ OIC_LOG_V(INFO, TAG, "Device[%s] is already discovered", leServerInfo->remoteAddress);
+
+ // Send the data of pending multicast data list if any.
+ if (g_multicastDataList)
+ {
+ oc_mutex_lock(g_multicastDataListMutex);
+ uint32_t arrayLength = u_arraylist_length(g_multicastDataList);
+ for (uint32_t i = 0; i < arrayLength; i++)
+ {
+ CALEData_t *multicastData = u_arraylist_get(g_multicastDataList, i);
+ if (NULL == multicastData)
+ {
+ OIC_LOG(DEBUG, TAG, "multicastData is NULL");
+ continue;
+ }
+ CAUpdateCharacteristicsToGattServer(remoteAddress, multicastData->data,
+ multicastData->dataLen, LE_UNICAST, 0);
+ }
+ oc_mutex_unlock(g_multicastDataListMutex);
+ }
+
+ OIC_LOG(DEBUG, TAG, "OUT");
+ return CA_STATUS_OK;
+ }
+ else
+ {
+ OIC_LOG_V(INFO, TAG, "CAGetLEServerInfo [%s] is failed, %d", remoteAddress, result);
+ }
+