|
@@ -86,7 +86,7 @@ static struct xt_target ebt_standard_target = {
|
|
|
|
|
|
static inline int
|
|
|
ebt_do_watcher(const struct ebt_entry_watcher *w, struct sk_buff *skb,
|
|
|
- struct xt_target_param *par)
|
|
|
+ struct xt_action_param *par)
|
|
|
{
|
|
|
par->target = w->u.watcher;
|
|
|
par->targinfo = w->data;
|
|
@@ -95,8 +95,9 @@ ebt_do_watcher(const struct ebt_entry_watcher *w, struct sk_buff *skb,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static inline int ebt_do_match (struct ebt_entry_match *m,
|
|
|
- const struct sk_buff *skb, struct xt_match_param *par)
|
|
|
+static inline int
|
|
|
+ebt_do_match(struct ebt_entry_match *m, const struct sk_buff *skb,
|
|
|
+ struct xt_action_param *par)
|
|
|
{
|
|
|
par->match = m->u.match;
|
|
|
par->matchinfo = m->data;
|
|
@@ -186,14 +187,13 @@ unsigned int ebt_do_table (unsigned int hook, struct sk_buff *skb,
|
|
|
const char *base;
|
|
|
const struct ebt_table_info *private;
|
|
|
bool hotdrop = false;
|
|
|
- struct xt_match_param mtpar;
|
|
|
- struct xt_target_param tgpar;
|
|
|
+ struct xt_action_param acpar;
|
|
|
|
|
|
- mtpar.family = tgpar.family = NFPROTO_BRIDGE;
|
|
|
- mtpar.in = tgpar.in = in;
|
|
|
- mtpar.out = tgpar.out = out;
|
|
|
- mtpar.hotdrop = &hotdrop;
|
|
|
- mtpar.hooknum = tgpar.hooknum = hook;
|
|
|
+ acpar.family = NFPROTO_BRIDGE;
|
|
|
+ acpar.in = in;
|
|
|
+ acpar.out = out;
|
|
|
+ acpar.hotdrop = &hotdrop;
|
|
|
+ acpar.hooknum = hook;
|
|
|
|
|
|
read_lock_bh(&table->lock);
|
|
|
private = table->private;
|
|
@@ -214,7 +214,7 @@ unsigned int ebt_do_table (unsigned int hook, struct sk_buff *skb,
|
|
|
if (ebt_basic_match(point, eth_hdr(skb), in, out))
|
|
|
goto letscontinue;
|
|
|
|
|
|
- if (EBT_MATCH_ITERATE(point, ebt_do_match, skb, &mtpar) != 0)
|
|
|
+ if (EBT_MATCH_ITERATE(point, ebt_do_match, skb, &acpar) != 0)
|
|
|
goto letscontinue;
|
|
|
if (hotdrop) {
|
|
|
read_unlock_bh(&table->lock);
|
|
@@ -227,7 +227,7 @@ unsigned int ebt_do_table (unsigned int hook, struct sk_buff *skb,
|
|
|
|
|
|
/* these should only watch: not modify, nor tell us
|
|
|
what to do with the packet */
|
|
|
- EBT_WATCHER_ITERATE(point, ebt_do_watcher, skb, &tgpar);
|
|
|
+ EBT_WATCHER_ITERATE(point, ebt_do_watcher, skb, &acpar);
|
|
|
|
|
|
t = (struct ebt_entry_target *)
|
|
|
(((char *)point) + point->target_offset);
|
|
@@ -235,9 +235,9 @@ unsigned int ebt_do_table (unsigned int hook, struct sk_buff *skb,
|
|
|
if (!t->u.target->target)
|
|
|
verdict = ((struct ebt_standard_target *)t)->verdict;
|
|
|
else {
|
|
|
- tgpar.target = t->u.target;
|
|
|
- tgpar.targinfo = t->data;
|
|
|
- verdict = t->u.target->target(skb, &tgpar);
|
|
|
+ acpar.target = t->u.target;
|
|
|
+ acpar.targinfo = t->data;
|
|
|
+ verdict = t->u.target->target(skb, &acpar);
|
|
|
}
|
|
|
if (verdict == EBT_ACCEPT) {
|
|
|
read_unlock_bh(&table->lock);
|