From: samanway Date: Wed, 30 Oct 2019 10:27:15 +0000 (+0530) Subject: Adding retry logic for gatt connection for VD client X-Git-Tag: submit/tizen/20200121.084836~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1cd1a6cd15480a9d42ae0c69e553ec72202b3dcb;p=platform%2Fupstream%2Fiotivity.git Adding retry logic for gatt connection for VD client - There was an issue initially reported for LUX, that Gatt Client disconnects just after it connects - Connection retry logic was added as a fix in the commit 25ef240cc9978fa5945a26e72a8e763c436960db - Again the same issue was reported for TV - So adding the same fix in VD client https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/commit/6faf5ba264411d383ec5c3225f9fdcd90690088d (cherry-picked from 6faf5ba264411d383ec5c3225f9fdcd90690088d) Change-Id: I0c7ad06e65b1c1774b9d7269be64a2f569d55664 Signed-off-by: samanway-dey Signed-off-by: Sudipto --- diff --git a/resource/csdk/connectivity/src/bt_le_adapter/tizen/caleclient.c b/resource/csdk/connectivity/src/bt_le_adapter/tizen/caleclient.c index 561e2bf62..f6cb5b8ea 100644 --- a/resource/csdk/connectivity/src/bt_le_adapter/tizen/caleclient.c +++ b/resource/csdk/connectivity/src/bt_le_adapter/tizen/caleclient.c @@ -58,7 +58,6 @@ static int g_retrycount = 0; static int retry_flag = 0; uint64_t const TIMEOUT = 30 * MICROSECS_PER_SEC; -#ifndef TIZEN_VD /** * Mutex to call connect only after disconnect during retry */ @@ -68,7 +67,6 @@ static oc_mutex g_isDisconnectedMutex = NULL; * Condition for calling connect during connection retry */ static oc_cond g_LEDisconnectedCond = NULL; -#endif /** * Flag to check if scanning is in progress @@ -290,10 +288,8 @@ CAResult_t CALEGattInitiateConnection(const char *remoteAddress) return CA_STATUS_FAILED; } g_isConnectionInProgress = true; -#ifndef TIZEN_VD // Set gatt connect retry count g_retrycount = RETRY_COUNT; -#endif oc_mutex_unlock(g_isConnectionInProgressMutex); // Pause the scanning @@ -340,11 +336,6 @@ void CALEGattConnectionStateChanged(bool connected, const char *remoteAddress) if (!connected) { OIC_LOG_V(DEBUG, TAG, "DisConnected from [%s] ", remoteAddress); -#ifdef TIZEN_VD - oc_mutex_lock(g_LEServerListMutex); - CARemoveLEServerInfoFromList(&g_LEServerList, remoteAddress); - oc_mutex_unlock(g_LEServerListMutex); -#else if(!retry_flag) { oc_mutex_lock(g_LEServerListMutex); @@ -358,7 +349,6 @@ void CALEGattConnectionStateChanged(bool connected, const char *remoteAddress) oc_mutex_unlock(g_isDisconnectedMutex); } retry_flag = 0; -#endif } else { @@ -577,7 +567,6 @@ void CALEAdapterScanResultCb(int result, bt_adapter_le_device_scan_result_info_s oc_mutex_unlock(g_LEServerListMutex); } - OIC_LOG(DEBUG, TAG, "OUT"); } @@ -941,7 +930,6 @@ CAResult_t CAInitGattClientMutexVariables() } } -#ifndef TIZEN_VD if (NULL == g_isDisconnectedMutex) { g_isDisconnectedMutex = oc_mutex_new(); @@ -961,7 +949,6 @@ CAResult_t CAInitGattClientMutexVariables() return CA_STATUS_FAILED; } } -#endif if (NULL == g_startTimerCond) { @@ -1045,13 +1032,11 @@ void CATerminateGattClientMutexVariables() oc_mutex_free(g_threadMTUChangedMutex); g_threadMTUChangedMutex = NULL; -#ifndef TIZEN_VD oc_mutex_free(g_isDisconnectedMutex); g_isDisconnectedMutex = NULL; oc_cond_free(g_LEDisconnectedCond); g_LEDisconnectedCond = NULL; -#endif oc_cond_free(g_startTimerCond); g_startTimerCond = NULL; @@ -1321,7 +1306,6 @@ void CADiscoverLEServicesThread(void *remoteAddress) OIC_LOG(DEBUG, TAG, "OUT"); } -#ifndef TIZEN_VD static int CALEWaittillDisconnect(oc_mutex mutex, oc_cond cv, int wait_seconds) { OIC_LOG(DEBUG, TAG, "Waiting for server to be disconnected..."); @@ -1344,7 +1328,6 @@ static CAResult_t CALEGattConnectionRetry(const char *remoteAddress) OIC_LOG(DEBUG, TAG, "OUT"); return result; } -#endif CAResult_t CALEGattDiscoverServices(const char *remoteAddress) { @@ -1370,9 +1353,7 @@ CAResult_t CALEGattDiscoverServices(const char *remoteAddress) { OIC_LOG_V(ERROR, TAG, "bt_gatt_client_get_service Failed with ret value [%s] ", CALEGetErrorMsg(ret)); -#ifdef TIZEN_VD - goto error_exit; -#else + if(g_retrycount) { OIC_LOG(DEBUG, TAG, "Retry will be attempted to connect Gatt Server"); @@ -1392,7 +1373,6 @@ CAResult_t CALEGattDiscoverServices(const char *remoteAddress) return CA_STATUS_FAILED; } } -#endif } retry_flag = 0;