X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=xtables-10.h;h=7ea5315a45a5551f150e60d63e9bc6b92caf6830;hp=6b52fff21265706dcdbe9af541fd2403bd6a86e1;hb=HEAD;hpb=9a41dccb8e83bf7a7b3c12e6caf371010cf748cb diff --git a/xtables-10.h b/xtables-10.h index 6b52fff..7ea5315 100644 --- a/xtables-10.h +++ b/xtables-10.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 @@ -19,6 +19,20 @@ #ifndef __FW3_XTABLES_10_H #define __FW3_XTABLES_10_H +extern struct xtables_match *xtables_pending_matches; +extern struct xtables_target *xtables_pending_targets; + +static inline void +fw3_xt_reset(void) +{ + xtables_matches = NULL; + xtables_targets = NULL; + + xtables_pending_matches = NULL; + xtables_pending_targets = NULL; +} + + static inline const char * fw3_xt_get_match_name(struct xtables_match *m) { @@ -111,4 +125,32 @@ fw3_xt_merge_target_options(struct xtables_globals *g, struct xtables_target *t) t->extra_opts, &t->option_offset); } +static inline void +fw3_xt_print_matches(void *ip, struct xtables_rule_match *matches) +{ + struct xtables_rule_match *rm; + struct xtables_match *m; + + for (rm = matches; rm; rm = rm->next) + { + m = rm->match; + printf(" -m %s", fw3_xt_get_match_name(m)); + + if (m->save) + m->save(ip, m->m); + } +} + +static inline void +fw3_xt_print_target(void *ip, struct xtables_target *target) +{ + if (target) + { + printf(" -j %s", fw3_xt_get_target_name(target)); + + if (target->save) + target->save(ip, target->t); + } +} + #endif