diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 7172eaa0..0fa9e97c 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2382,6 +2382,23 @@ 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[BUFLEN_64] = {'\0'}; + syscfg_get(NULL, "wan_physical_ifname", wanInterface, sizeof(wanInterface)); + if(wanInterface[0] != '\0'){ + snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", wanInterface); + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s",wanInterface); + } + else{ + snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s",default_wan_ifname); + } + } + else { + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s", current_wan_ifname); + } +#else if ('\0' == current_wan_ifname[0]) { if ('\0' == default_wan_ifname[0]) { snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", "erouter0"); @@ -2390,6 +2407,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)); @@ -2485,8 +2503,9 @@ 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)); - +#ifndef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE syscfg_get(NULL, "ecm_wan_ifname", ecm_wan_ifname, sizeof(ecm_wan_ifname)); +#endif #if !defined (NO_MTA_FEATURE_SUPPORT) syscfg_get(NULL, "emta_wan_ifname", emta_wan_ifname, sizeof(emta_wan_ifname)); #endif @@ -12558,14 +12577,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 {