From cf7a40fbe7509909bc44ad1f1d7e86ba016220b9 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 3 Feb 2010 19:34:41 +0100 Subject: [PATCH] ECHO: update to use skb_dst --- extensions/xt_ECHO.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/extensions/xt_ECHO.c b/extensions/xt_ECHO.c index f630cec..456403c 100644 --- a/extensions/xt_ECHO.c +++ b/extensions/xt_ECHO.c @@ -32,7 +32,7 @@ echo_tg4(struct sk_buff **poldskb, const struct xt_target_param *par) unsigned int addr_type, data_len; void *payload; - printk(KERN_INFO "dst_out=%p\n", (*poldskb)->dst->output); + printk(KERN_INFO "dst_out=%p\n", skb_dst(*poldskb)->output); /* This allows us to do the copy operation in fewer lines of code. */ if (skb_linearize(*poldskb) < 0) @@ -84,18 +84,17 @@ echo_tg4(struct sk_buff **poldskb, const struct xt_target_param *par) #endif addr_type = RTN_LOCAL; - /* ip_route_me_harder expects skb->dst to be set */ - dst_hold(oldskb->dst); - newskb->dst = oldskb->dst; + /* ip_route_me_harder expects the skb's dst to be set */ + skb_dst_set(newskb, dst_clone(skb_dst(oldskb))); if (ip_route_me_harder(&newskb, addr_type) < 0) goto free_nskb; - newip->ttl = dst_metric(newskb->dst, RTAX_HOPLIMIT); + newip->ttl = dst_metric(skb_dst(newskb), RTAX_HOPLIMIT); newskb->ip_summed = CHECKSUM_NONE; /* "Never happens" (?) */ - if (newskb->len > dst_mtu(newskb->dst)) + if (newskb->len > dst_mtu(skb_dst(newskb))) goto free_nskb; nf_ct_attach(newskb, *poldskb);