Add common fw3_address_to_string() helper function
[project/firewall3.git] / defaults.c
index bde4644..f87ac92 100644 (file)
@@ -38,6 +38,8 @@ static const struct fw3_rule_spec default_chains[] = {
        C(V4,  NAT,    CUSTOM_CHAINS, "postrouting_rule"),
 
        C(ANY, MANGLE, UNSPEC,        "mssfix"),
+       C(ANY, MANGLE, UNSPEC,        "fwmark"),
+
        C(ANY, RAW,    UNSPEC,        "notrack"),
 
        { }
@@ -52,6 +54,8 @@ static const struct fw3_rule_spec toplevel_rules[] = {
        C(V4,  NAT,    UNSPEC,        "POSTROUTING -j delegate_postrouting"),
 
        C(ANY, MANGLE, UNSPEC,        "FORWARD -j mssfix"),
+       C(ANY, MANGLE, UNSPEC,        "PREROUTING -j fwmark"),
+
        C(ANY, RAW,    UNSPEC,        "PREROUTING -j notrack"),
 
        { }
@@ -79,6 +83,9 @@ const struct fw3_option fw3_flag_opts[] = {
        FW3_OPT("custom_chains",       bool,     defaults, custom_chains),
        FW3_OPT("disable_ipv6",        bool,     defaults, disable_ipv6),
 
+       FW3_OPT("__flags_v4",          int,      defaults, flags[0]),
+       FW3_OPT("__flags_v6",          int,      defaults, flags[1]),
+
        { }
 };
 
@@ -135,8 +142,8 @@ fw3_load_defaults(struct fw3_state *state, struct uci_package *p)
 }
 
 void
-fw3_print_default_chains(enum fw3_table table, enum fw3_family family,
-                         bool reload, struct fw3_state *state)
+fw3_print_default_chains(struct fw3_state *state, enum fw3_family family,
+                         enum fw3_table table, bool reload)
 {
        bool rv;
        struct fw3_defaults *defs = &state->defaults;
@@ -173,8 +180,8 @@ fw3_print_default_chains(enum fw3_table table, enum fw3_family family,
 }
 
 void
-fw3_print_default_head_rules(enum fw3_table table, enum fw3_family family,
-                             bool reload, struct fw3_state *state)
+fw3_print_default_head_rules(struct fw3_state *state, enum fw3_family family,
+                             enum fw3_table table, bool reload)
 {
        int i;
        struct fw3_defaults *defs = &state->defaults;
@@ -248,8 +255,8 @@ fw3_print_default_head_rules(enum fw3_table table, enum fw3_family family,
 }
 
 void
-fw3_print_default_tail_rules(enum fw3_table table, enum fw3_family family,
-                             bool reload, struct fw3_state *state)
+fw3_print_default_tail_rules(struct fw3_state *state, enum fw3_family family,
+                             enum fw3_table table, bool reload)
 {
        struct fw3_defaults *defs = &state->defaults;
 
@@ -306,8 +313,8 @@ reset_policy(enum fw3_table table, enum fw3_flag policy)
 }
 
 void
-fw3_flush_rules(enum fw3_table table, enum fw3_family family,
-                bool pass2, bool reload, struct fw3_state *state)
+fw3_flush_rules(struct fw3_state *state, enum fw3_family family,
+                enum fw3_table table, bool reload, bool pass2)
 {
        struct fw3_defaults *defs = &state->defaults;
        uint32_t custom_mask = ~0;