1*a71a9546SAutomerger Merge Worker /* Shared library add-on to iptables to add TRACE target support. */ 2*a71a9546SAutomerger Merge Worker #include <stdio.h> 3*a71a9546SAutomerger Merge Worker #include <string.h> 4*a71a9546SAutomerger Merge Worker #include <stdlib.h> 5*a71a9546SAutomerger Merge Worker #include <getopt.h> 6*a71a9546SAutomerger Merge Worker 7*a71a9546SAutomerger Merge Worker #include <xtables.h> 8*a71a9546SAutomerger Merge Worker #include <linux/netfilter/x_tables.h> 9*a71a9546SAutomerger Merge Worker trace_xlate(struct xt_xlate * xl,const struct xt_xlate_tg_params * params)10*a71a9546SAutomerger Merge Workerstatic int trace_xlate(struct xt_xlate *xl, 11*a71a9546SAutomerger Merge Worker const struct xt_xlate_tg_params *params) 12*a71a9546SAutomerger Merge Worker { 13*a71a9546SAutomerger Merge Worker xt_xlate_add(xl, "nftrace set 1"); 14*a71a9546SAutomerger Merge Worker return 1; 15*a71a9546SAutomerger Merge Worker } 16*a71a9546SAutomerger Merge Worker 17*a71a9546SAutomerger Merge Worker static struct xtables_target trace_target = { 18*a71a9546SAutomerger Merge Worker .family = NFPROTO_UNSPEC, 19*a71a9546SAutomerger Merge Worker .name = "TRACE", 20*a71a9546SAutomerger Merge Worker .version = XTABLES_VERSION, 21*a71a9546SAutomerger Merge Worker .size = XT_ALIGN(0), 22*a71a9546SAutomerger Merge Worker .userspacesize = XT_ALIGN(0), 23*a71a9546SAutomerger Merge Worker .xlate = trace_xlate, 24*a71a9546SAutomerger Merge Worker }; 25*a71a9546SAutomerger Merge Worker _init(void)26*a71a9546SAutomerger Merge Workervoid _init(void) 27*a71a9546SAutomerger Merge Worker { 28*a71a9546SAutomerger Merge Worker xtables_register_target(&trace_target); 29*a71a9546SAutomerger Merge Worker } 30