From: Nishant Chaprana Date: Fri, 8 Dec 2017 10:21:51 +0000 (+0530) Subject: Allow creation of rule when no interface information present X-Git-Tag: submit/tizen/20171211.072253^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d47a396fbe6d818a270091fc44e96de9ef87a8c1;p=platform%2Fcore%2Fconnectivity%2Fstc-iptables.git Allow creation of rule when no interface information present Change-Id: Ia5f136da4eb2a9503dd4e7eea914a094027a3d8e Signed-off-by: Nishant Chaprana --- diff --git a/packaging/stc-iptables.spec b/packaging/stc-iptables.spec index 3f5e42e..bc8be6e 100644 --- a/packaging/stc-iptables.spec +++ b/packaging/stc-iptables.spec @@ -1,6 +1,6 @@ Name: stc-iptables Summary: STC(Smart Traffic Control) iptables -Version: 0.0.6 +Version: 0.0.7 Release: 0 Group: Network & Connectivity/Other License: GPL-2.0+ diff --git a/src/helper/helper-ip6tables.c b/src/helper/helper-ip6tables.c index d41e6be..a8eccdd 100755 --- a/src/helper/helper-ip6tables.c +++ b/src/helper/helper-ip6tables.c @@ -89,7 +89,7 @@ static int __create_entry_data(unsigned char *entry, unsigned char *mask, unsigned int size_mask = 0; unsigned int size_match = 0; - if (!rule->chain || !rule->ifname) { + if (!rule->chain) { STC_LOGE("Invalid parameters"); return STC_ERROR_INVALID_PARAMETER; } @@ -101,20 +101,22 @@ static int __create_entry_data(unsigned char *entry, unsigned char *mask, e->next_offset = SIZE_ENTRY; size_mask = sizeof(ip6t_entry_t); - switch (rule->type) { - case IP6TABLES_RULE_IN: - /* entry => "-i wlan0" */ - strncpy(e->ipv6.iniface, rule->ifname, IFNAMSIZ); - memset(&(e->ipv6.iniface_mask), 0xFF, IFNAMSIZ); - break; - case IP6TABLES_RULE_OUT: - /* entry => "-o wlan0" */ - strncpy(e->ipv6.outiface, rule->ifname, IFNAMSIZ); - memset(&(e->ipv6.outiface_mask), 0xFF, IFNAMSIZ); - break; - default: - STC_LOGE("Invalid parameter"); - return STC_ERROR_INVALID_PARAMETER; + if (rule->ifname) { + switch (rule->type) { + case IP6TABLES_RULE_IN: + /* entry => "-i wlan0" */ + strncpy(e->ipv6.iniface, rule->ifname, IFNAMSIZ); + memset(&(e->ipv6.iniface_mask), 0xFF, IFNAMSIZ); + break; + case IP6TABLES_RULE_OUT: + /* entry => "-o wlan0" */ + strncpy(e->ipv6.outiface, rule->ifname, IFNAMSIZ); + memset(&(e->ipv6.outiface_mask), 0xFF, IFNAMSIZ); + break; + default: + STC_LOGE("Invalid parameter"); + return STC_ERROR_INVALID_PARAMETER; + } } if (rule->classid > 0) { diff --git a/src/helper/helper-iptables.c b/src/helper/helper-iptables.c index 995ff75..09bf14b 100755 --- a/src/helper/helper-iptables.c +++ b/src/helper/helper-iptables.c @@ -89,7 +89,7 @@ static int __create_entry_data(unsigned char *entry, unsigned char *mask, unsigned int size_mask = 0; unsigned int size_match = 0; - if (!rule->chain || !rule->ifname) { + if (!rule->chain) { STC_LOGE("Invalid parameters"); return STC_ERROR_INVALID_PARAMETER; } @@ -101,20 +101,22 @@ static int __create_entry_data(unsigned char *entry, unsigned char *mask, e->next_offset = SIZE_ENTRY; size_mask = sizeof(ipt_entry_t); - switch (rule->type) { - case IPTABLES_RULE_IN: - /* entry => "-i wlan0 */ - strncpy(e->ip.iniface, rule->ifname, IFNAMSIZ); - memset(&(e->ip.iniface_mask), 0xFF, IFNAMSIZ); - break; - case IPTABLES_RULE_OUT: - /* entry => "-o wlan0 */ - strncpy(e->ip.outiface, rule->ifname, IFNAMSIZ); - memset(&(e->ip.outiface_mask), 0xFF, IFNAMSIZ); - break; - default: - STC_LOGE("Invalid parameter"); - return STC_ERROR_INVALID_PARAMETER; + if (rule->ifname) { + switch (rule->type) { + case IPTABLES_RULE_IN: + /* entry => "-i wlan0 */ + strncpy(e->ip.iniface, rule->ifname, IFNAMSIZ); + memset(&(e->ip.iniface_mask), 0xFF, IFNAMSIZ); + break; + case IPTABLES_RULE_OUT: + /* entry => "-o wlan0 */ + strncpy(e->ip.outiface, rule->ifname, IFNAMSIZ); + memset(&(e->ip.outiface_mask), 0xFF, IFNAMSIZ); + break; + default: + STC_LOGE("Invalid parameter"); + return STC_ERROR_INVALID_PARAMETER; + } } if (rule->classid > 0) {