tools: find_chain_head/find_chain_tail code factorization in iptables-test
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Thu, 22 Sep 2011 12:39:19 +0000 (15:39 +0300)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 22 Sep 2011 13:22:46 +0000 (15:22 +0200)
tools/iptables-test.c

index bfe4803..555aa2a 100644 (file)
@@ -236,37 +236,15 @@ static GList *find_chain_tail(struct connman_iptables *table,
                                char *chain_name)
 {
        GList *chain_head, *list;
-       struct connman_iptables_entry *head, *tail;
-       struct ipt_entry *entry;
-       struct xt_entry_target *target;
-       int builtin;
-
-       /* First we look for the head */
-       for (list = table->entries; list; list = list->next) {
-               head = list->data;
-               entry = head->entry;
-
-               /* Buit-in chain */
-               builtin = head->builtin;
-               if (builtin >= 0 && !strcmp(hooknames[builtin], chain_name))
-                       break;
+       struct connman_iptables_entry *tail;
 
-               /* User defined chain */
-               target = ipt_get_target(entry);
-               if (!strcmp(target->u.user.name, IPT_ERROR_TARGET) &&
-                   !strcmp((char *)target->data, chain_name))
-                       break;
-       }
-
-       if (list == NULL)
+       chain_head = find_chain_head(table, chain_name);
+       if (chain_head == NULL)
                return NULL;
 
-       chain_head = list;
-
        /* Then we look for the next chain */
        for (list = chain_head->next; list; list = list->next) {
                tail = list->data;
-               entry = tail->entry;
 
                if (is_chain(table, tail))
                        return list;