conntrack_dump((const void *)match->data, "--", NFPROTO_IPV6, true);
}
-static struct xtables_match conntrack_mt_v0_reg = {
- .version = XTABLES_VERSION,
- .name = "conntrack",
- .revision = 0,
- .family = NFPROTO_IPV4,
- .size = XT_ALIGN(sizeof(struct xt_conntrack_info)),
- .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_info)),
- .help = conntrack_mt_help,
- .parse = conntrack_parse,
- .final_check = conntrack_mt_check,
- .print = conntrack_print,
- .save = conntrack_save,
- .extra_opts = conntrack_mt_opts_v0,
-};
-
-static struct xtables_match conntrack_mt_v1_reg = {
- .version = XTABLES_VERSION,
- .name = "conntrack",
- .revision = 1,
- .family = NFPROTO_IPV4,
- .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
- .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
- .help = conntrack_mt_help,
- .parse = conntrack1_mt4_parse,
- .final_check = conntrack_mt_check,
- .print = conntrack1_mt4_print,
- .save = conntrack1_mt4_save,
- .extra_opts = conntrack_mt_opts,
-};
-
-static struct xtables_match conntrack_mt6_v1_reg = {
- .version = XTABLES_VERSION,
- .name = "conntrack",
- .revision = 1,
- .family = NFPROTO_IPV6,
- .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
- .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
- .help = conntrack_mt_help,
- .parse = conntrack1_mt6_parse,
- .final_check = conntrack_mt_check,
- .print = conntrack1_mt6_print,
- .save = conntrack1_mt6_save,
- .extra_opts = conntrack_mt_opts,
-};
-
-static struct xtables_match conntrack_mt_v2_reg = {
- .version = XTABLES_VERSION,
- .name = "conntrack",
- .revision = 2,
- .family = NFPROTO_IPV4,
- .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
- .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
- .help = conntrack_mt_help,
- .parse = conntrack2_mt4_parse,
- .final_check = conntrack_mt_check,
- .print = conntrack_mt_print,
- .save = conntrack_mt_save,
- .extra_opts = conntrack_mt_opts,
-};
-
-static struct xtables_match conntrack_mt6_v2_reg = {
- .version = XTABLES_VERSION,
- .name = "conntrack",
- .revision = 2,
- .family = NFPROTO_IPV6,
- .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
- .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
- .help = conntrack_mt_help,
- .parse = conntrack2_mt6_parse,
- .final_check = conntrack_mt_check,
- .print = conntrack_mt6_print,
- .save = conntrack_mt6_save,
- .extra_opts = conntrack_mt_opts,
+ static void
+ conntrack1_mt4_save(const void *ip, const struct xt_entry_match *match)
+ {
+ const struct xt_conntrack_mtinfo1 *info = (void *)match->data;
+ struct xt_conntrack_mtinfo2 up;
+
+ cinfo_transform(&up, info);
+ conntrack_dump(&up, "--", NFPROTO_IPV4, true);
+ }
+
+ static void
+ conntrack1_mt6_save(const void *ip, const struct xt_entry_match *match)
+ {
+ const struct xt_conntrack_mtinfo1 *info = (void *)match->data;
+ struct xt_conntrack_mtinfo2 up;
+
+ cinfo_transform(&up, info);
+ conntrack_dump(&up, "--", NFPROTO_IPV6, true);
+ }
+
- .parse = conntrack_mt4_parse,
+static struct xtables_match conntrack_mt_reg[] = {
+ {
+ .version = XTABLES_VERSION,
+ .name = "conntrack",
+ .revision = 0,
+ .family = NFPROTO_IPV4,
+ .size = XT_ALIGN(sizeof(struct xt_conntrack_info)),
+ .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_info)),
+ .help = conntrack_mt_help,
+ .parse = conntrack_parse,
+ .final_check = conntrack_mt_check,
+ .print = conntrack_print,
+ .save = conntrack_save,
+ .extra_opts = conntrack_mt_opts_v0,
+ },
+ {
+ .version = XTABLES_VERSION,
+ .name = "conntrack",
+ .revision = 1,
+ .family = NFPROTO_IPV4,
+ .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
+ .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
+ .help = conntrack_mt_help,
- .print = conntrack_mt_print,
- .save = conntrack_mt_save,
++ .parse = conntrack1_mt4_parse,
+ .final_check = conntrack_mt_check,
- .parse = conntrack_mt6_parse,
++ .print = conntrack1_mt4_print,
++ .save = conntrack1_mt4_save,
+ .extra_opts = conntrack_mt_opts,
+ },
+ {
+ .version = XTABLES_VERSION,
+ .name = "conntrack",
+ .revision = 1,
+ .family = NFPROTO_IPV6,
+ .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
+ .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo1)),
+ .help = conntrack_mt_help,
++ .parse = conntrack1_mt6_parse,
++ .final_check = conntrack_mt_check,
++ .print = conntrack1_mt6_print,
++ .save = conntrack1_mt6_save,
++ .extra_opts = conntrack_mt_opts,
++ },
++ {
++ .version = XTABLES_VERSION,
++ .name = "conntrack",
++ .revision = 2,
++ .family = NFPROTO_IPV4,
++ .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
++ .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
++ .help = conntrack_mt_help,
++ .parse = conntrack2_mt4_parse,
++ .final_check = conntrack_mt_check,
++ .print = conntrack_mt_print,
++ .save = conntrack_mt_save,
++ .extra_opts = conntrack_mt_opts,
++ },
++ {
++ .version = XTABLES_VERSION,
++ .name = "conntrack",
++ .revision = 2,
++ .family = NFPROTO_IPV6,
++ .size = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
++ .userspacesize = XT_ALIGN(sizeof(struct xt_conntrack_mtinfo2)),
++ .help = conntrack_mt_help,
++ .parse = conntrack2_mt6_parse,
+ .final_check = conntrack_mt_check,
+ .print = conntrack_mt6_print,
+ .save = conntrack_mt6_save,
+ .extra_opts = conntrack_mt_opts,
+ },
};
void _init(void)