Allow creation of rule when no interface information present 09/163309/2 accepted/tizen/unified/20171211.160341 accepted/tizen/unified/20171212.064714 submit/tizen/20171211.072253 submit/tizen/20171212.025347
authorNishant Chaprana <n.chaprana@samsung.com>
Fri, 8 Dec 2017 10:21:51 +0000 (15:51 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Fri, 8 Dec 2017 10:23:14 +0000 (15:53 +0530)
Change-Id: Ia5f136da4eb2a9503dd4e7eea914a094027a3d8e
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
packaging/stc-iptables.spec
src/helper/helper-ip6tables.c
src/helper/helper-iptables.c

index 3f5e42e..bc8be6e 100644 (file)
@@ -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+
index d41e6be..a8eccdd 100755 (executable)
@@ -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) {
index 995ff75..09bf14b 100755 (executable)
@@ -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) {