diff options
author | Jan Engelhardt <jengelh@medozas.de> | 2010-03-22 14:39:04 -0400 |
---|---|---|
committer | Jan Engelhardt <jengelh@medozas.de> | 2010-03-25 12:04:57 -0400 |
commit | d879e19e18ebc69fc20a9b95612e9dd0acf4d7aa (patch) | |
tree | 654e1d4849941c064610ae74cd2e3cbadd80b0a8 | |
parent | 110d99ed1c846458654e2771b3ad626319f19394 (diff) |
netfilter: xtables: remove xt_string revision 0
Superseded by xt_string revision 1 (linux v2.6.26-rc8-1127-g4ad3f26,
iptables 1.4.2-rc1).
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
-rw-r--r-- | Documentation/Changes | 2 | ||||
-rw-r--r-- | net/netfilter/xt_string.c | 53 |
2 files changed, 19 insertions, 36 deletions
diff --git a/Documentation/Changes b/Documentation/Changes index f08b313cd235..eca9f6e6fbe6 100644 --- a/Documentation/Changes +++ b/Documentation/Changes | |||
@@ -49,7 +49,7 @@ o oprofile 0.9 # oprofiled --version | |||
49 | o udev 081 # udevinfo -V | 49 | o udev 081 # udevinfo -V |
50 | o grub 0.93 # grub --version | 50 | o grub 0.93 # grub --version |
51 | o mcelog 0.6 | 51 | o mcelog 0.6 |
52 | o iptables 1.4.1 # iptables -V | 52 | o iptables 1.4.2 # iptables -V |
53 | 53 | ||
54 | 54 | ||
55 | Kernel compilation | 55 | Kernel compilation |
diff --git a/net/netfilter/xt_string.c b/net/netfilter/xt_string.c index b0f8292db6f8..488e368a2c4e 100644 --- a/net/netfilter/xt_string.c +++ b/net/netfilter/xt_string.c | |||
@@ -26,12 +26,10 @@ string_mt(const struct sk_buff *skb, const struct xt_match_param *par) | |||
26 | { | 26 | { |
27 | const struct xt_string_info *conf = par->matchinfo; | 27 | const struct xt_string_info *conf = par->matchinfo; |
28 | struct ts_state state; | 28 | struct ts_state state; |
29 | int invert; | 29 | bool invert; |
30 | 30 | ||
31 | memset(&state, 0, sizeof(struct ts_state)); | 31 | memset(&state, 0, sizeof(struct ts_state)); |
32 | 32 | invert = conf->u.v1.flags & XT_STRING_FLAG_INVERT; | |
33 | invert = (par->match->revision == 0 ? conf->u.v0.invert : | ||
34 | conf->u.v1.flags & XT_STRING_FLAG_INVERT); | ||
35 | 33 | ||
36 | return (skb_find_text((struct sk_buff *)skb, conf->from_offset, | 34 | return (skb_find_text((struct sk_buff *)skb, conf->from_offset, |
37 | conf->to_offset, conf->config, &state) | 35 | conf->to_offset, conf->config, &state) |
@@ -53,13 +51,11 @@ static int string_mt_check(const struct xt_mtchk_param *par) | |||
53 | return -EINVAL; | 51 | return -EINVAL; |
54 | if (conf->patlen > XT_STRING_MAX_PATTERN_SIZE) | 52 | if (conf->patlen > XT_STRING_MAX_PATTERN_SIZE) |
55 | return -EINVAL; | 53 | return -EINVAL; |
56 | if (par->match->revision == 1) { | 54 | if (conf->u.v1.flags & |
57 | if (conf->u.v1.flags & | 55 | ~(XT_STRING_FLAG_IGNORECASE | XT_STRING_FLAG_INVERT)) |
58 | ~(XT_STRING_FLAG_IGNORECASE | XT_STRING_FLAG_INVERT)) | 56 | return -EINVAL; |
59 | return -EINVAL; | 57 | if (conf->u.v1.flags & XT_STRING_FLAG_IGNORECASE) |
60 | if (conf->u.v1.flags & XT_STRING_FLAG_IGNORECASE) | 58 | flags |= TS_IGNORECASE; |
61 | flags |= TS_IGNORECASE; | ||
62 | } | ||
63 | ts_conf = textsearch_prepare(conf->algo, conf->pattern, conf->patlen, | 59 | ts_conf = textsearch_prepare(conf->algo, conf->pattern, conf->patlen, |
64 | GFP_KERNEL, flags); | 60 | GFP_KERNEL, flags); |
65 | if (IS_ERR(ts_conf)) | 61 | if (IS_ERR(ts_conf)) |
@@ -74,38 +70,25 @@ static void string_mt_destroy(const struct xt_mtdtor_param *par) | |||
74 | textsearch_destroy(STRING_TEXT_PRIV(par->matchinfo)->config); | 70 | textsearch_destroy(STRING_TEXT_PRIV(par->matchinfo)->config); |
75 | } | 71 | } |
76 | 72 | ||
77 | static struct xt_match xt_string_mt_reg[] __read_mostly = { | 73 | static struct xt_match xt_string_mt_reg __read_mostly = { |
78 | { | 74 | .name = "string", |
79 | .name = "string", | 75 | .revision = 1, |
80 | .revision = 0, | 76 | .family = NFPROTO_UNSPEC, |
81 | .family = NFPROTO_UNSPEC, | 77 | .checkentry = string_mt_check, |
82 | .checkentry = string_mt_check, | 78 | .match = string_mt, |
83 | .match = string_mt, | 79 | .destroy = string_mt_destroy, |
84 | .destroy = string_mt_destroy, | 80 | .matchsize = sizeof(struct xt_string_info), |
85 | .matchsize = sizeof(struct xt_string_info), | 81 | .me = THIS_MODULE, |
86 | .me = THIS_MODULE | ||
87 | }, | ||
88 | { | ||
89 | .name = "string", | ||
90 | .revision = 1, | ||
91 | .family = NFPROTO_UNSPEC, | ||
92 | .checkentry = string_mt_check, | ||
93 | .match = string_mt, | ||
94 | .destroy = string_mt_destroy, | ||
95 | .matchsize = sizeof(struct xt_string_info), | ||
96 | .me = THIS_MODULE | ||
97 | }, | ||
98 | }; | 82 | }; |
99 | 83 | ||
100 | static int __init string_mt_init(void) | 84 | static int __init string_mt_init(void) |
101 | { | 85 | { |
102 | return xt_register_matches(xt_string_mt_reg, | 86 | return xt_register_match(&xt_string_mt_reg); |
103 | ARRAY_SIZE(xt_string_mt_reg)); | ||
104 | } | 87 | } |
105 | 88 | ||
106 | static void __exit string_mt_exit(void) | 89 | static void __exit string_mt_exit(void) |
107 | { | 90 | { |
108 | xt_unregister_matches(xt_string_mt_reg, ARRAY_SIZE(xt_string_mt_reg)); | 91 | xt_unregister_match(&xt_string_mt_reg); |
109 | } | 92 | } |
110 | 93 | ||
111 | module_init(string_mt_init); | 94 | module_init(string_mt_init); |