xref: /aosp_15_r20/external/iptables/extensions/libxt_TRACE.c (revision a71a954618bbadd4a345637e5edcf36eec826889)
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 Worker static 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 Worker void _init(void)
27*a71a9546SAutomerger Merge Worker {
28*a71a9546SAutomerger Merge Worker 	xtables_register_target(&trace_target);
29*a71a9546SAutomerger Merge Worker }
30