From 3d10f07a385e049d8782d65509bf5ff7d3ee60da Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 09:38:19 +0530 Subject: [PATCH 01/11] Move instead of copy --- rfcMgr/rfc_xconf_handler.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index a2c68639..a0d270b3 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1295,13 +1295,12 @@ void RuntimeFeatureControlProcessor::clearDB(void) std::ofstream touch_file(TR181STOREFILE); touch_file.close(); - set_RFCProperty(name, ClearDB, clearValue); - set_RFCProperty(name, BootstrapClearDB, clearValue); - set_RFCProperty(name, ConfigChangeTimeKey, ConfigChangeTime); - - RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DB Value: %s\n", __FUNCTION__,__LINE__,ClearDB.c_str()); + RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DB Value: %s\n", __FUNCTION__,__LINE__,ClearDB.c_str()); + set_RFCProperty(name, std::move(ClearDB), clearValue); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DB Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDB.c_str()); - RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] ConfigChangeTime: %s\n", __FUNCTION__,__LINE__,ConfigChangeTime.c_str()); + set_RFCProperty(name, std::move(BootstrapClearDB), clearValue); + RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] ConfigChangeTime: %s\n", __FUNCTION__,__LINE__,ConfigChangeTime.c_str()); + set_RFCProperty(name, std::move(ConfigChangeTimeKey), ConfigChangeTime); #else RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing tr181 store\n", __FUNCTION__,__LINE__); @@ -1342,7 +1341,7 @@ void RuntimeFeatureControlProcessor::rfcStashRetrieveParams(void) std::string name = "rfc"; - WDMP_STATUS status = set_RFCProperty(name, RFC_ACCOUNT_ID_KEY_STR, stashAccountId); + WDMP_STATUS status = set_RFCProperty(name, RFC_ACCOUNT_ID_KEY_STR, std::move(stashAccountId)); if (status != WDMP_SUCCESS) { #if !defined(RDKB_SUPPORT) @@ -1370,14 +1369,14 @@ void RuntimeFeatureControlProcessor::clearDBEnd(void){ std::string ClearDBEndKey = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ClearDBEnd"; std::string BootstrapClearDBEndKey = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.Control.ClearDBEnd"; std::string reloadCacheKey = "RFC_CONTROL_RELOADCACHE"; - - set_RFCProperty(name, ClearDBEndKey, clearValue); - set_RFCProperty(name, BootstrapClearDBEndKey, clearValue); - set_RFCProperty(name, reloadCacheKey, clearValue); - RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,ClearDBEndKey.c_str()); + RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,ClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Reload Cache Key: %s\n", __FUNCTION__,__LINE__,reloadCacheKey.c_str()); + set_RFCProperty(name, std::move(ClearDBEndKey), clearValue); + set_RFCProperty(name, std::move(BootstrapClearDBEndKey), clearValue); + set_RFCProperty(name, std::move(reloadCacheKey), clearValue); + } void RuntimeFeatureControlProcessor::updateHashInDB(std::string configSetHash) From 3d9ee804e0c8a60e2d7838742fc283b4a330caa1 Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 10:29:01 +0530 Subject: [PATCH 02/11] Update rfc_xconf_handler.cpp --- rfcMgr/rfc_xconf_handler.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index a0d270b3..82577d21 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1386,7 +1386,7 @@ void RuntimeFeatureControlProcessor::updateHashInDB(std::string configSetHash) #if !defined(RDKB_SUPPORT) std::string ConfigSetHashName = "ConfigSetHash"; std::string ConfigSetHash_key = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash"; - set_RFCProperty(ConfigSetHashName, ConfigSetHash_key, configSetHash); + set_RFCProperty(std::move(ConfigSetHashName), std::move(ConfigSetHash_key), configSetHash); #else const std::string RFC_RAM_PATH = "/tmp/RFC"; std::string filePath = RFC_RAM_PATH + "/.hashValue"; @@ -1414,7 +1414,7 @@ void RuntimeFeatureControlProcessor::updateTimeInDB(std::string timestampString) #if !defined(RDKB_SUPPORT) std::string ConfigSetTimeName = "ConfigSetTime"; std::string ConfigSetTime_Key = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime"; - set_RFCProperty(ConfigSetTimeName, ConfigSetTime_Key, timestampString); + set_RFCProperty(std::move(ConfigSetTimeName),std::move(ConfigSetTime_Key), timestampString); #else const std::string RFC_RAM_PATH = "/tmp/RFC"; std::string filePath = RFC_RAM_PATH + "/.timeValue"; @@ -1465,7 +1465,7 @@ void RuntimeFeatureControlProcessor::updateHashAndTimeInDB(char *curlHeaderResp) // Output the value RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "configSetHash value: %s\n", configSetHashValue.c_str()); - updateHashInDB(configSetHashValue); + updateHashInDB(std::move(configSetHashValue)); } else { RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "configSetHash not found in httpHeader!"); } @@ -1473,7 +1473,7 @@ void RuntimeFeatureControlProcessor::updateHashAndTimeInDB(char *curlHeaderResp) std::time_t timestamp = std::time(nullptr); // Get current timestamp std::string timestampString = std::to_string(timestamp); - updateTimeInDB(timestampString); + updateTimeInDB(std::move(timestampString)); std::fstream fs; fs.open(RFC_SYNC_DONE, std::ios::out); @@ -1987,7 +1987,18 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL } if(file_dwnl.hashData != nullptr) { + if(file_dwnl.hashData->hashvalue != nullptr) + { + free(file_dwnl.hashData->hashvalue); + file_dwnl.hashData->hashvalue = nullptr; + } + if(file_dwnl.hashData->hashtime != nullptr) + { + free(file_dwnl.hashData->hashtime); + file_dwnl.hashData->hashtime = nullptr; + } free(file_dwnl.hashData); + file_dwnl.hashData = nullptr; } if (_url_validation_in_progress) @@ -2020,7 +2031,10 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL case 83: case 90: case 91: - NotifyTelemetry2ErrorCode(curl_ret_code); + NotifyTelemetry2ErrorCode(curl_ret_code); + break; + default + break; } if((curl_ret_code == 0) && (httpCode == 404)) @@ -2479,7 +2493,7 @@ void RuntimeFeatureControlProcessor::processXconfResponseConfigDataPart(JSON *fe } std::string data = "TR181: " + newKey + " " + newValue; - paramList.push_back(data); + paramList.push_back(std::move(data)); } updateTR181File(TR181_FILE_LIST, paramList); @@ -2886,7 +2900,7 @@ int RuntimeFeatureControlProcessor::ProcessXconfUrl(const char *XconfUrl) std::string FQDN = _xconf_server_url; _xconf_server_url = std::string(XconfUrl) + "/featureControl/getSettings"; std::stringstream url = CreateXconfHTTPUrl(); - _xconf_server_url = FQDN; + _xconf_server_url = std::move(FQDN); DownloadData DwnLoc, HeaderDwnLoc; InitDownloadData(&DwnLoc); From ac48d81829e28fe73bc6aa8b8479f52a01fb2c9e Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 10:40:46 +0530 Subject: [PATCH 03/11] Update rfc_xconf_handler.cpp --- rfcMgr/rfc_xconf_handler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index 82577d21..a3290718 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -2034,7 +2034,7 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL NotifyTelemetry2ErrorCode(curl_ret_code); break; default - break; + break; } if((curl_ret_code == 0) && (httpCode == 404)) From 00ef0b01019dc541db66c10ec2658d326ed7a720 Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 10:44:30 +0530 Subject: [PATCH 04/11] Update rfc_xconf_handler.cpp --- rfcMgr/rfc_xconf_handler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index a3290718..ca204ecb 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -2033,7 +2033,7 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL case 91: NotifyTelemetry2ErrorCode(curl_ret_code); break; - default + default: break; } From c88863b11d2af7dc9b01fdcfff391f3d7d8144da Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 10:54:38 +0530 Subject: [PATCH 05/11] Update rfc_xconf_handler.cpp --- rfcMgr/rfc_xconf_handler.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index ca204ecb..a9141634 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1299,8 +1299,8 @@ void RuntimeFeatureControlProcessor::clearDB(void) set_RFCProperty(name, std::move(ClearDB), clearValue); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DB Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDB.c_str()); set_RFCProperty(name, std::move(BootstrapClearDB), clearValue); - RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] ConfigChangeTime: %s\n", __FUNCTION__,__LINE__,ConfigChangeTime.c_str()); - set_RFCProperty(name, std::move(ConfigChangeTimeKey), ConfigChangeTime); + RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] ConfigChangeTime: %s\n", __FUNCTION__,__LINE__,ConfigChangeTime.c_str()); + set_RFCProperty(name, ConfigChangeTimeKey, std::move(ConfigChangeTime)); #else RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing tr181 store\n", __FUNCTION__,__LINE__); @@ -1341,7 +1341,7 @@ void RuntimeFeatureControlProcessor::rfcStashRetrieveParams(void) std::string name = "rfc"; - WDMP_STATUS status = set_RFCProperty(name, RFC_ACCOUNT_ID_KEY_STR, std::move(stashAccountId)); + WDMP_STATUS status = set_RFCProperty(name, RFC_ACCOUNT_ID_KEY_STR, stashAccountId); if (status != WDMP_SUCCESS) { #if !defined(RDKB_SUPPORT) @@ -1370,7 +1370,7 @@ void RuntimeFeatureControlProcessor::clearDBEnd(void){ std::string BootstrapClearDBEndKey = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.Control.ClearDBEnd"; std::string reloadCacheKey = "RFC_CONTROL_RELOADCACHE"; - RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,ClearDBEndKey.c_str()); + RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,ClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Reload Cache Key: %s\n", __FUNCTION__,__LINE__,reloadCacheKey.c_str()); set_RFCProperty(name, std::move(ClearDBEndKey), clearValue); From a292ffdef7d0f9b095cc8509f1731197084adc7c Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 10:57:42 +0530 Subject: [PATCH 06/11] Update rfcMgr/rfc_xconf_handler.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rfcMgr/rfc_xconf_handler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index a9141634..b2c50cc1 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1414,7 +1414,7 @@ void RuntimeFeatureControlProcessor::updateTimeInDB(std::string timestampString) #if !defined(RDKB_SUPPORT) std::string ConfigSetTimeName = "ConfigSetTime"; std::string ConfigSetTime_Key = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime"; - set_RFCProperty(std::move(ConfigSetTimeName),std::move(ConfigSetTime_Key), timestampString); + set_RFCProperty(std::move(ConfigSetTimeName), std::move(ConfigSetTime_Key), timestampString); #else const std::string RFC_RAM_PATH = "/tmp/RFC"; std::string filePath = RFC_RAM_PATH + "/.timeValue"; From 87e20bed079ec11c8ff28f3598631750eaaa2155 Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 11:00:15 +0530 Subject: [PATCH 07/11] Update rfcMgr/rfc_xconf_handler.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rfcMgr/rfc_xconf_handler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index b2c50cc1..1724d45c 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1300,7 +1300,7 @@ void RuntimeFeatureControlProcessor::clearDB(void) RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DB Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDB.c_str()); set_RFCProperty(name, std::move(BootstrapClearDB), clearValue); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] ConfigChangeTime: %s\n", __FUNCTION__,__LINE__,ConfigChangeTime.c_str()); - set_RFCProperty(name, ConfigChangeTimeKey, std::move(ConfigChangeTime)); + set_RFCProperty(name, ConfigChangeTimeKey, ConfigChangeTime); #else RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing tr181 store\n", __FUNCTION__,__LINE__); From c4ee59b1dec4278f7b3309da8bf6cd749bf8164e Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 11:02:15 +0530 Subject: [PATCH 08/11] Update rfcMgr/rfc_xconf_handler.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rfcMgr/rfc_xconf_handler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index 1724d45c..76d85454 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1296,9 +1296,9 @@ void RuntimeFeatureControlProcessor::clearDB(void) touch_file.close(); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DB Value: %s\n", __FUNCTION__,__LINE__,ClearDB.c_str()); - set_RFCProperty(name, std::move(ClearDB), clearValue); + set_RFCProperty(name, ClearDB, clearValue); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DB Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDB.c_str()); - set_RFCProperty(name, std::move(BootstrapClearDB), clearValue); + set_RFCProperty(name, BootstrapClearDB, clearValue); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] ConfigChangeTime: %s\n", __FUNCTION__,__LINE__,ConfigChangeTime.c_str()); set_RFCProperty(name, ConfigChangeTimeKey, ConfigChangeTime); From 7c5dcbc4f55b81f9cc5ff6c19db7a2aba25dc957 Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 11:02:38 +0530 Subject: [PATCH 09/11] Update rfcMgr/rfc_xconf_handler.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rfcMgr/rfc_xconf_handler.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index 76d85454..6c9c846f 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1373,9 +1373,9 @@ void RuntimeFeatureControlProcessor::clearDBEnd(void){ RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,ClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Reload Cache Key: %s\n", __FUNCTION__,__LINE__,reloadCacheKey.c_str()); - set_RFCProperty(name, std::move(ClearDBEndKey), clearValue); - set_RFCProperty(name, std::move(BootstrapClearDBEndKey), clearValue); - set_RFCProperty(name, std::move(reloadCacheKey), clearValue); + set_RFCProperty(name, ClearDBEndKey, clearValue); + set_RFCProperty(name, BootstrapClearDBEndKey, clearValue); + set_RFCProperty(name, reloadCacheKey, clearValue); } From 59325ac0c7269bae00989b6cf57dc345ecb38cfd Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 11:03:24 +0530 Subject: [PATCH 10/11] Update rfcMgr/rfc_xconf_handler.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rfcMgr/rfc_xconf_handler.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index 6c9c846f..2bd2de7f 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -2031,10 +2031,10 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL case 83: case 90: case 91: - NotifyTelemetry2ErrorCode(curl_ret_code); - break; - default: - break; + NotifyTelemetry2ErrorCode(curl_ret_code); + break; + default: + break; } if((curl_ret_code == 0) && (httpCode == 404)) From f647fec46449f048905353e91584aa5b0ea645a8 Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 23 Jan 2026 11:04:17 +0530 Subject: [PATCH 11/11] Update rfcMgr/rfc_xconf_handler.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rfcMgr/rfc_xconf_handler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index 2bd2de7f..063c44b0 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -2032,9 +2032,9 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL case 90: case 91: NotifyTelemetry2ErrorCode(curl_ret_code); - break; + break; default: - break; + break; } if((curl_ret_code == 0) && (httpCode == 404))