diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 8de9fab6..e27ffa29 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2383,6 +2383,26 @@ static int prepare_globals_from_configuration(void) isComcastImage = bIsComcastImage(); sysevent_get(sysevent_fd, sysevent_token, "wan_ifname", default_wan_ifname, sizeof(default_wan_ifname)); sysevent_get(sysevent_fd, sysevent_token, "current_wan_ifname", current_wan_ifname, sizeof(current_wan_ifname)); +#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE + if ('\0' == current_wan_ifname[0]) { + char wanInterface[20] = {'\0'}; + syscfg_get(NULL, "wan_physical_ifname", wanInterface, sizeof(wanInterface)); + if(wanInterface[0] != '\0'){ + safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),wanInterface); + ERR_CHK(safec_rc); + } + else{ + if ('\0' == default_wan_ifname[0]) { + safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),"erouter0"); + ERR_CHK(safec_rc); + } + else { + safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); + ERR_CHK(safec_rc); + } + } + } +#else if ('\0' == current_wan_ifname[0]) { if ('\0' == default_wan_ifname[0]) { snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", "erouter0"); @@ -2391,6 +2411,7 @@ static int prepare_globals_from_configuration(void) snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); } } + #endif sysevent_get(sysevent_fd, sysevent_token, "current_wan_ipaddr", current_wan_ipaddr, sizeof(current_wan_ipaddr)); @@ -2486,7 +2507,6 @@ static int prepare_globals_from_configuration(void) syscfg_get(NULL, "firewall_level", firewall_level, sizeof(firewall_level)); syscfg_get(NULL, "firewall_levelv6", firewall_levelv6, sizeof(firewall_levelv6)); - syscfg_get(NULL, "ecm_wan_ifname", ecm_wan_ifname, sizeof(ecm_wan_ifname)); #if !defined (NO_MTA_FEATURE_SUPPORT) syscfg_get(NULL, "emta_wan_ifname", emta_wan_ifname, sizeof(emta_wan_ifname)); @@ -12584,14 +12604,21 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * if(bEthWANEnable) { //ETH WAN is TC XB6 exclusive feature - if (strcmp(current_wan_ifname, default_wan_ifname ) == 0) - { - fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", current_wan_ifname); - } - else - { - fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", default_wan_ifname); - } + #ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE + if (current_wan_ifname[0] != '\0') + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", current_wan_ifname); + else + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", default_wan_ifname); + #else + if (strcmp(current_wan_ifname, default_wan_ifname ) == 0) + { + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", current_wan_ifname); + } + else + { + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", default_wan_ifname); + } + #endif } else if (erouterSSHEnable) // Applicable only for PUMA7 platforms {