From: Mark Huang Date: Mon, 10 Jan 2005 19:31:58 +0000 (+0000) Subject: - backport 2.6.9 addition of skb_header_pointer() macro to support X-Git-Tag: before-shares_write_debug-merge~4 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=904e3609366f1e3446ce08d9967ef63ddf4f5bf0;p=linux-2.6.git - backport 2.6.9 addition of skb_header_pointer() macro to support pptp-conntrack-nat patch --- diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 111bb7367..5156e432d 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1106,6 +1106,20 @@ extern void skb_copy_and_csum_dev(const struct sk_buff *skb, u8 *to); extern void skb_split(struct sk_buff *skb, struct sk_buff *skb1, const u32 len); +static inline void *skb_header_pointer(const struct sk_buff *skb, int offset, + int len, void *buffer) +{ + int hlen = skb_headlen(skb); + + if (offset + len <= hlen) + return skb->data + offset; + + if (skb_copy_bits(skb, offset, buffer, len) < 0) + return NULL; + + return buffer; +} + extern void skb_init(void); extern void skb_add_mtu(int mtu);