Skip to content

Commit 4470bbc

Browse files
kaberDavid S. Miller
authored andcommitted
[NETFILTER]: x_tables: make use of mass registation helpers
Signed-off-by: Patrick McHardy <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 52d9c42 commit 4470bbc

32 files changed

+679
-1007
lines changed

net/ipv6/netfilter/ip6t_REJECT.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,7 @@ static struct ip6t_target ip6t_reject_reg = {
257257

258258
static int __init ip6t_reject_init(void)
259259
{
260-
if (ip6t_register_target(&ip6t_reject_reg))
261-
return -EINVAL;
262-
return 0;
260+
return ip6t_register_target(&ip6t_reject_reg);
263261
}
264262

265263
static void __exit ip6t_reject_fini(void)

net/netfilter/xt_CLASSIFY.c

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -40,47 +40,41 @@ target(struct sk_buff **pskb,
4040
return XT_CONTINUE;
4141
}
4242

43-
static struct xt_target classify_reg = {
44-
.name = "CLASSIFY",
45-
.target = target,
46-
.targetsize = sizeof(struct xt_classify_target_info),
47-
.table = "mangle",
48-
.hooks = (1 << NF_IP_LOCAL_OUT) | (1 << NF_IP_FORWARD) |
49-
(1 << NF_IP_POST_ROUTING),
50-
.family = AF_INET,
51-
.me = THIS_MODULE,
43+
static struct xt_target xt_classify_target[] = {
44+
{
45+
.family = AF_INET,
46+
.name = "CLASSIFY",
47+
.target = target,
48+
.targetsize = sizeof(struct xt_classify_target_info),
49+
.table = "mangle",
50+
.hooks = (1 << NF_IP_LOCAL_OUT) |
51+
(1 << NF_IP_FORWARD) |
52+
(1 << NF_IP_POST_ROUTING),
53+
.me = THIS_MODULE,
54+
},
55+
{
56+
.name = "CLASSIFY",
57+
.family = AF_INET6,
58+
.target = target,
59+
.targetsize = sizeof(struct xt_classify_target_info),
60+
.table = "mangle",
61+
.hooks = (1 << NF_IP_LOCAL_OUT) |
62+
(1 << NF_IP_FORWARD) |
63+
(1 << NF_IP_POST_ROUTING),
64+
.me = THIS_MODULE,
65+
},
5266
};
53-
static struct xt_target classify6_reg = {
54-
.name = "CLASSIFY",
55-
.target = target,
56-
.targetsize = sizeof(struct xt_classify_target_info),
57-
.table = "mangle",
58-
.hooks = (1 << NF_IP_LOCAL_OUT) | (1 << NF_IP_FORWARD) |
59-
(1 << NF_IP_POST_ROUTING),
60-
.family = AF_INET6,
61-
.me = THIS_MODULE,
62-
};
63-
6467

6568
static int __init xt_classify_init(void)
6669
{
67-
int ret;
68-
69-
ret = xt_register_target(&classify_reg);
70-
if (ret)
71-
return ret;
72-
73-
ret = xt_register_target(&classify6_reg);
74-
if (ret)
75-
xt_unregister_target(&classify_reg);
76-
77-
return ret;
70+
return xt_register_targets(xt_classify_target,
71+
ARRAY_SIZE(xt_classify_target));
7872
}
7973

8074
static void __exit xt_classify_fini(void)
8175
{
82-
xt_unregister_target(&classify_reg);
83-
xt_unregister_target(&classify6_reg);
76+
xt_unregister_targets(xt_classify_target,
77+
ARRAY_SIZE(xt_classify_target));
8478
}
8579

8680
module_init(xt_classify_init);

net/netfilter/xt_CONNMARK.c

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -110,45 +110,36 @@ checkentry(const char *tablename,
110110
return 1;
111111
}
112112

113-
static struct xt_target connmark_reg = {
114-
.name = "CONNMARK",
115-
.target = target,
116-
.targetsize = sizeof(struct xt_connmark_target_info),
117-
.checkentry = checkentry,
118-
.family = AF_INET,
119-
.me = THIS_MODULE
120-
};
121-
122-
static struct xt_target connmark6_reg = {
123-
.name = "CONNMARK",
124-
.target = target,
125-
.targetsize = sizeof(struct xt_connmark_target_info),
126-
.checkentry = checkentry,
127-
.family = AF_INET6,
128-
.me = THIS_MODULE
113+
static struct xt_target xt_connmark_target[] = {
114+
{
115+
.name = "CONNMARK",
116+
.family = AF_INET,
117+
.checkentry = checkentry,
118+
.target = target,
119+
.targetsize = sizeof(struct xt_connmark_target_info),
120+
.me = THIS_MODULE
121+
},
122+
{
123+
.name = "CONNMARK",
124+
.family = AF_INET6,
125+
.checkentry = checkentry,
126+
.target = target,
127+
.targetsize = sizeof(struct xt_connmark_target_info),
128+
.me = THIS_MODULE
129+
},
129130
};
130131

131132
static int __init xt_connmark_init(void)
132133
{
133-
int ret;
134-
135134
need_conntrack();
136-
137-
ret = xt_register_target(&connmark_reg);
138-
if (ret)
139-
return ret;
140-
141-
ret = xt_register_target(&connmark6_reg);
142-
if (ret)
143-
xt_unregister_target(&connmark_reg);
144-
145-
return ret;
135+
return xt_register_targets(xt_connmark_target,
136+
ARRAY_SIZE(xt_connmark_target));
146137
}
147138

148139
static void __exit xt_connmark_fini(void)
149140
{
150-
xt_unregister_target(&connmark_reg);
151-
xt_unregister_target(&connmark6_reg);
141+
xt_unregister_targets(xt_connmark_target,
142+
ARRAY_SIZE(xt_connmark_target));
152143
}
153144

154145
module_init(xt_connmark_init);

net/netfilter/xt_CONNSECMARK.c

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -106,49 +106,38 @@ static int checkentry(const char *tablename, const void *entry,
106106
return 1;
107107
}
108108

109-
static struct xt_target ipt_connsecmark_reg = {
110-
.name = "CONNSECMARK",
111-
.target = target,
112-
.targetsize = sizeof(struct xt_connsecmark_target_info),
113-
.table = "mangle",
114-
.checkentry = checkentry,
115-
.me = THIS_MODULE,
116-
.family = AF_INET,
117-
.revision = 0,
118-
};
119-
120-
static struct xt_target ip6t_connsecmark_reg = {
121-
.name = "CONNSECMARK",
122-
.target = target,
123-
.targetsize = sizeof(struct xt_connsecmark_target_info),
124-
.table = "mangle",
125-
.checkentry = checkentry,
126-
.me = THIS_MODULE,
127-
.family = AF_INET6,
128-
.revision = 0,
109+
static struct xt_target xt_connsecmark_target[] = {
110+
{
111+
.name = "CONNSECMARK",
112+
.family = AF_INET,
113+
.checkentry = checkentry,
114+
.target = target,
115+
.targetsize = sizeof(struct xt_connsecmark_target_info),
116+
.table = "mangle",
117+
.me = THIS_MODULE,
118+
},
119+
{
120+
.name = "CONNSECMARK",
121+
.family = AF_INET6,
122+
.checkentry = checkentry,
123+
.target = target,
124+
.targetsize = sizeof(struct xt_connsecmark_target_info),
125+
.table = "mangle",
126+
.me = THIS_MODULE,
127+
},
129128
};
130129

131130
static int __init xt_connsecmark_init(void)
132131
{
133-
int err;
134-
135132
need_conntrack();
136-
137-
err = xt_register_target(&ipt_connsecmark_reg);
138-
if (err)
139-
return err;
140-
141-
err = xt_register_target(&ip6t_connsecmark_reg);
142-
if (err)
143-
xt_unregister_target(&ipt_connsecmark_reg);
144-
145-
return err;
133+
return xt_register_targets(xt_connsecmark_targets,
134+
ARRAY_SIZE(xt_connsecmark_targets));
146135
}
147136

148137
static void __exit xt_connsecmark_fini(void)
149138
{
150-
xt_unregister_target(&ip6t_connsecmark_reg);
151-
xt_unregister_target(&ipt_connsecmark_reg);
139+
xt_unregister_targets(xt_connsecmark_targets,
140+
ARRAY_SIZE(xt_connsecmark_targets));
152141
}
153142

154143
module_init(xt_connsecmark_init);

net/netfilter/xt_DSCP.c

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -86,44 +86,35 @@ static int checkentry(const char *tablename,
8686
return 1;
8787
}
8888

89-
static struct xt_target xt_dscp_reg = {
90-
.name = "DSCP",
91-
.target = target,
92-
.targetsize = sizeof(struct xt_DSCP_info),
93-
.table = "mangle",
94-
.checkentry = checkentry,
95-
.family = AF_INET,
96-
.me = THIS_MODULE,
97-
};
98-
99-
static struct xt_target xt_dscp6_reg = {
100-
.name = "DSCP",
101-
.target = target6,
102-
.targetsize = sizeof(struct xt_DSCP_info),
103-
.table = "mangle",
104-
.checkentry = checkentry,
105-
.family = AF_INET6,
106-
.me = THIS_MODULE,
89+
static struct xt_target xt_dscp_target[] = {
90+
{
91+
.name = "DSCP",
92+
.family = AF_INET,
93+
.checkentry = checkentry,
94+
.target = target,
95+
.targetsize = sizeof(struct xt_DSCP_info),
96+
.table = "mangle",
97+
.me = THIS_MODULE,
98+
},
99+
{
100+
.name = "DSCP",
101+
.family = AF_INET6,
102+
.checkentry = checkentry,
103+
.target = target6,
104+
.targetsize = sizeof(struct xt_DSCP_info),
105+
.table = "mangle",
106+
.me = THIS_MODULE,
107+
},
107108
};
108109

109110
static int __init xt_dscp_target_init(void)
110111
{
111-
int ret;
112-
ret = xt_register_target(&xt_dscp_reg);
113-
if (ret)
114-
return ret;
115-
116-
ret = xt_register_target(&xt_dscp6_reg);
117-
if (ret)
118-
xt_unregister_target(&xt_dscp_reg);
119-
120-
return ret;
112+
return xt_register_targets(xt_dscp_target, ARRAY_SIZE(xt_dscp_target));
121113
}
122114

123115
static void __exit xt_dscp_target_fini(void)
124116
{
125-
xt_unregister_target(&xt_dscp_reg);
126-
xt_unregister_target(&xt_dscp6_reg);
117+
xt_unregister_targets(xt_dscp_target, ARRAY_SIZE(xt_dscp_target));
127118
}
128119

129120
module_init(xt_dscp_target_init);

net/netfilter/xt_MARK.c

Lines changed: 33 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -112,65 +112,47 @@ checkentry_v1(const char *tablename,
112112
return 1;
113113
}
114114

115-
static struct xt_target ipt_mark_reg_v0 = {
116-
.name = "MARK",
117-
.target = target_v0,
118-
.targetsize = sizeof(struct xt_mark_target_info),
119-
.table = "mangle",
120-
.checkentry = checkentry_v0,
121-
.me = THIS_MODULE,
122-
.family = AF_INET,
123-
.revision = 0,
124-
};
125-
126-
static struct xt_target ipt_mark_reg_v1 = {
127-
.name = "MARK",
128-
.target = target_v1,
129-
.targetsize = sizeof(struct xt_mark_target_info_v1),
130-
.table = "mangle",
131-
.checkentry = checkentry_v1,
132-
.me = THIS_MODULE,
133-
.family = AF_INET,
134-
.revision = 1,
135-
};
136-
137-
static struct xt_target ip6t_mark_reg_v0 = {
138-
.name = "MARK",
139-
.target = target_v0,
140-
.targetsize = sizeof(struct xt_mark_target_info),
141-
.table = "mangle",
142-
.checkentry = checkentry_v0,
143-
.me = THIS_MODULE,
144-
.family = AF_INET6,
145-
.revision = 0,
115+
static struct xt_target xt_mark_target[] = {
116+
{
117+
.name = "MARK",
118+
.family = AF_INET,
119+
.revision = 0,
120+
.checkentry = checkentry_v0,
121+
.target = target_v0,
122+
.targetsize = sizeof(struct xt_mark_target_info),
123+
.table = "mangle",
124+
.me = THIS_MODULE,
125+
},
126+
{
127+
.name = "MARK",
128+
.family = AF_INET,
129+
.revision = 1,
130+
.checkentry = checkentry_v1,
131+
.target = target_v1,
132+
.targetsize = sizeof(struct xt_mark_target_info_v1),
133+
.table = "mangle",
134+
.me = THIS_MODULE,
135+
},
136+
{
137+
.name = "MARK",
138+
.family = AF_INET6,
139+
.revision = 0,
140+
.checkentry = checkentry_v0,
141+
.target = target_v0,
142+
.targetsize = sizeof(struct xt_mark_target_info),
143+
.table = "mangle",
144+
.me = THIS_MODULE,
145+
},
146146
};
147147

148148
static int __init xt_mark_init(void)
149149
{
150-
int err;
151-
152-
err = xt_register_target(&ipt_mark_reg_v0);
153-
if (err)
154-
return err;
155-
156-
err = xt_register_target(&ipt_mark_reg_v1);
157-
if (err)
158-
xt_unregister_target(&ipt_mark_reg_v0);
159-
160-
err = xt_register_target(&ip6t_mark_reg_v0);
161-
if (err) {
162-
xt_unregister_target(&ipt_mark_reg_v0);
163-
xt_unregister_target(&ipt_mark_reg_v1);
164-
}
165-
166-
return err;
150+
return xt_register_targets(xt_mark_target, ARRAY_SIZE(xt_mark_target));
167151
}
168152

169153
static void __exit xt_mark_fini(void)
170154
{
171-
xt_unregister_target(&ipt_mark_reg_v0);
172-
xt_unregister_target(&ipt_mark_reg_v1);
173-
xt_unregister_target(&ip6t_mark_reg_v0);
155+
xt_unregister_targets(xt_mark_target, ARRAY_SIZE(xt_mark_target));
174156
}
175157

176158
module_init(xt_mark_init);

0 commit comments

Comments
 (0)