{
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
bool set;
bool range;
bool invert;
+ bool resolved;
enum fw3_family family;
int mask;
union {
struct fw3_device src;
struct fw3_device dest;
-
- struct fw3_ipset *_ipset;
- struct fw3_device ipset;
+ struct fw3_setmatch ipset;
struct list_head proto;
struct fw3_device src;
struct fw3_device dest;
-
- struct fw3_ipset *_ipset;
- struct fw3_device ipset;
+ struct fw3_setmatch ipset;
struct list_head proto;
struct fw3_address ip_redir;
struct fw3_port port_redir;
+ struct fw3_limit limit;
struct fw3_time time;
struct fw3_mark mark;
const char *extra;
+ bool local;
bool reflection;
enum fw3_reflection_source reflection_src;
};
bool statefile;
};
+struct fw3_chain_spec {
+ int family;
+ int table;
+ int flag;
+ const char *format;
+};
+
struct fw3_option
{
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,
+bool fw3_parse_options(void *s, const struct fw3_option *opts,
struct uci_section *section);
const char * fw3_address_to_string(struct fw3_address *address,