X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=options.h;h=88c98a0cedc915ca7c7be926bb004692786a631c;hp=004eeeee1f8d63c8ff98b6dcbf712c242c978cbd;hb=9d900a9f86ef74a33a531e31c7373ab7b9906d88;hpb=f12271d15da3796c558b6649e97dad988ae2c057 diff --git a/options.h b/options.h index 004eeee..88c98a0 100644 --- a/options.h +++ b/options.h @@ -141,7 +141,16 @@ struct fw3_ipset_datatype { struct list_head list; enum fw3_ipset_type type; - bool dest; + const char *dir; +}; + +struct fw3_setmatch +{ + bool set; + bool invert; + char name[32]; + const char *dir[3]; + struct fw3_ipset *ptr; }; struct fw3_device @@ -162,6 +171,7 @@ struct fw3_address bool set; bool range; bool invert; + bool resolved; enum fw3_family family; int mask; union { @@ -319,9 +329,7 @@ struct fw3_rule struct fw3_device src; struct fw3_device dest; - - struct fw3_ipset *_ipset; - struct fw3_device ipset; + struct fw3_setmatch ipset; struct list_head proto; @@ -359,9 +367,7 @@ struct fw3_redirect struct fw3_device src; struct fw3_device dest; - - struct fw3_ipset *_ipset; - struct fw3_device ipset; + struct fw3_setmatch ipset; struct list_head proto; @@ -375,6 +381,7 @@ struct fw3_redirect struct fw3_address ip_redir; struct fw3_port port_redir; + struct fw3_limit limit; struct fw3_time time; struct fw3_mark mark; @@ -382,6 +389,7 @@ struct fw3_redirect const char *extra; + bool local; bool reflection; enum fw3_reflection_source reflection_src; }; @@ -504,6 +512,7 @@ bool fw3_parse_time(void *ptr, const char *val, bool is_list); bool fw3_parse_weekdays(void *ptr, const char *val, bool is_list); bool fw3_parse_monthdays(void *ptr, const char *val, bool is_list); bool fw3_parse_mark(void *ptr, const char *val, bool is_list); +bool fw3_parse_setmatch(void *ptr, const char *val, bool is_list); void fw3_parse_options(void *s, const struct fw3_option *opts, struct uci_section *section);