X-Git-Url: http://git.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=zones.h;h=d78673664cd73c9e956695956235539be5d6237f;hp=63ed3a596ed5c8ae43f22b092ac4137bebdc469c;hb=HEAD;hpb=ab591095d650bc3e997bad12aa7662e49d5cd9d5 diff --git a/zones.h b/zones.h index 63ed3a5..beb0e22 100644 --- a/zones.h +++ b/zones.h @@ -1,7 +1,7 @@ /* * firewall3 - 3rd OpenWrt UCI firewall implementation * - * Copyright (C) 2013 Jo-Philipp Wich + * Copyright (C) 2013 Jo-Philipp Wich * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -20,6 +20,14 @@ #define __FW3_ZONES_H #include "options.h" +#include "iptables.h" + +/* XT_EXTENSION_MAXNAMELEN (29) + * - sizeof("postrouting_") + * - sizeof("_rule") + * - sizeof("\0") + */ +#define FW3_ZONE_MAXNAMELEN 11 extern const struct fw3_option fw3_zone_opts[]; @@ -27,21 +35,24 @@ struct fw3_zone * fw3_alloc_zone(void); void fw3_load_zones(struct fw3_state *state, struct uci_package *p); -void fw3_print_zone_chains(struct fw3_state *state, enum fw3_family family, - enum fw3_table table, bool reload); +void fw3_print_zone_chains(struct fw3_ipt_handle *handle, + struct fw3_state *state, bool reload); -void fw3_print_zone_rules(struct fw3_state *state, enum fw3_family family, - enum fw3_table table, bool reload); +void fw3_print_zone_rules(struct fw3_ipt_handle *handle, + struct fw3_state *state, bool reload); -void fw3_flush_zones(struct fw3_state *state, enum fw3_family family, - enum fw3_table table, bool reload, bool pass2); +void fw3_flush_zones(struct fw3_ipt_handle *handle, struct fw3_state *state, + bool reload); void fw3_hotplug_zones(struct fw3_state *state, bool add); -struct fw3_zone * fw3_lookup_zone(struct fw3_state *state, const char *name, - bool running); +struct fw3_zone * fw3_lookup_zone(struct fw3_state *state, const char *name); + +struct list_head * fw3_resolve_zone_addresses(struct fw3_zone *zone, + struct fw3_address *addr); -void fw3_free_zone(struct fw3_zone *zone); +#define fw3_free_zone(zone) \ + fw3_free_object(zone, fw3_zone_opts) #define fw3_to_src_target(t) \ (FW3_FLAG_SRC_ACCEPT - FW3_FLAG_ACCEPT + t)