From f837a5b028e8f9b4436b16d31dabad51c2b2d153 Mon Sep 17 00:00:00 2001 From: nhanasi Date: Tue, 10 Mar 2026 15:49:27 -0400 Subject: [PATCH 1/9] DELIA-70007 : Updating wifi reassociation thres tolerance RFC (#390) --- .../parodusClient/waldb/data-model/data-model-generic.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml index d1739893c..00180e117 100755 --- a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml +++ b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml @@ -4071,6 +4071,14 @@ + + + + + + + + From 8d8de648bf5c1c6055024caaf24084e9877f5f6e Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Tue, 10 Mar 2026 19:56:00 +0000 Subject: [PATCH 2/9] tr69hostif 8.4 hotfix release --- CHANGELOG.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bcf75849..dedb99bae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,58 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [1.2.9hotfix](https://github.com/rdkcentral/tr69hostif/compare/1.3.4...1.2.9hotfix) + +- DELIA-70007 : Updating wifi reassociation thres tolerance RFC [`#390`](https://github.com/rdkcentral/tr69hostif/pull/390) + +#### [1.3.4](https://github.com/rdkcentral/tr69hostif/compare/1.3.3...1.3.4) + +> 3 March 2026 + +- RDKEMW-14761 - Add RFC to control wifi-optimizer [`#371`](https://github.com/rdkcentral/tr69hostif/pull/371) +- RDK-60924 : Addition of RFC parameter for Stage video devices [`#367`](https://github.com/rdkcentral/tr69hostif/pull/367) +- tr69hostif 1.3.4 release changelog updates [`ab04119`](https://github.com/rdkcentral/tr69hostif/commit/ab04119c9521f7aa4cbed1b40a875e5ccf33c615) +- Merge tag '1.3.3' into develop [`d4a740b`](https://github.com/rdkcentral/tr69hostif/commit/d4a740b7b59527c3b744271da7e10fd3864b8ae9) + +#### [1.3.3](https://github.com/rdkcentral/tr69hostif/compare/1.3.2...1.3.3) + +> 16 February 2026 + +- RDKEMW-12857: Observed tr69hostif crash on shutdown [`#361`](https://github.com/rdkcentral/tr69hostif/pull/361) +- RDK-60308-[tr69hostif, RFC] RDK Coverity Defect Resolution for Device Management [`#342`](https://github.com/rdkcentral/tr69hostif/pull/342) +- 1.3.3 release changelog updates [`d559257`](https://github.com/rdkcentral/tr69hostif/commit/d55925714cb79aa5d75dc4e4d2477435b1521d24) +- Merge tag '1.3.2' into develop [`17315e0`](https://github.com/rdkcentral/tr69hostif/commit/17315e005519fa0100d6a43081429c5d53198ca3) + +#### [1.3.2](https://github.com/rdkcentral/tr69hostif/compare/1.3.0...1.3.2) + +> 10 February 2026 + +- RDKEMW-12916-Define tr181 parameter and handlers for the IUI Version 2 [`#348`](https://github.com/rdkcentral/tr69hostif/pull/348) +- Update hostIf_main.cpp [`#344`](https://github.com/rdkcentral/tr69hostif/pull/344) +- RDK-59919 : [RDKE] Port Ops Support Upload Scripts to Source code [`#341`](https://github.com/rdkcentral/tr69hostif/pull/341) +- tr69hostif 1.3.2 release changelog updates [`45715e6`](https://github.com/rdkcentral/tr69hostif/commit/45715e6336fdefd56c84dae52785d0859935f926) +- Merge tag '1.3.0' into develop [`711a0e4`](https://github.com/rdkcentral/tr69hostif/commit/711a0e475dda90533c17bb8f0cf95d9e989b4271) + +#### [1.3.0](https://github.com/rdkcentral/tr69hostif/compare/1.2.9...1.3.0) + +> 16 January 2026 + +- RDKEMW-8175:Segmented global/system-wide profile for rdke [`#316`](https://github.com/rdkcentral/tr69hostif/pull/316) +- RDK-60387-[tr69hostif] Reduce repetitive logging [`#334`](https://github.com/rdkcentral/tr69hostif/pull/334) +- RDKEMW-10786: Add new parameter for screencapture api [`#329`](https://github.com/rdkcentral/tr69hostif/pull/329) +- 1.3.0 release changelog updates [`dd7a7f7`](https://github.com/rdkcentral/tr69hostif/commit/dd7a7f79a2f97b520ca850dd25b6704203b165c1) +- Merge tag '1.2.9' into develop [`3fbb483`](https://github.com/rdkcentral/tr69hostif/commit/3fbb483212448f1b10d3539eca96188930d4bc0f) + #### [1.2.9](https://github.com/rdkcentral/tr69hostif/compare/1.2.8...1.2.9) +> 5 December 2025 + - RDK-59250-RDKE-tr69hostif-100% L2 coverage [`#319`](https://github.com/rdkcentral/tr69hostif/pull/319) - RDKEMW-10639: Convert memcapture tool as RDM downloadable package [`#320`](https://github.com/rdkcentral/tr69hostif/pull/320) - RDKTV-39100 : [SECVULN] migrate configuration files from /opt to /opt/secure [`#318`](https://github.com/rdkcentral/tr69hostif/pull/318) - RDKEMW-6128: Update hostIf_IARM_ReqHandler.cpp [`#312`](https://github.com/rdkcentral/tr69hostif/pull/312) - Fixing the bug for ethernet interface [`#309`](https://github.com/rdkcentral/tr69hostif/pull/309) +- 1.2.9 release changelog updates [`79e3a45`](https://github.com/rdkcentral/tr69hostif/commit/79e3a45f1b02b45bb50154f50f29ae5c2550141c) - Merge tag '1.2.8' into develop [`77b380c`](https://github.com/rdkcentral/tr69hostif/commit/77b380c1c7e64e5326e3357bbe6b9a35d7d51189) #### [1.2.8](https://github.com/rdkcentral/tr69hostif/compare/1.2.7...1.2.8) From 10aa3bd5b5b21ae171abea2a225815b922ba076d Mon Sep 17 00:00:00 2001 From: nhanasi Date: Wed, 15 Apr 2026 18:41:06 -0400 Subject: [PATCH 3/9] XIONE-18559 [RDKV]TR69 Component sync up with 8.4_p1v branch from RDKE (#453) * RDKEMW-13878: Observed tr69hostif crash on shutdown * RDKEMW-12916-Define tr181 parameter and handlers for the IUI Version 2 (#348) (#357) * Add the get and set handler in header file. * Add the get and set handler * Update data-model-generic.xml * Move the logs from INFO to debug * Update hostIf_DeviceClient_ReqHandler.cpp * Update hostIf_DeviceClient_ReqHandler.cpp * Update hostIf_DeviceClient_ReqHandler.cpp * Update Device_DeviceInfo.h * Initial plan * Fix inconsistent indentation in data-model-generic.xml * Update Device_DeviceInfo.cpp * Update src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp --------- (cherry picked from commit c322cbde08991cb8b3d468f17b4d4caedda24ff6) Co-authored-by: Vismal S Kumar --------- Co-authored-by: nhanas001c Co-authored-by: Vismal S Kumar --- .../src/hostIf_DeviceClient_ReqHandler.cpp | 8 ++ src/hostif/handlers/src/hostIf_msgHandler.cpp | 4 +- .../waldb/data-model/data-model-generic.xml | 6 ++ .../profiles/DeviceInfo/Device_DeviceInfo.cpp | 80 +++++++++++++++++++ .../profiles/DeviceInfo/Device_DeviceInfo.h | 4 + src/hostif/src/hostIf_main.cpp | 19 +++-- tr69hostif.service | 2 +- 7 files changed, 114 insertions(+), 9 deletions(-) diff --git a/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp b/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp index 00367c28b..8d12d9c64 100644 --- a/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp +++ b/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp @@ -298,6 +298,10 @@ int DeviceClientReqHandler::handleSetMsg(HOSTIF_MsgData_t *stMsgData) { ret = pIface->set_Device_DeviceInfo_IUI_Version(stMsgData); } + else if (!strcasecmp(stMsgData->paramName, IUI_APPSVERSION)) + { + ret = pIface->set_Device_DeviceInfo_IUI_AppsVersion(stMsgData); + } else { ret = NOK; @@ -543,6 +547,10 @@ int DeviceClientReqHandler::handleGetMsg(HOSTIF_MsgData_t *stMsgData) { ret = pIface->get_Device_DeviceInfo_IUI_Version(stMsgData); } + else if (strcasecmp(stMsgData->paramName,IUI_APPSVERSION) == 0) + { + ret = pIface->get_Device_DeviceInfo_IUI_AppsVersion(stMsgData); + } else if (strcasecmp(stMsgData->paramName,"Device.DeviceInfo.AdditionalHardwareVersion") == 0) { ret = pIface->get_Device_DeviceInfo_AdditionalHardwareVersion(stMsgData); diff --git a/src/hostif/handlers/src/hostIf_msgHandler.cpp b/src/hostif/handlers/src/hostIf_msgHandler.cpp index a73572299..dccc8b3be 100644 --- a/src/hostif/handlers/src/hostIf_msgHandler.cpp +++ b/src/hostif/handlers/src/hostIf_msgHandler.cpp @@ -188,7 +188,7 @@ int hostIf_GetMsgHandler(HOSTIF_MsgData_t *stMsgData) // Calculate time taken in microseconds - RDK_LOG(RDK_LOG_INFO, LOG_TR69HOSTIF, + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, "[%s:%d] ret: %d, paramName: %s, paramValue: %s, timeTaken: %lld us\n", __FUNCTION__, __LINE__, ret, stMsgData->paramName, @@ -276,7 +276,7 @@ int hostIf_SetMsgHandler(HOSTIF_MsgData_t *stMsgData) char paramValueStr[128] = {0}; paramValueToString(stMsgData, paramValueStr, sizeof(paramValueStr)); - RDK_LOG(RDK_LOG_INFO, LOG_TR69HOSTIF, + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, "[%s:%d] ret: %d, paramName: %s, paramValue: %s, timeTaken: %lld us\n", __FUNCTION__, __LINE__, ret, stMsgData->paramName, diff --git a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml index 00180e117..f5327651c 100755 --- a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml +++ b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml @@ -4421,6 +4421,12 @@ + + + + + + diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp index f09399464..854da38d1 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp @@ -115,6 +115,7 @@ #define IPREMOTE_INTERFACE_INFO "/tmp/ipremote_interface_info" #define MODEL_NAME_FILE "/tmp/.model" #define IUI_VERSION_FILE "/tmp/.iuiVersion" +#define IUI_APPSVERSION_FILE "/tmp/.iuiAppsVersion" #define PREVIOUS_REBOT_REASON_FILE "/opt/secure/reboot/previousreboot.info" #define NTPENABLED_FILE "/opt/.ntpEnabled" #define RDKV_DAB_ENABLE_FILE "/opt/dab-enable" @@ -2350,6 +2351,85 @@ int hostIf_DeviceInfo::set_Device_DeviceInfo_IUI_Version(HOSTIF_MsgData_t *stMsg return OK; } +int hostIf_DeviceInfo::get_Device_DeviceInfo_IUI_AppsVersion(HOSTIF_MsgData_t * stMsgData, bool *pChanged) +{ + int ret=NOT_HANDLED; + stMsgData->paramtype = hostIf_StringType; + + std::string iuiAppsVersion; + std::ifstream file(IUI_APPSVERSION_FILE); + + if (!file.is_open()) { + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, "[%s:%s:%d] IUI AppsVersion file does not exist, returning empty value\n", __FUNCTION__, __FILE__, __LINE__); + stMsgData->paramValue[0] = '\0'; + stMsgData->paramLen = 0; + return OK; + } + + if (std::getline(file, iuiAppsVersion)) { + // Remove newline char if any in iui apps version + if (!iuiAppsVersion.empty() && iuiAppsVersion.back() == '\n') { + iuiAppsVersion.pop_back(); + } + + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, "[%s:%s:%d] iuiAppsVersion = %s.\n", __FUNCTION__, __FILE__, __LINE__, iuiAppsVersion.c_str()); + strncpy((char *)stMsgData->paramValue, iuiAppsVersion.c_str(), sizeof(stMsgData->paramValue)-1); + stMsgData->paramValue[sizeof(stMsgData->paramValue)-1] = '\0'; + stMsgData->paramLen = iuiAppsVersion.length(); + + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, "[%s:%s:%d] paramValue: %s stMsgData->paramLen: %d \n", __FUNCTION__, __FILE__, __LINE__, stMsgData->paramValue, stMsgData->paramLen); + ret = OK; + } else { + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, "%s(): No data in IUI AppsVersion file, returning empty value.\n", __FUNCTION__); + stMsgData->paramValue[0] = '\0'; + stMsgData->paramLen = 0; + ret = OK; + } + + file.close(); + + RDK_LOG(RDK_LOG_TRACE1,LOG_TR69HOSTIF,"[%s()]\n", __FUNCTION__); + return ret; + +} + +int hostIf_DeviceInfo::set_Device_DeviceInfo_IUI_AppsVersion(HOSTIF_MsgData_t *stMsgData) +{ + std::string iuiAppsVersion = getStringValue(stMsgData); + + if (iuiAppsVersion.empty()) { + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, + "[%s:%s:%d] Empty IUI AppsVersion provided, will clear the stored value\n", + __FUNCTION__, __FILE__, __LINE__); + + // Remove the file if empty value is set + if (std::remove(IUI_APPSVERSION_FILE) != 0) { + RDK_LOG(RDK_LOG_WARN, LOG_TR69HOSTIF, + "[%s:%s:%d] Failed to remove %s\n", + __FUNCTION__, __FILE__, __LINE__, + IUI_APPSVERSION_FILE); + } +} + + + std::ofstream file(IUI_APPSVERSION_FILE); + if (!file.is_open()) { + RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s:%s:%d] Failed to open IUI AppsVersion file for writing\n", __FUNCTION__, __FILE__, __LINE__); + return NOK; + } + + file << iuiAppsVersion; + + if (file.fail()) { + RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s:%s:%d] Failed to write IUI AppsVersion to file\n", __FUNCTION__, __FILE__, __LINE__); + file.close(); + return NOK; + } + + RDK_LOG(RDK_LOG_DEBUG, LOG_TR69HOSTIF, "[%s:%s:%d] Successfully wrote IUI AppsVersion: %s\n", __FUNCTION__, __FILE__, __LINE__, iuiAppsVersion.c_str()); + file.close(); + return OK; +} int hostIf_DeviceInfo::set_Device_DeviceInfo_X_RDKCENTRAL_COM_PreferredGatewayType(HOSTIF_MsgData_t *stMsgData) { int ret = NOK; diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h index 8f8e9ee26..a86d8ddc4 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h @@ -184,6 +184,7 @@ #define FWDNLD_DEFER_REBOOT "Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadDeferReboot" #define IUI_VERSION "Device.DeviceInfo.X_RDKCENTRAL-COM.IUI.Version" +#define IUI_APPSVERSION "Device.DeviceInfo.X_RDKCENTRAL-COM.IUI.AppsVersion" /* Profile: X_RDKCENTRAL-COM_RDKRemoteDebugger */ #ifdef USE_REMOTE_DEBUGGER @@ -1122,6 +1123,9 @@ class hostIf_DeviceInfo { int set_Device_DeviceInfo_X_RDKCENTRAL_COM_FirmwareDownloadUseCodebig(HOSTIF_MsgData_t *); int set_Device_DeviceInfo_X_RDKCENTRAL_COM_FirmwareDownloadDeferReboot(HOSTIF_MsgData_t *); int set_Device_DeviceInfo_IUI_Version(HOSTIF_MsgData_t *); + int set_Device_DeviceInfo_IUI_AppsVersion(HOSTIF_MsgData_t *); + int get_Device_DeviceInfo_IUI_AppsVersion(HOSTIF_MsgData_t *, bool *pChanged = NULL); + /** * @brief set_xOpsDMUploadLogsNow. diff --git a/src/hostif/src/hostIf_main.cpp b/src/hostif/src/hostIf_main.cpp index 3da2710c3..c8788bbdf 100644 --- a/src/hostif/src/hostIf_main.cpp +++ b/src/hostif/src/hostIf_main.cpp @@ -539,10 +539,6 @@ int main(int argc, char *argv[]) if(HTTPServerThread) g_thread_join(HTTPServerThread); #endif - #if defined(PARODUS_ENABLE) - if(parodus_init_tid) - pthread_join(parodus_init_tid,NULL); - #endif RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"\n\n----------------------EXITING MAIN PROGRAM----------------------\n"); return 0 ; @@ -596,8 +592,10 @@ void quit_handler (int sig_received) void exit_gracefully (int sig_received) { if(isShutdownTriggered == 0) { + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] exit_gracefully called with signal %d\n", __FUNCTION__, __FILE__, sig_received); if(pthread_mutex_trylock(&graceful_exit_mutex) == 0) { RDK_LOG(RDK_LOG_NOTICE,LOG_TR69HOSTIF,"[%s:%s] Entering..\n", __FUNCTION__, __FILE__); + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Starting graceful shutdown steps\n", __FUNCTION__, __FILE__); isShutdownTriggered = 1; #ifdef T2_EVENT_ENABLED t2_uninit(); @@ -613,24 +611,33 @@ void exit_gracefully (int sig_received) #endif /*Stop libSoup server and exit Json Thread */ + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping HTTP/Json threads\n", __FUNCTION__, __FILE__); hostIf_HttpServerStop(); - + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping update handler\n", __FUNCTION__, __FILE__); updateHandler::stop(); + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping XBSStore\n", __FUNCTION__, __FILE__); XBSStore::getInstance()->stop(); - if(logfile) fclose (logfile); + if(logfile) { + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Closing logfile\n", __FUNCTION__, __FILE__); + fclose (logfile); + } if(paramMgrhash) { g_hash_table_destroy(paramMgrhash); + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Destroying paramMgrhash\n", __FUNCTION__, __FILE__); paramMgrhash = NULL; } + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping IARM IF\n", __FUNCTION__, __FILE__); hostIf_IARM_IF_Stop(); RDK_LOG(RDK_LOG_NOTICE,LOG_TR69HOSTIF,"[%s:%s] Exiting program gracefully..\n", __FUNCTION__, __FILE__); if (g_main_loop_is_running(main_loop)) { + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Quitting main loop\n", __FUNCTION__, __FILE__); g_main_loop_quit(main_loop); #ifndef NEW_HTTP_SERVER_DISABLE /*Stop HTTP Server Thread*/ + RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping HTTP Server Thread\n", __FUNCTION__, __FILE__); HttpServerStop(); #endif } diff --git a/tr69hostif.service b/tr69hostif.service index ffac64af2..5551c600d 100644 --- a/tr69hostif.service +++ b/tr69hostif.service @@ -26,7 +26,7 @@ SyslogIdentifier="tr69hostif" EnvironmentFile=/etc/device.properties ExecStartPre=/bin/mkdir -p /opt/tr-181 ExecStart=/usr/bin/tr69hostif -c /etc/mgrlist.conf -p 10999 -s 11999 -ExecStop=/bin/kill -15 $MAINPID +ExecStop=/bin/kill -9 $MAINPID RestartSec=10s Restart=always TimeoutStopSec=5 From 5b70dab8f2c2cbb54c47a5cefa15dcfb2768a63d Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Wed, 15 Apr 2026 22:43:31 +0000 Subject: [PATCH 4/9] 1.2.9hotfix2 hotfix release --- CHANGELOG.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dedb99bae..468d03a7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,91 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [1.2.9hotfix](https://github.com/rdkcentral/tr69hostif/compare/1.3.4...1.2.9hotfix) +#### [1.2.9hotfix2](https://github.com/rdkcentral/tr69hostif/compare/1.4.1...1.2.9hotfix2) +- XIONE-18559 [RDKV]TR69 Component sync up with 8.4_p1v branch from RDKE [`#453`](https://github.com/rdkcentral/tr69hostif/pull/453) - DELIA-70007 : Updating wifi reassociation thres tolerance RFC [`#390`](https://github.com/rdkcentral/tr69hostif/pull/390) +- tr69hostif 8.4 hotfix release [`8d8de64`](https://github.com/rdkcentral/tr69hostif/commit/8d8de648bf5c1c6055024caaf24084e9877f5f6e) + +#### [1.4.1](https://github.com/rdkcentral/tr69hostif/compare/1.4.0...1.4.1) + +> 8 April 2026 + +- RDKEMW-15041: Add RFC Handlers for meminsight RFC [`#426`](https://github.com/rdkcentral/tr69hostif/pull/426) +- tr69hostif 1.4.1 release changelog updates [`16fb130`](https://github.com/rdkcentral/tr69hostif/commit/16fb1306008950273f9cfcf65be958641a0e008a) +- Merge tag '1.4.0' into develop [`fe37481`](https://github.com/rdkcentral/tr69hostif/commit/fe374814ab61d33d3dcd23581eef526c9f467a3d) + +#### [1.4.0](https://github.com/rdkcentral/tr69hostif/compare/1.3.9...1.4.0) + +> 3 April 2026 + +- Added Workflow for the JSON parse logic [`#444`](https://github.com/rdkcentral/tr69hostif/pull/444) +- RDKEMW-10029 : Syncing of Gerrit commits that are required for security components [`#440`](https://github.com/rdkcentral/tr69hostif/pull/440) +- Rebase with Develop [`#439`](https://github.com/rdkcentral/tr69hostif/pull/439) +- tr69hostif 1.4.0 release changelog updates [`1c76955`](https://github.com/rdkcentral/tr69hostif/commit/1c76955b93fa406a3c35e66ffe5b01e41bbfe6ba) +- Merge tag '1.3.9' into develop [`172808d`](https://github.com/rdkcentral/tr69hostif/commit/172808d7d26343a6a7142dae366749e71f846b7c) +- RDKEMW-10029: Remove duplicate RedRecovery parameter [`20db7b3`](https://github.com/rdkcentral/tr69hostif/commit/20db7b3f884dd200b6d67db41d139999d80ab567) + +#### [1.3.9](https://github.com/rdkcentral/tr69hostif/compare/1.3.8...1.3.9) + +> 1 April 2026 + +- Add rrd enable default value to false [`#443`](https://github.com/rdkcentral/tr69hostif/pull/443) +- tr69hostif: Add Document for L2 Coverage and Thunder Plugin details [`#442`](https://github.com/rdkcentral/tr69hostif/pull/442) +- RDKEMW-15382 Crash observed in hostif [`#427`](https://github.com/rdkcentral/tr69hostif/pull/427) +- tr69hostif - Updated Runtime Dependencies and JSON usage [`#437`](https://github.com/rdkcentral/tr69hostif/pull/437) +- tr69hostif 1.3.9 release changelog updates [`672754a`](https://github.com/rdkcentral/tr69hostif/commit/672754a347a5cc1b259e449c6e73cc8912842126) +- Merge tag '1.3.8' into develop [`1b5fe07`](https://github.com/rdkcentral/tr69hostif/commit/1b5fe07477da9823ec145a667ec7b3029f019961) + +#### [1.3.8](https://github.com/rdkcentral/tr69hostif/compare/1.3.7...1.3.8) + +> 20 March 2026 + +- tr69hostif - Detailed Documentation for the Component Modules [`#432`](https://github.com/rdkcentral/tr69hostif/pull/432) +- RDKEMW-15684 : Updated Hotel related handlers to match plugin output. [`#431`](https://github.com/rdkcentral/tr69hostif/pull/431) +- RDKEMW-14971 : Bring Data Model Parameters Missing in RDKE Stack [`#383`](https://github.com/rdkcentral/tr69hostif/pull/383) +- RDKEMW-14825: WifiReset DataModel Params missing on RDKE Builds [`#397`](https://github.com/rdkcentral/tr69hostif/pull/397) +- tr69hostif 1.3.7 release changelog updates [`#424`](https://github.com/rdkcentral/tr69hostif/pull/424) +- tr69hostif 1.3.7 release changelog updates [`#423`](https://github.com/rdkcentral/tr69hostif/pull/423) +- tr69hostif 1.3.8 release changelog updates [`78bbbe0`](https://github.com/rdkcentral/tr69hostif/commit/78bbbe04b80f2cd4c94fa497cd7ac7a4e650b094) +- Potential fix for pull request finding [`8fc7daa`](https://github.com/rdkcentral/tr69hostif/commit/8fc7daa294bba9eee4e1a11c8a03b4492d6daacf) +- Merge tag '1.3.7' into develop [`8e69c43`](https://github.com/rdkcentral/tr69hostif/commit/8e69c43f6bfe0327ca858a002c3ea7f810ce3c78) + +#### [1.3.7](https://github.com/rdkcentral/tr69hostif/compare/1.3.6...1.3.7) + +> 13 March 2026 + +- RDKEMW-14686: Fix the wifi signal strength api calls [`#416`](https://github.com/rdkcentral/tr69hostif/pull/416) +- tr69hostif 1.3.6 release changelog updates [`#418`](https://github.com/rdkcentral/tr69hostif/pull/418) +- tr69hostif 1.3.7 release changelog updates [`4db557f`](https://github.com/rdkcentral/tr69hostif/commit/4db557f97f312720e1dc64abd0a1c22b70ed4814) +- Merge tag '1.3.6' into develop [`635237a`](https://github.com/rdkcentral/tr69hostif/commit/635237a63734e7c2f917850cc36cc0bde1b30ef0) + +#### [1.3.6](https://github.com/rdkcentral/tr69hostif/compare/1.3.5...1.3.6) + +> 12 March 2026 + +- RDKEMW-14881: tr69hostif 1.3.6 release changelog updates [`#419`](https://github.com/rdkcentral/tr69hostif/pull/419) +- RDKEMW-14881: Update New Datamodel for WifiReset [`#376`](https://github.com/rdkcentral/tr69hostif/pull/376) +- RDKEMW-14888 : Observing error logs captured from RTMessages in tr69hostif [`#412`](https://github.com/rdkcentral/tr69hostif/pull/412) +- RDKEMW-14888 : Observing error logs captured from RTMessages in tr69hostif - Fingerprint: 87349961 [`#409`](https://github.com/rdkcentral/tr69hostif/pull/409) +- RDKEMW-14686: Wifi DataModel Params Retuning Empty Value on RDKE Builds [`#399`](https://github.com/rdkcentral/tr69hostif/pull/399) +- RDKEMW-14813 : Added support for Hotel checkout time. [`#387`](https://github.com/rdkcentral/tr69hostif/pull/387) +- RDKEMW-14755-[develop] Observed "tr69hostif" crash with "hostIf_WiFi_EndPoint::refreshCache" function and different fingerprint [`#393`](https://github.com/rdkcentral/tr69hostif/pull/393) +- RDKEMW:14684: Add implementation for Device.WiFi.Radio. parameters [`#398`](https://github.com/rdkcentral/tr69hostif/pull/398) +- tr69hostif 1.3.5 release changelog updates [`#391`](https://github.com/rdkcentral/tr69hostif/pull/391) +- tr69hostif 1.3.6 release changelog updates [`c8c1f34`](https://github.com/rdkcentral/tr69hostif/commit/c8c1f3437f1e5f976e51b4f4e8b92bd1a1b45d20) +- Merge tag '1.3.5' into develop [`cb3e83b`](https://github.com/rdkcentral/tr69hostif/commit/cb3e83bc7ac7617d0161fdc3de9b51d6401f2af3) + +#### [1.3.5](https://github.com/rdkcentral/tr69hostif/compare/1.3.4...1.3.5) + +> 10 March 2026 + +- RDKEMW-14726: tr69hostif 1.3.5 release changelog updates [`#392`](https://github.com/rdkcentral/tr69hostif/pull/392) +- RDKEMW-14726: Implement Chrony runtime selection for Time Sync [`#385`](https://github.com/rdkcentral/tr69hostif/pull/385) +- Add the datamodel entries in generic [`#384`](https://github.com/rdkcentral/tr69hostif/pull/384) +- RDKEMW-14685 : Implement Product Class Data Model Parameter for RDKE [`#373`](https://github.com/rdkcentral/tr69hostif/pull/373) +- tr69hostif 1.3.5 release changelog updates [`9375bf5`](https://github.com/rdkcentral/tr69hostif/commit/9375bf588f4b0db7e4dadc20bf3fb313a4ffd4ef) +- Merge tag '1.3.4' into develop [`600330e`](https://github.com/rdkcentral/tr69hostif/commit/600330e89cfdb20e35a188cd31ef260b76de21c5) #### [1.3.4](https://github.com/rdkcentral/tr69hostif/compare/1.3.3...1.3.4) From 4981c206633b1a217c39d6a3533dc2a7a5ade619 Mon Sep 17 00:00:00 2001 From: Abhinavpv28 <162570454+Abhinavpv28@users.noreply.github.com> Date: Thu, 23 Apr 2026 23:12:43 +0530 Subject: [PATCH 5/9] RDK-59998 : Remove getprofiledata dml from hostif (#455) * Update Device_DeviceInfo.cpp * Update Device_DeviceInfo.h * dml * Update hostIf_DeviceClient_ReqHandler.cpp --------- Co-authored-by: Abhinav P V --- .../src/hostIf_DeviceClient_ReqHandler.cpp | 5 - .../waldb/data-model/data-model-generic.xml | 5 - .../profiles/DeviceInfo/Device_DeviceInfo.cpp | 121 ------------------ .../profiles/DeviceInfo/Device_DeviceInfo.h | 1 - 4 files changed, 132 deletions(-) diff --git a/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp b/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp index 94c95af91..71d94607a 100644 --- a/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp +++ b/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp @@ -494,11 +494,6 @@ int DeviceClientReqHandler::handleGetMsg(HOSTIF_MsgData_t *stMsgData) { ret = pIface->get_Device_DeviceInfo_X_RDKCENTRAL_COM_BootStatus(stMsgData); } - - else if(strcasecmp(stMsgData->paramName,"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.RDKRemoteDebugger.getProfileData") == 0) - { - ret = pIface->get_Device_DeviceInfo_X_RDKCENTRAL_COM_RDKRemoteDebuggergetProfileData(stMsgData); - } else if (strcasecmp(stMsgData->paramName,"Device.DeviceInfo.X_RDKCENTRAL-COM_PreferredGatewayType") == 0) { ret = pIface->get_Device_DeviceInfo_X_RDKCENTRAL_COM_PreferredGatewayType(stMsgData); diff --git a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml index ff40a303b..8381385e0 100644 --- a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml +++ b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml @@ -3607,11 +3607,6 @@ - - - - - diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp index dbc08854d..37ded3ce1 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp @@ -4318,127 +4318,6 @@ int hostIf_DeviceInfo::set_Device_DeviceInfo_X_RDKCENTRAL_COM_RDKRemoteDebuggerI return retVal; } -int hostIf_DeviceInfo::get_Device_DeviceInfo_X_RDKCENTRAL_COM_RDKRemoteDebuggergetProfileData(HOSTIF_MsgData_t *stMsgData) -{ - stMsgData->paramtype = hostIf_StringType; - int retStatus = NOK; - const char *filename = "/etc/rrd/remote_debugger.json"; - FILE *fp = nullptr; - char *fileBuf = nullptr; - long fileSz = 0; - size_t bytesRead = 0; - cJSON *root = nullptr; - cJSON *filtered = nullptr; - char *outStr = nullptr; - size_t outLen = 0; - RDK_LOG(RDK_LOG_TRACE1, LOG_TR69HOSTIF, "[%s] Entering …\n", __FUNCTION__); - fp = fopen(filename, "rb"); - if (!fp) - { - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Cannot open %s\n", __FUNCTION__, filename); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - if (fseek(fp, 0L, SEEK_END) != 0) - { - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] fseek failed\n", __FUNCTION__); - fclose(fp); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - fileSz = ftell(fp); - rewind(fp); - if (fileSz < 0) - { - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] fileSz is negative, Returning....\n", __FUNCTION__); - fclose(fp); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - fileBuf = (char*)malloc((size_t)fileSz + 1); - if (!fileBuf) - { - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] malloc(%ld) failed\n", __FUNCTION__, fileSz + 1); - fclose(fp); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - bytesRead = fread(fileBuf, 1U, (size_t)fileSz, fp); - fileBuf[bytesRead] = '\0'; - fclose(fp); fp = nullptr; - root = cJSON_Parse(fileBuf); - if (!root) - { - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] JSON parse error: %s\n", __FUNCTION__, cJSON_GetErrorPtr()); - free(fileBuf); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - filtered = cJSON_CreateObject(); - if (!filtered) - { - free(fileBuf); - cJSON_Delete(root); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - - for (cJSON *top = root->child; top; top = top->next) - { - if (top->type != cJSON_Object) - { - continue; - } - cJSON *arr = cJSON_CreateArray(); - if (!arr) - { - free(fileBuf); - cJSON_Delete(root); - cJSON_Delete(filtered); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - for (cJSON *sub = top->child; sub; sub = sub->next) - { - cJSON_AddItemToArray(arr, cJSON_CreateString(sub->string)); - } - if (cJSON_GetArraySize(arr) > 0) - { - cJSON_AddItemToObject(filtered, top->string, arr); - } - else - { - cJSON_Delete(arr); - } - } - - outStr = cJSON_PrintUnformatted(filtered); - if (!outStr) - { - free(fileBuf); - cJSON_Delete(root); - cJSON_Delete(filtered); - RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Leaving with NOK\n", __FUNCTION__); - return retStatus; - } - outLen = strlen(outStr); - if (outLen >= sizeof(stMsgData->paramValue)) - { - outLen = sizeof(stMsgData->paramValue) - 1; - } - memcpy(stMsgData->paramValue, outStr, outLen); - stMsgData->paramValue[outLen] = '\0'; - stMsgData->paramLen = outLen; - RDK_LOG(RDK_LOG_INFO, LOG_TR69HOSTIF, "[%s] Extracted profile map: %s\n", __FUNCTION__, outStr); - retStatus = OK; - free(fileBuf); - cJSON_Delete(root); - cJSON_Delete(filtered); - free(outStr); - RDK_LOG(RDK_LOG_TRACE1, LOG_TR69HOSTIF, "[%s] Leaving with OK\n", __FUNCTION__); - return retStatus; -} - int hostIf_DeviceInfo::set_Device_DeviceInfo_X_RDKCENTRAL_COM_RDKRemoteDebuggerWebCfgData (HOSTIF_MsgData_t *stMsgData) { char *issueStr = NULL; diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h index 755915013..49fa6fb31 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h @@ -1293,7 +1293,6 @@ class hostIf_DeviceInfo { int set_Device_DeviceInfo_X_RDKCENTRAL_COM_RDKRemoteDebuggerIssueType(HOSTIF_MsgData_t *); int set_Device_DeviceInfo_X_RDKCENTRAL_COM_RDKRemoteDebuggerWebCfgData(HOSTIF_MsgData_t *); - int get_Device_DeviceInfo_X_RDKCENTRAL_COM_RDKRemoteDebuggergetProfileData(HOSTIF_MsgData_t *); #endif /* From 7dffc6720cad9102857568a029a6f19113d8e285 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Thu, 23 Apr 2026 17:55:29 +0000 Subject: [PATCH 6/9] tr69hostif 1.4.2 release changelog updates --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67aaf818c..0b1a0f949 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,19 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [1.4.2](https://github.com/rdkcentral/tr69hostif/compare/1.4.1...1.4.2) + +- RDK-59998 : Remove getprofiledata dml from hostif [`#455`](https://github.com/rdkcentral/tr69hostif/pull/455) +- Update workflow for the partner Defaults usage [`#451`](https://github.com/rdkcentral/tr69hostif/pull/451) +- RDKEMW-15141 Update the Missing Coverity Reports Fixes [`#441`](https://github.com/rdkcentral/tr69hostif/pull/441) +- Merge tag '1.4.1' into develop [`7005cc7`](https://github.com/rdkcentral/tr69hostif/commit/7005cc788d3a55b18928a7228bffb42a31f61211) + #### [1.4.1](https://github.com/rdkcentral/tr69hostif/compare/1.4.0...1.4.1) +> 8 April 2026 + - RDKEMW-15041: Add RFC Handlers for meminsight RFC [`#426`](https://github.com/rdkcentral/tr69hostif/pull/426) +- tr69hostif 1.4.1 release changelog updates [`16fb130`](https://github.com/rdkcentral/tr69hostif/commit/16fb1306008950273f9cfcf65be958641a0e008a) - Merge tag '1.4.0' into develop [`fe37481`](https://github.com/rdkcentral/tr69hostif/commit/fe374814ab61d33d3dcd23581eef526c9f467a3d) #### [1.4.0](https://github.com/rdkcentral/tr69hostif/compare/1.3.9...1.4.0) From 468ee5d440dfc66c7802354396033fdf8952d2a5 Mon Sep 17 00:00:00 2001 From: sborushevsky Date: Tue, 28 Apr 2026 23:01:22 +0300 Subject: [PATCH 7/9] XIONE-18661 : Added support for Hotel checkout time. (#456) * XIONE-18661 : Added support for Hotel checkout time. * Updated Hotel related handlers to match plugin output. * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../src/hostIf_DeviceClient_ReqHandler.cpp | 8 ++ .../waldb/data-model/data-model-generic.xml | 12 ++ .../profiles/DeviceInfo/Device_DeviceInfo.cpp | 117 ++++++++++++++++++ .../profiles/DeviceInfo/Device_DeviceInfo.h | 9 ++ 4 files changed, 146 insertions(+) diff --git a/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp b/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp index 8d12d9c64..99346d0ea 100644 --- a/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp +++ b/src/hostif/handlers/src/hostIf_DeviceClient_ReqHandler.cpp @@ -730,6 +730,14 @@ int DeviceClientReqHandler::handleGetMsg(HOSTIF_MsgData_t *stMsgData) { ret = pIface->get_X_RDK_FirmwareName(stMsgData); } + else if (!strcasecmp(stMsgData->paramName, HOTEL_CHECKOUT_LAST_RESET_TIME)) + { + ret = pIface->get_HotelCheckoutLastResetTime(stMsgData); + } + else if (!strcasecmp(stMsgData->paramName, HOTEL_CHECKOUT_STATUS)) + { + ret = pIface->get_HotelCheckoutStatus(stMsgData); + } else { RDK_LOG(RDK_LOG_ERROR,LOG_TR69HOSTIF,"[%s:%d] Parameter : \'%s\' is Not Supported \n", __FUNCTION__, __LINE__, stMsgData->paramName); diff --git a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml index f5327651c..3a72cb7a2 100755 --- a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml +++ b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml @@ -3201,6 +3201,18 @@ + + + + + + + + + + + + diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp index 854da38d1..7f81bba4b 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp @@ -5630,6 +5630,123 @@ int hostIf_DeviceInfo::set_xOpsRPCRebootPendingNotification(HOSTIF_MsgData_t *st return OK; } +int hostIf_DeviceInfo::get_HotelCheckoutLastResetTime(HOSTIF_MsgData_t* stMsgData) +{ + std::string postData = "{\"jsonrpc\":\"2.0\",\"id\":\"3\",\"method\": \"org.rdk.Account.getLastCheckoutResetTime\" }"; + + string resp = getJsonRPCData(std::move(postData)); + if (resp.empty()) + { + RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Empty output from Thunder call\n", __FUNCTION__); + return NOK; + } + + RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "[%s] curl response string = %s\n", __FUNCTION__, resp.c_str()); + + cJSON* root = cJSON_Parse(resp.c_str()); + + if(root) + { + cJSON* jsonObj = cJSON_GetObjectItem(root, "result"); + if (jsonObj) + { + cJSON *resetTimeObj = cJSON_GetObjectItem(jsonObj, "resetTime"); + + if (resetTimeObj && resetTimeObj->type == cJSON_Number) + { + unsigned long value = (unsigned long)resetTimeObj->valuedouble; + put_ulong(stMsgData->paramValue, value); + stMsgData->paramtype = hostIf_UnsignedLongType; + stMsgData->paramLen = sizeof(unsigned long); + } + else + { + RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] No resetTime in the output from Thunder plugin\n", __FUNCTION__); + cJSON_Delete(root); + return NOK; + } + } + else + { + RDK_LOG(RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] json parse error, no \"result\" in the output from Thunder plugin\n", __FUNCTION__); + cJSON_Delete(root); + return NOK; + } + + cJSON_Delete(root); + } + else + { + RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] json parse error\n", __FUNCTION__); + return NOK; + } + + return OK; +} + +int hostIf_DeviceInfo::get_HotelCheckoutStatus(HOSTIF_MsgData_t* stMsgData) +{ + std::string postData = "{\"jsonrpc\":\"2.0\",\"id\":\"3\",\"method\": \"org.rdk.Account.getLastCheckoutResetTime\" }"; + + string resp = getJsonRPCData(std::move(postData)); + if (resp.empty()) + { + RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Empty output from Thunder call\n", __FUNCTION__); + return NOK; + } + + RDK_LOG (RDK_LOG_INFO, LOG_TR69HOSTIF, "[%s] curl response string = %s\n", __FUNCTION__, resp.c_str()); + + cJSON* root = cJSON_Parse(resp.c_str()); + + stMsgData->paramtype = hostIf_StringType; + + if(root) + { + cJSON* jsonObj = cJSON_GetObjectItem(root, "result"); + if (jsonObj) + { + cJSON *resetTimeObj = cJSON_GetObjectItem(jsonObj, "resetTime"); + + if (resetTimeObj && resetTimeObj->type == cJSON_Number) + { + unsigned long value = (unsigned long)resetTimeObj->valuedouble; + + if (value > 0) + { + snprintf(stMsgData->paramValue, TR69HOSTIFMGR_MAX_PARAM_LEN, "%s", "success"); + } + else + { + snprintf(stMsgData->paramValue, TR69HOSTIFMGR_MAX_PARAM_LEN, "%s", "unknown"); + } + } + else + { + RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] No resetTime in the output from Thunder call\n", __FUNCTION__); + cJSON_Delete(root); + return NOK; + } + } + else + { + RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] No result from Thunder call\n", __FUNCTION__); + cJSON_Delete(root); + return NOK; + } + + stMsgData->paramLen = strlen(stMsgData->paramValue); + + cJSON_Delete(root); + } + else + { + RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] json parse error\n", __FUNCTION__); + return NOK; + } + + return OK; +} int hostIf_DeviceInfo::set_X_RDKCENTRAL_COM_LastRebootReason(HOSTIF_MsgData_t *stMsgData) { diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h index a86d8ddc4..b4f1dfd72 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h @@ -205,6 +205,11 @@ #define X_MEMINSIGHT_ENABLE "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.xMemInsight.Enable" #define X_MEMINSIGHT_ARGS "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.xMemInsight.Args" +/* Profile: X_RDKCENTRAL-COM_xAccount.HotelCheckout */ +#define HOTEL_CHECKOUT_LAST_RESET_TIME "Device.DeviceInfo.X_RDKCENTRAL-COM_xAccount.HotelCheckout.LastResetTime" +#define HOTEL_CHECKOUT_STATUS "Device.DeviceInfo.X_RDKCENTRAL-COM_xAccount.HotelCheckout.Status" + + char* getLastField(char* line, char delimiter); /** @@ -1582,6 +1587,10 @@ class hostIf_DeviceInfo { int set_xRDKDownloadManager_InstallPackage(HOSTIF_MsgData_t *); int set_xRDKDownloadManager_DownloadStatus(HOSTIF_MsgData_t *); + + int get_HotelCheckoutLastResetTime(HOSTIF_MsgData_t*); + int get_HotelCheckoutStatus(HOSTIF_MsgData_t*); + }; /* End of doxygen group */ /** From 21caf6384eb4ac4146a69774dcf87aaf1a2ff3dd Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Tue, 28 Apr 2026 20:05:02 +0000 Subject: [PATCH 8/9] tr69hostif 1.2.9hotfix for 8.4 hotfix release --- CHANGELOG.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 468d03a7b..b83b953c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,24 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [1.2.9hotfix2](https://github.com/rdkcentral/tr69hostif/compare/1.4.1...1.2.9hotfix2) +#### [1.2.9hotfix3](https://github.com/rdkcentral/tr69hostif/compare/1.4.2...1.2.9hotfix3) +- XIONE-18661 : Added support for Hotel checkout time. [`#456`](https://github.com/rdkcentral/tr69hostif/pull/456) - XIONE-18559 [RDKV]TR69 Component sync up with 8.4_p1v branch from RDKE [`#453`](https://github.com/rdkcentral/tr69hostif/pull/453) - DELIA-70007 : Updating wifi reassociation thres tolerance RFC [`#390`](https://github.com/rdkcentral/tr69hostif/pull/390) +- 1.2.9hotfix2 hotfix release [`5b70dab`](https://github.com/rdkcentral/tr69hostif/commit/5b70dab8f2c2cbb54c47a5cefa15dcfb2768a63d) - tr69hostif 8.4 hotfix release [`8d8de64`](https://github.com/rdkcentral/tr69hostif/commit/8d8de648bf5c1c6055024caaf24084e9877f5f6e) +#### [1.4.2](https://github.com/rdkcentral/tr69hostif/compare/1.4.1...1.4.2) + +> 23 April 2026 + +- RDK-59998 : Remove getprofiledata dml from hostif [`#455`](https://github.com/rdkcentral/tr69hostif/pull/455) +- Update workflow for the partner Defaults usage [`#451`](https://github.com/rdkcentral/tr69hostif/pull/451) +- RDKEMW-15141 Update the Missing Coverity Reports Fixes [`#441`](https://github.com/rdkcentral/tr69hostif/pull/441) +- tr69hostif 1.4.2 release changelog updates [`7dffc67`](https://github.com/rdkcentral/tr69hostif/commit/7dffc6720cad9102857568a029a6f19113d8e285) +- Merge tag '1.4.1' into develop [`7005cc7`](https://github.com/rdkcentral/tr69hostif/commit/7005cc788d3a55b18928a7228bffb42a31f61211) + #### [1.4.1](https://github.com/rdkcentral/tr69hostif/compare/1.4.0...1.4.1) > 8 April 2026 From 1571d0cbae895f815ee7d6de757c12adcc14bafd Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Wed, 29 Apr 2026 13:59:32 +0000 Subject: [PATCH 9/9] Revert "Merge tag '1.2.9hotfix3' into develop" This reverts commit b2b7c61450c8cec6a40e4e5a24c7d23904f7b86b, reversing changes made to b3c017a8814156ca98f96b6987c986f4d68fde6f. --- CHANGELOG.md | 19 ------------ .../waldb/data-model/data-model-generic.xml | 8 ----- .../profiles/DeviceInfo/Device_DeviceInfo.cpp | 4 --- .../profiles/DeviceInfo/Device_DeviceInfo.h | 5 --- src/hostif/src/hostIf_main.cpp | 31 +------------------ tr69hostif.service | 4 --- 6 files changed, 1 insertion(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 393e025dc..0b1a0f949 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,30 +4,11 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -<<<<<<< HEAD #### [1.4.2](https://github.com/rdkcentral/tr69hostif/compare/1.4.1...1.4.2) - RDK-59998 : Remove getprofiledata dml from hostif [`#455`](https://github.com/rdkcentral/tr69hostif/pull/455) - Update workflow for the partner Defaults usage [`#451`](https://github.com/rdkcentral/tr69hostif/pull/451) - RDKEMW-15141 Update the Missing Coverity Reports Fixes [`#441`](https://github.com/rdkcentral/tr69hostif/pull/441) -======= -#### [1.2.9hotfix3](https://github.com/rdkcentral/tr69hostif/compare/1.4.2...1.2.9hotfix3) - -- XIONE-18661 : Added support for Hotel checkout time. [`#456`](https://github.com/rdkcentral/tr69hostif/pull/456) -- XIONE-18559 [RDKV]TR69 Component sync up with 8.4_p1v branch from RDKE [`#453`](https://github.com/rdkcentral/tr69hostif/pull/453) -- DELIA-70007 : Updating wifi reassociation thres tolerance RFC [`#390`](https://github.com/rdkcentral/tr69hostif/pull/390) -- 1.2.9hotfix2 hotfix release [`5b70dab`](https://github.com/rdkcentral/tr69hostif/commit/5b70dab8f2c2cbb54c47a5cefa15dcfb2768a63d) -- tr69hostif 8.4 hotfix release [`8d8de64`](https://github.com/rdkcentral/tr69hostif/commit/8d8de648bf5c1c6055024caaf24084e9877f5f6e) - -#### [1.4.2](https://github.com/rdkcentral/tr69hostif/compare/1.4.1...1.4.2) - -> 23 April 2026 - -- RDK-59998 : Remove getprofiledata dml from hostif [`#455`](https://github.com/rdkcentral/tr69hostif/pull/455) -- Update workflow for the partner Defaults usage [`#451`](https://github.com/rdkcentral/tr69hostif/pull/451) -- RDKEMW-15141 Update the Missing Coverity Reports Fixes [`#441`](https://github.com/rdkcentral/tr69hostif/pull/441) -- tr69hostif 1.4.2 release changelog updates [`7dffc67`](https://github.com/rdkcentral/tr69hostif/commit/7dffc6720cad9102857568a029a6f19113d8e285) ->>>>>>> 1.2.9hotfix3 - Merge tag '1.4.1' into develop [`7005cc7`](https://github.com/rdkcentral/tr69hostif/commit/7005cc788d3a55b18928a7228bffb42a31f61211) #### [1.4.1](https://github.com/rdkcentral/tr69hostif/compare/1.4.0...1.4.1) diff --git a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml index 029067266..8381385e0 100644 --- a/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml +++ b/src/hostif/parodusClient/waldb/data-model/data-model-generic.xml @@ -4142,14 +4142,6 @@ - - - - - - - - diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp index 72d11abaf..37ded3ce1 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp @@ -5447,11 +5447,7 @@ int hostIf_DeviceInfo::get_HotelCheckoutStatus(HOSTIF_MsgData_t* stMsgData) string resp = getJsonRPCData(std::move(postData)); if (resp.empty()) { -<<<<<<< HEAD RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Empty outpu from Thunder call\n", __FUNCTION__); -======= - RDK_LOG (RDK_LOG_ERROR, LOG_TR69HOSTIF, "[%s] Empty output from Thunder call\n", __FUNCTION__); ->>>>>>> 1.2.9hotfix3 return NOK; } diff --git a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h index 51483a156..49fa6fb31 100644 --- a/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h +++ b/src/hostif/profiles/DeviceInfo/Device_DeviceInfo.h @@ -211,11 +211,6 @@ #define HOTEL_CHECKOUT_STATUS "Device.DeviceInfo.X_RDKCENTRAL-COM_xAccount.HotelCheckout.Status" -/* Profile: X_RDKCENTRAL-COM_xAccount.HotelCheckout */ -#define HOTEL_CHECKOUT_LAST_RESET_TIME "Device.DeviceInfo.X_RDKCENTRAL-COM_xAccount.HotelCheckout.LastResetTime" -#define HOTEL_CHECKOUT_STATUS "Device.DeviceInfo.X_RDKCENTRAL-COM_xAccount.HotelCheckout.Status" - - char* getLastField(char* line, char delimiter); /** diff --git a/src/hostif/src/hostIf_main.cpp b/src/hostif/src/hostIf_main.cpp index 1e9142487..432c1c82a 100644 --- a/src/hostif/src/hostIf_main.cpp +++ b/src/hostif/src/hostIf_main.cpp @@ -592,17 +592,10 @@ void quit_handler (int sig_received) void exit_gracefully (int sig_received) { if(isShutdownTriggered == 0) { -<<<<<<< HEAD RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] exit_gracefully called with signal %d\n", __FUNCTION__, __FILE__, sig_received); if(pthread_mutex_trylock(&graceful_exit_mutex) == 0) { RDK_LOG(RDK_LOG_NOTICE,LOG_TR69HOSTIF,"[%s:%s] Entering..\n", __FUNCTION__, __FILE__); RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Starting graceful shutdown steps\n", __FUNCTION__, __FILE__); -======= - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] exit_gracefully called with signal %d\n", __FUNCTION__, __FILE__, sig_received); - if(pthread_mutex_trylock(&graceful_exit_mutex) == 0) { - RDK_LOG(RDK_LOG_NOTICE,LOG_TR69HOSTIF,"[%s:%s] Entering..\n", __FUNCTION__, __FILE__); - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Starting graceful shutdown steps\n", __FUNCTION__, __FILE__); ->>>>>>> 1.2.9hotfix3 isShutdownTriggered = 1; #ifdef T2_EVENT_ENABLED t2_uninit(); @@ -618,54 +611,32 @@ void exit_gracefully (int sig_received) #endif /*Stop libSoup server and exit Json Thread */ -<<<<<<< HEAD RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping HTTP/Json threads\n", __FUNCTION__, __FILE__); -======= - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping HTTP/Json threads\n", __FUNCTION__, __FILE__); ->>>>>>> 1.2.9hotfix3 hostIf_HttpServerStop(); - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping update handler\n", __FUNCTION__, __FILE__); + updateHandler::stop(); - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping XBSStore\n", __FUNCTION__, __FILE__); XBSStore::getInstance()->stop(); if(logfile) { RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Closing logfile\n", __FUNCTION__, __FILE__); fclose (logfile); -<<<<<<< HEAD } -======= - } ->>>>>>> 1.2.9hotfix3 if(paramMgrhash) { RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Destroying paramMgrhash\n", __FUNCTION__, __FILE__); g_hash_table_destroy(paramMgrhash); - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Destroying paramMgrhash\n", __FUNCTION__, __FILE__); paramMgrhash = NULL; } -<<<<<<< HEAD RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping IARM IF\n", __FUNCTION__, __FILE__); -======= - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping IARM IF\n", __FUNCTION__, __FILE__); ->>>>>>> 1.2.9hotfix3 hostIf_IARM_IF_Stop(); RDK_LOG(RDK_LOG_NOTICE,LOG_TR69HOSTIF,"[%s:%s] Exiting program gracefully..\n", __FUNCTION__, __FILE__); if (g_main_loop_is_running(main_loop)) { -<<<<<<< HEAD RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Quitting main loop\n", __FUNCTION__, __FILE__); g_main_loop_quit(main_loop); #ifndef NEW_HTTP_SERVER_DISABLE /*Stop HTTP Server Thread*/ RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping HTTP Server Thread\n", __FUNCTION__, __FILE__); -======= - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Quitting main loop\n", __FUNCTION__, __FILE__); - g_main_loop_quit(main_loop); -#ifndef NEW_HTTP_SERVER_DISABLE - /*Stop HTTP Server Thread*/ - RDK_LOG(RDK_LOG_INFO,LOG_TR69HOSTIF,"[%s:%s] Stopping HTTP Server Thread\n", __FUNCTION__, __FILE__); ->>>>>>> 1.2.9hotfix3 HttpServerStop(); #endif } diff --git a/tr69hostif.service b/tr69hostif.service index 21b4f066f..859223bba 100644 --- a/tr69hostif.service +++ b/tr69hostif.service @@ -25,11 +25,7 @@ Type=notify SyslogIdentifier="tr69hostif" EnvironmentFile=/etc/device.properties ExecStartPre=/bin/mkdir -p /opt/tr-181 -<<<<<<< HEAD ExecStart=/bin/sh -c '/usr/bin/tr69hostif -c /etc/mgrlist.conf -p 10999 -s 11999' -======= -ExecStart=/usr/bin/tr69hostif -c /etc/mgrlist.conf -p 10999 -s 11999 ->>>>>>> 1.2.9hotfix3 ExecStop=/bin/kill -9 $MAINPID RestartSec=10s Restart=always