From d07244bb1e0fbf099c0ad62050a381a2c36cfec2 Mon Sep 17 00:00:00 2001 From: Nithishkumar_Thirumoorthi Date: Thu, 11 Jun 2026 06:08:50 +0000 Subject: [PATCH 1/3] Enable multi-profile xdns on XB10(single build) --- source/dmlxdns/cosa_xdns_apis.c | 57 ++++++++---------------- source/dmlxdns/cosa_xdns_dml.c | 31 +++---------- source/dmlxdns/cosa_xdns_webconfig_api.c | 31 +++---------- 3 files changed, 30 insertions(+), 89 deletions(-) diff --git a/source/dmlxdns/cosa_xdns_apis.c b/source/dmlxdns/cosa_xdns_apis.c index cc9c890..d9dd7b6 100644 --- a/source/dmlxdns/cosa_xdns_apis.c +++ b/source/dmlxdns/cosa_xdns_apis.c @@ -533,14 +533,9 @@ void RefreshResolvConfEntry() } #if defined(_COSA_FOR_BCI_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ + if (strstr(resolvConfEntry, "XDNS_Multi_Profile")) { - if (strstr(resolvConfEntry, "XDNS_Multi_Profile")) - { - continue; - } + continue; } #endif // _COSA_FOR_BCI_ || _ONESTACK_PRODUCT_REQ_ @@ -607,23 +602,20 @@ void RefreshResolvConfEntry() } #if defined(_COSA_FOR_BCI_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ + { + char multiprofile_flag[5] = {0}; + syscfg_get(NULL, "MultiProfileXDNS", multiprofile_flag, sizeof(multiprofile_flag)); + if (multiprofile_flag[0] == '1' && multiprofile_flag[1] == '\0') { - char multiprofile_flag[5] = {0}; - syscfg_get(NULL, "MultiProfileXDNS", multiprofile_flag, sizeof(multiprofile_flag)); - if (multiprofile_flag[0] == '1' && multiprofile_flag[1] == '\0') - { - fprintf(fp2, "XDNS_Multi_Profile Enabled\n"); - fprintf(stderr, "## CcspXDNS #### Multi Profile XDNS feature is Enabled\n"); - } - else - { - fprintf(fp2, "XDNS_Multi_Profile Disabled\n"); - fprintf(stderr, "## CcspXDNS #### Multi Profile XDNS feature is disabled\n"); - } + fprintf(fp2, "XDNS_Multi_Profile Enabled\n"); + fprintf(stderr, "## CcspXDNS #### Multi Profile XDNS feature is Enabled\n"); } + else + { + fprintf(fp2, "XDNS_Multi_Profile Disabled\n"); + fprintf(stderr, "## CcspXDNS #### Multi Profile XDNS feature is disabled\n"); + } + } #endif // _COSA_FOR_BCI_ || _ONESTACK_PRODUCT_REQ_ // at this point the temp file has entries from resolv.conf and dnsmasq_server.conf @@ -1633,14 +1625,9 @@ int SetXdnsConfig() } #if defined(_COSA_FOR_BCI_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ + if (strstr(confEntry, "XDNS_Multi_Profile")) { - if (strstr(confEntry, "XDNS_Multi_Profile")) - { - continue; - } + continue; } #endif // _COSA_FOR_BCI_ || _ONESTACK_PRODUCT_REQ_ @@ -1738,9 +1725,6 @@ int SetXdnsConfig() } #if defined(_COSA_FOR_BCI_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ { char multiprofile_flag[5] = {0}; syscfg_get(NULL, "MultiProfileXDNS", multiprofile_flag, sizeof(multiprofile_flag)); @@ -1865,14 +1849,9 @@ int UnsetXdnsConfig() } #if defined(_COSA_FOR_BCI_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ + if (strstr(confEntry, "XDNS_Multi_Profile")) { - if (strstr(confEntry, "XDNS_Multi_Profile")) - { - continue; - } + continue; } #endif // _COSA_FOR_BCI_ || _ONESTACK_PRODUCT_REQ_ diff --git a/source/dmlxdns/cosa_xdns_dml.c b/source/dmlxdns/cosa_xdns_dml.c index a1895e3..904205d 100644 --- a/source/dmlxdns/cosa_xdns_dml.c +++ b/source/dmlxdns/cosa_xdns_dml.c @@ -290,18 +290,13 @@ CcspXdnsConsoleTrace(("RDK_LOG_DEBUG, Xdns %s : ENTER \n", __FUNCTION__ )); else { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ + if (syscfg_set(NULL, "XDNS_DNSSecEnable", bval) != 0) { - if (syscfg_set(NULL, "XDNS_DNSSecEnable", bval) != 0) - { - CcspTraceError(("[XDNS] syscfg_set XDNS_DNSSecEnable failed!\n")); - } - else - { - fprintf(stderr, "%s [XDNS] XDNS_DNSSecEnable value is set to %s in DB\n", __FUNCTION__, bval); - } + CcspTraceError(("[XDNS] syscfg_set XDNS_DNSSecEnable failed!\n")); + } + else + { + fprintf(stderr, "%s [XDNS] XDNS_DNSSecEnable value is set to %s in DB\n", __FUNCTION__, bval); } #endif // _CBR_PRODUCT_REQ_ || _ONESTACK_PRODUCT_REQ_ if (syscfg_commit() != 0) @@ -637,9 +632,6 @@ XDNS_GetParamBoolValue if((!ind) && (rc == EOK)) { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ { char buf[5] = {0}; if (syscfg_get(NULL, "XDNS_DNSSecEnable", buf, sizeof(buf)) == 0) @@ -682,9 +674,6 @@ XDNS_SetParamBoolValue if((!ind) && (rc == EOK)) { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ { char bval[2] = {0}; if (bValue == TRUE) @@ -714,14 +703,6 @@ XDNS_SetParamBoolValue } return TRUE; } -#if defined(_ONESTACK_PRODUCT_REQ_) - if (!is_devicemode_business()) - { - CcspTraceInfo(("[XDNS] DNSSec feature not supported in residential mode\n")); - t2_event_d("XDNS_DNSSec_NotSupported", 1); - return FALSE; - } -#endif // _ONESTACK_PRODUCT_REQ_ #endif // _CBR_PRODUCT_REQ_ || _ONESTACK_PRODUCT_REQ_ } diff --git a/source/dmlxdns/cosa_xdns_webconfig_api.c b/source/dmlxdns/cosa_xdns_webconfig_api.c index 21cc59f..e525306 100644 --- a/source/dmlxdns/cosa_xdns_webconfig_api.c +++ b/source/dmlxdns/cosa_xdns_webconfig_api.c @@ -632,18 +632,13 @@ int apply_XDNS_cache_ToDB(xdns_cache *tmp_xdns_cache) else { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - if (is_devicemode_business()) -#endif // _ONESTACK_PRODUCT_REQ_ + if (syscfg_set(NULL, "XDNS_DNSSecEnable", setval) != 0) { - if (syscfg_set(NULL, "XDNS_DNSSecEnable", setval) != 0) - { - fprintf(stderr, "%s syscfg_set XDNS_DNSSecEnable failed %d !!!\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); - } - else - { - fprintf(stderr, "%s XDNS_DNSSecEnable value is set to %d in DB\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); - } + fprintf(stderr, "%s syscfg_set XDNS_DNSSecEnable failed %d !!!\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); + } + else + { + fprintf(stderr, "%s XDNS_DNSSecEnable value is set to %d in DB\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); } #endif // _CBR_PRODUCT_REQ_ || _ONESTACK_PRODUCT_REQ_ if (syscfg_commit() != 0) @@ -690,16 +685,9 @@ int set_xdns_conf(xdnsdoc_t *xd, xdns_cache *tmp_xdns_cache) } } #if !defined(_COSA_FOR_BCI_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - else if (!is_devicemode_business() && - ((!strncmp(xd->default_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)) && (INVALID_IP != CheckIfIpIsValid(xd->default_ipv6))) || - ((INVALID_IP != CheckIfIpIsValid(xd->default_ipv4)) && (!strncmp(xd->default_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)))) || - ((!strncmp(xd->default_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING))) && (!strncmp(xd->default_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)))))) -#else // _ONESTACK_PRODUCT_REQ_ else if ((!strncmp(xd->default_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)) && (INVALID_IP != CheckIfIpIsValid(xd->default_ipv6))) || ((INVALID_IP != CheckIfIpIsValid(xd->default_ipv4)) && (!strncmp(xd->default_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)))) || ((!strncmp(xd->default_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING))) && (!strncmp(xd->default_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING))))) -#endif // _ONESTACK_PRODUCT_REQ_ { ret = xdns_read_load_dns_ip(xd->default_ipv4, xd->default_ipv6, tmp_xdns_cache->DefaultDeviceDnsIPv4, tmp_xdns_cache->DefaultDeviceDnsIPv6); if (0 != ret) @@ -777,17 +765,10 @@ int set_xdns_conf(xdnsdoc_t *xd, xdns_cache *tmp_xdns_cache) } } #if defined(_COSA_FOR_BCI_) || defined(_ONESTACK_PRODUCT_REQ_) -#if defined(_ONESTACK_PRODUCT_REQ_) - else if (is_devicemode_business() && - ((!strncmp(xd->table_param->entries[i].dns_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)) && (INVALID_IP != CheckIfIpIsValid(xd->table_param->entries[i].dns_ipv6))) || - ((INVALID_IP != CheckIfIpIsValid(xd->table_param->entries[i].dns_ipv4)) && (!strncmp(xd->table_param->entries[i].dns_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)))) || - ((!strncmp(xd->table_param->entries[i].dns_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING))) && (!strncmp(xd->table_param->entries[i].dns_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)))))) -#else // _ONESTACK_PRODUCT_REQ_ else if ( (!strncmp(xd->table_param->entries[i].dns_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)) && (INVALID_IP != CheckIfIpIsValid(xd->table_param->entries[i].dns_ipv6))) || ((INVALID_IP != CheckIfIpIsValid(xd->table_param->entries[i].dns_ipv4)) && (!strncmp(xd->table_param->entries[i].dns_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING)))) || ((!strncmp(xd->table_param->entries[i].dns_ipv4, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING))) && (!strncmp(xd->table_param->entries[i].dns_ipv6, USE_RDK_DEFAULT_STRING, sizeof(USE_RDK_DEFAULT_STRING))))) -#endif // _ONESTACK_PRODUCT_REQ_ { ret = xdns_read_load_dns_ip(xd->table_param->entries[i].dns_ipv4, xd->table_param->entries[i].dns_ipv6, tmp_xdns_cache->XDNSTableList[i].DnsIPv4, tmp_xdns_cache->XDNSTableList[i].DnsIPv6); if (0 != ret) From 126022bed195012b512bf5418dc49009e2900075 Mon Sep 17 00:00:00 2001 From: Nithishkumar_Thirumoorthi Date: Tue, 21 Jul 2026 11:50:54 +0000 Subject: [PATCH 2/3] Disable DNSSec in residential mode --- source/dmlxdns/cosa_xdns_dml.c | 15 +++++++++------ source/dmlxdns/cosa_xdns_webconfig_api.c | 15 +++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/source/dmlxdns/cosa_xdns_dml.c b/source/dmlxdns/cosa_xdns_dml.c index 904205d..bd32245 100644 --- a/source/dmlxdns/cosa_xdns_dml.c +++ b/source/dmlxdns/cosa_xdns_dml.c @@ -290,13 +290,16 @@ CcspXdnsConsoleTrace(("RDK_LOG_DEBUG, Xdns %s : ENTER \n", __FUNCTION__ )); else { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) - if (syscfg_set(NULL, "XDNS_DNSSecEnable", bval) != 0) + if (is_devicemode_business()) { - CcspTraceError(("[XDNS] syscfg_set XDNS_DNSSecEnable failed!\n")); - } - else - { - fprintf(stderr, "%s [XDNS] XDNS_DNSSecEnable value is set to %s in DB\n", __FUNCTION__, bval); + if (syscfg_set(NULL, "XDNS_DNSSecEnable", bval) != 0) + { + CcspTraceError(("[XDNS] syscfg_set XDNS_DNSSecEnable failed!\n")); + } + else + { + fprintf(stderr, "%s [XDNS] XDNS_DNSSecEnable value is set to %s in DB\n", __FUNCTION__, bval); + } } #endif // _CBR_PRODUCT_REQ_ || _ONESTACK_PRODUCT_REQ_ if (syscfg_commit() != 0) diff --git a/source/dmlxdns/cosa_xdns_webconfig_api.c b/source/dmlxdns/cosa_xdns_webconfig_api.c index e525306..4bef732 100644 --- a/source/dmlxdns/cosa_xdns_webconfig_api.c +++ b/source/dmlxdns/cosa_xdns_webconfig_api.c @@ -632,13 +632,16 @@ int apply_XDNS_cache_ToDB(xdns_cache *tmp_xdns_cache) else { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) - if (syscfg_set(NULL, "XDNS_DNSSecEnable", setval) != 0) + if (is_devicemode_business()) { - fprintf(stderr, "%s syscfg_set XDNS_DNSSecEnable failed %d !!!\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); - } - else - { - fprintf(stderr, "%s XDNS_DNSSecEnable value is set to %d in DB\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); + if (syscfg_set(NULL, "XDNS_DNSSecEnable", setval) != 0) + { + fprintf(stderr, "%s syscfg_set XDNS_DNSSecEnable failed %d !!!\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); + } + else + { + fprintf(stderr, "%s XDNS_DNSSecEnable value is set to %d in DB\n", __FUNCTION__, tmp_xdns_cache->XdnsEnable); + } } #endif // _CBR_PRODUCT_REQ_ || _ONESTACK_PRODUCT_REQ_ if (syscfg_commit() != 0) From e90774a3824c0ff2f6bab174a47bedfb75ce0184 Mon Sep 17 00:00:00 2001 From: Nithishkumar_Thirumoorthi Date: Tue, 21 Jul 2026 12:42:27 +0000 Subject: [PATCH 3/3] Adding Onestack flag --- source/dmlxdns/cosa_xdns_dml.c | 2 ++ source/dmlxdns/cosa_xdns_webconfig_api.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/source/dmlxdns/cosa_xdns_dml.c b/source/dmlxdns/cosa_xdns_dml.c index bd32245..3db549f 100644 --- a/source/dmlxdns/cosa_xdns_dml.c +++ b/source/dmlxdns/cosa_xdns_dml.c @@ -290,7 +290,9 @@ CcspXdnsConsoleTrace(("RDK_LOG_DEBUG, Xdns %s : ENTER \n", __FUNCTION__ )); else { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) +#if defined(_ONESTACK_PRODUCT_REQ_) if (is_devicemode_business()) +#endif // _ONESTACK_PRODUCT_REQ_ { if (syscfg_set(NULL, "XDNS_DNSSecEnable", bval) != 0) { diff --git a/source/dmlxdns/cosa_xdns_webconfig_api.c b/source/dmlxdns/cosa_xdns_webconfig_api.c index 4bef732..6032e8f 100644 --- a/source/dmlxdns/cosa_xdns_webconfig_api.c +++ b/source/dmlxdns/cosa_xdns_webconfig_api.c @@ -632,7 +632,9 @@ int apply_XDNS_cache_ToDB(xdns_cache *tmp_xdns_cache) else { #if defined(_CBR_PRODUCT_REQ_) || defined(_ONESTACK_PRODUCT_REQ_) +#if defined(_ONESTACK_PRODUCT_REQ_) if (is_devicemode_business()) +#endif // _ONESTACK_PRODUCT_REQ_ { if (syscfg_set(NULL, "XDNS_DNSSecEnable", setval) != 0) {