firewall3: add UBUS support for redirect sections
[project/firewall3.git] / forwards.c
index 6f95052..9b369f3 100644 (file)
@@ -54,7 +54,8 @@ fw3_load_forwards(struct fw3_state *state, struct uci_package *p)
 
                forward->enabled = true;
 
-               fw3_parse_options(forward, fw3_forward_opts, s);
+               if (!fw3_parse_options(forward, fw3_forward_opts, s))
+                       warn_elem(e, "has invalid options");
 
                if (!forward->enabled)
                {
@@ -83,21 +84,18 @@ fw3_load_forwards(struct fw3_state *state, struct uci_package *p)
                        continue;
                }
 
+               list_add_tail(&forward->list, &state->forwards);
+               continue;
+       }
+
+       list_for_each_entry(forward, &state->forwards, list)
+       {
                /* NB: forward family... */
                if (forward->_dest)
                {
                        fw3_setbit(forward->_dest->flags[0], FW3_FLAG_ACCEPT);
                        fw3_setbit(forward->_dest->flags[1], FW3_FLAG_ACCEPT);
-
-                       if (forward->_src &&
-                           (forward->_src->conntrack || forward->_dest->conntrack))
-                       {
-                               forward->_src->conntrack = forward->_dest->conntrack = true;
-                       }
                }
-
-               list_add_tail(&forward->list, &state->forwards);
-               continue;
        }
 }