firewall3: check the return value of fw3_parse_options()
[project/firewall3.git] / defaults.c
index e246949..85a3750 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * firewall3 - 3rd OpenWrt UCI firewall implementation
  *
- *   Copyright (C) 2013 Jo-Philipp Wich <jow@openwrt.org>
+ *   Copyright (C) 2013 Jo-Philipp Wich <jo@mein.io>
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -93,7 +93,6 @@ fw3_load_defaults(struct fw3_state *state, struct uci_package *p)
        defs->tcp_syncookies       = true;
        defs->tcp_window_scaling   = true;
        defs->custom_chains        = true;
-       defs->drop_invalid         = true;
 
        uci_foreach_element(&p->sections, e)
        {
@@ -108,7 +107,8 @@ fw3_load_defaults(struct fw3_state *state, struct uci_package *p)
                        continue;
                }
 
-               fw3_parse_options(&state->defaults, fw3_flag_opts, s);
+               if(!fw3_parse_options(&state->defaults, fw3_flag_opts, s))
+                       warn_elem(e, "has invalid options");
 
                check_policy(e, &defs->policy_input, "input");
                check_policy(e, &defs->policy_output, "output");
@@ -155,7 +155,7 @@ fw3_print_default_chains(struct fw3_ipt_handle *handle, struct fw3_state *state,
                        continue;
 
                if (c->flag &&
-                   !hasbit(defs->flags[handle->family == FW3_FAMILY_V6], c->flag))
+                   !fw3_hasbit(defs->flags[handle->family == FW3_FAMILY_V6], c->flag))
                        continue;
 
                fw3_ipt_create_chain(handle, c->format);
@@ -164,13 +164,6 @@ fw3_print_default_chains(struct fw3_ipt_handle *handle, struct fw3_state *state,
        set(defs->flags, handle->family, handle->table);
 }
 
-
-struct toplevel_rule {
-       enum fw3_table table;
-       const char *chain;
-       const char *target;
-};
-
 void
 fw3_print_default_head_rules(struct fw3_ipt_handle *handle,
                              struct fw3_state *state, bool reload)