contrib/fwd: reorganize internal data model
[project/luci.git] / contrib / fwd / src / fwd_xtables.h
index 126746a..45b638a 100644 (file)
@@ -47,20 +47,24 @@ extern void get_kernel_version(void);
 
 void fwd_xt_init(void);
 
-struct fwd_xt_rule * fwd_xt_init_rule(const char *table);
+struct fwd_xt_rule * fwd_xt_init_rule(struct iptc_handle *h);
 
 void fwd_xt_parse_proto(struct fwd_xt_rule *r, struct fwd_proto *p, int inv);
 void fwd_xt_parse_in(struct fwd_xt_rule *r, struct fwd_network_list *n, int inv);
 void fwd_xt_parse_out(struct fwd_xt_rule *r, struct fwd_network_list *n, int inv);
 void fwd_xt_parse_src(struct fwd_xt_rule *r, struct fwd_cidr *c, int inv);
 void fwd_xt_parse_dest(struct fwd_xt_rule *r, struct fwd_cidr *c, int inv);
+void fwd_xt_parse_frag(struct fwd_xt_rule *r, int frag, int inv);
 
 struct xtables_match * fwd_xt_get_match(struct fwd_xt_rule *r, const char *name);
-void fwd_xt_parse_match(struct fwd_xt_rule *r, struct xtables_match *m, const char *opt, const char *val);
+void __fwd_xt_parse_match(struct fwd_xt_rule *r, struct xtables_match *m, ...);
+#define fwd_xt_parse_match(r, m, ...) __fwd_xt_parse_match(r, m, __VA_ARGS__, NULL)
 
 struct xtables_target * fwd_xt_get_target(struct fwd_xt_rule *r, const char *name);
-void fwd_xt_parse_target(struct fwd_xt_rule *r, struct xtables_target *t, const char *opt, const char *val);
+void __fwd_xt_parse_target(struct fwd_xt_rule *r, struct xtables_target *t, ...);
+#define fwd_xt_parse_target(r, t, ...) __fwd_xt_parse_target(r, t, __VA_ARGS__, NULL)
 
-int fwd_xt_exec_rule(struct fwd_xt_rule *r, const char *chain);
+int fwd_xt_append_rule(struct fwd_xt_rule *r, const char *chain);
+int fwd_xt_insert_rule(struct fwd_xt_rule *r, const char *chain, unsigned int pos);
 
 #endif