diff options
| author | Patrick McHardy <kaber@trash.net> | 2012-08-26 13:14:04 -0400 |
|---|---|---|
| committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-08-29 21:00:13 -0400 |
| commit | 051966c0c644a1c96092d4206e00704ade813c9a (patch) | |
| tree | 9ca8005f3e2a91cbd710b1f2eb52f49bf5f19f84 /include/linux | |
| parent | 811927ccfe90fbfcfff5253ba7f95057f6cae692 (diff) | |
netfilter: nf_nat: add protoff argument to packet mangling functions
For mangling IPv6 packets the protocol header offset needs to be known
by the NAT packet mangling functions. Add a so far unused protoff argument
and convert the conntrack and NAT helpers to use it in preparation of
IPv6 NAT.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/netfilter/nf_conntrack_amanda.h | 1 | ||||
| -rw-r--r-- | include/linux/netfilter/nf_conntrack_ftp.h | 1 | ||||
| -rw-r--r-- | include/linux/netfilter/nf_conntrack_h323.h | 15 | ||||
| -rw-r--r-- | include/linux/netfilter/nf_conntrack_irc.h | 1 | ||||
| -rw-r--r-- | include/linux/netfilter/nf_conntrack_pptp.h | 2 | ||||
| -rw-r--r-- | include/linux/netfilter/nf_conntrack_sip.h | 12 |
6 files changed, 25 insertions, 7 deletions
diff --git a/include/linux/netfilter/nf_conntrack_amanda.h b/include/linux/netfilter/nf_conntrack_amanda.h index 0bb5a6976bf3..4b59a1584959 100644 --- a/include/linux/netfilter/nf_conntrack_amanda.h +++ b/include/linux/netfilter/nf_conntrack_amanda.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | extern unsigned int (*nf_nat_amanda_hook)(struct sk_buff *skb, | 5 | extern unsigned int (*nf_nat_amanda_hook)(struct sk_buff *skb, |
| 6 | enum ip_conntrack_info ctinfo, | 6 | enum ip_conntrack_info ctinfo, |
| 7 | unsigned int protoff, | ||
| 7 | unsigned int matchoff, | 8 | unsigned int matchoff, |
| 8 | unsigned int matchlen, | 9 | unsigned int matchlen, |
| 9 | struct nf_conntrack_expect *exp); | 10 | struct nf_conntrack_expect *exp); |
diff --git a/include/linux/netfilter/nf_conntrack_ftp.h b/include/linux/netfilter/nf_conntrack_ftp.h index 3e3aa08980c3..28f18df36525 100644 --- a/include/linux/netfilter/nf_conntrack_ftp.h +++ b/include/linux/netfilter/nf_conntrack_ftp.h | |||
| @@ -34,6 +34,7 @@ struct nf_conntrack_expect; | |||
| 34 | extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff *skb, | 34 | extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff *skb, |
| 35 | enum ip_conntrack_info ctinfo, | 35 | enum ip_conntrack_info ctinfo, |
| 36 | enum nf_ct_ftp_type type, | 36 | enum nf_ct_ftp_type type, |
| 37 | unsigned int protoff, | ||
| 37 | unsigned int matchoff, | 38 | unsigned int matchoff, |
| 38 | unsigned int matchlen, | 39 | unsigned int matchlen, |
| 39 | struct nf_conntrack_expect *exp); | 40 | struct nf_conntrack_expect *exp); |
diff --git a/include/linux/netfilter/nf_conntrack_h323.h b/include/linux/netfilter/nf_conntrack_h323.h index 26f9226ea72b..f381020eee92 100644 --- a/include/linux/netfilter/nf_conntrack_h323.h +++ b/include/linux/netfilter/nf_conntrack_h323.h | |||
| @@ -36,12 +36,12 @@ extern void nf_conntrack_h245_expect(struct nf_conn *new, | |||
| 36 | struct nf_conntrack_expect *this); | 36 | struct nf_conntrack_expect *this); |
| 37 | extern void nf_conntrack_q931_expect(struct nf_conn *new, | 37 | extern void nf_conntrack_q931_expect(struct nf_conn *new, |
| 38 | struct nf_conntrack_expect *this); | 38 | struct nf_conntrack_expect *this); |
| 39 | extern int (*set_h245_addr_hook) (struct sk_buff *skb, | 39 | extern int (*set_h245_addr_hook) (struct sk_buff *skb, unsigned int protoff, |
| 40 | unsigned char **data, int dataoff, | 40 | unsigned char **data, int dataoff, |
| 41 | H245_TransportAddress *taddr, | 41 | H245_TransportAddress *taddr, |
| 42 | union nf_inet_addr *addr, | 42 | union nf_inet_addr *addr, |
| 43 | __be16 port); | 43 | __be16 port); |
| 44 | extern int (*set_h225_addr_hook) (struct sk_buff *skb, | 44 | extern int (*set_h225_addr_hook) (struct sk_buff *skb, unsigned int protoff, |
| 45 | unsigned char **data, int dataoff, | 45 | unsigned char **data, int dataoff, |
| 46 | TransportAddress *taddr, | 46 | TransportAddress *taddr, |
| 47 | union nf_inet_addr *addr, | 47 | union nf_inet_addr *addr, |
| @@ -49,40 +49,45 @@ extern int (*set_h225_addr_hook) (struct sk_buff *skb, | |||
| 49 | extern int (*set_sig_addr_hook) (struct sk_buff *skb, | 49 | extern int (*set_sig_addr_hook) (struct sk_buff *skb, |
| 50 | struct nf_conn *ct, | 50 | struct nf_conn *ct, |
| 51 | enum ip_conntrack_info ctinfo, | 51 | enum ip_conntrack_info ctinfo, |
| 52 | unsigned char **data, | 52 | unsigned int protoff, unsigned char **data, |
| 53 | TransportAddress *taddr, int count); | 53 | TransportAddress *taddr, int count); |
| 54 | extern int (*set_ras_addr_hook) (struct sk_buff *skb, | 54 | extern int (*set_ras_addr_hook) (struct sk_buff *skb, |
| 55 | struct nf_conn *ct, | 55 | struct nf_conn *ct, |
| 56 | enum ip_conntrack_info ctinfo, | 56 | enum ip_conntrack_info ctinfo, |
| 57 | unsigned char **data, | 57 | unsigned int protoff, unsigned char **data, |
| 58 | TransportAddress *taddr, int count); | 58 | TransportAddress *taddr, int count); |
| 59 | extern int (*nat_rtp_rtcp_hook) (struct sk_buff *skb, | 59 | extern int (*nat_rtp_rtcp_hook) (struct sk_buff *skb, |
| 60 | struct nf_conn *ct, | 60 | struct nf_conn *ct, |
| 61 | enum ip_conntrack_info ctinfo, | 61 | enum ip_conntrack_info ctinfo, |
| 62 | unsigned char **data, int dataoff, | 62 | unsigned int protoff, unsigned char **data, |
| 63 | int dataoff, | ||
| 63 | H245_TransportAddress *taddr, | 64 | H245_TransportAddress *taddr, |
| 64 | __be16 port, __be16 rtp_port, | 65 | __be16 port, __be16 rtp_port, |
| 65 | struct nf_conntrack_expect *rtp_exp, | 66 | struct nf_conntrack_expect *rtp_exp, |
| 66 | struct nf_conntrack_expect *rtcp_exp); | 67 | struct nf_conntrack_expect *rtcp_exp); |
| 67 | extern int (*nat_t120_hook) (struct sk_buff *skb, struct nf_conn *ct, | 68 | extern int (*nat_t120_hook) (struct sk_buff *skb, struct nf_conn *ct, |
| 68 | enum ip_conntrack_info ctinfo, | 69 | enum ip_conntrack_info ctinfo, |
| 70 | unsigned int protoff, | ||
| 69 | unsigned char **data, int dataoff, | 71 | unsigned char **data, int dataoff, |
| 70 | H245_TransportAddress *taddr, __be16 port, | 72 | H245_TransportAddress *taddr, __be16 port, |
| 71 | struct nf_conntrack_expect *exp); | 73 | struct nf_conntrack_expect *exp); |
| 72 | extern int (*nat_h245_hook) (struct sk_buff *skb, struct nf_conn *ct, | 74 | extern int (*nat_h245_hook) (struct sk_buff *skb, struct nf_conn *ct, |
| 73 | enum ip_conntrack_info ctinfo, | 75 | enum ip_conntrack_info ctinfo, |
| 76 | unsigned int protoff, | ||
| 74 | unsigned char **data, int dataoff, | 77 | unsigned char **data, int dataoff, |
| 75 | TransportAddress *taddr, __be16 port, | 78 | TransportAddress *taddr, __be16 port, |
| 76 | struct nf_conntrack_expect *exp); | 79 | struct nf_conntrack_expect *exp); |
| 77 | extern int (*nat_callforwarding_hook) (struct sk_buff *skb, | 80 | extern int (*nat_callforwarding_hook) (struct sk_buff *skb, |
| 78 | struct nf_conn *ct, | 81 | struct nf_conn *ct, |
| 79 | enum ip_conntrack_info ctinfo, | 82 | enum ip_conntrack_info ctinfo, |
| 83 | unsigned int protoff, | ||
| 80 | unsigned char **data, int dataoff, | 84 | unsigned char **data, int dataoff, |
| 81 | TransportAddress *taddr, | 85 | TransportAddress *taddr, |
| 82 | __be16 port, | 86 | __be16 port, |
| 83 | struct nf_conntrack_expect *exp); | 87 | struct nf_conntrack_expect *exp); |
| 84 | extern int (*nat_q931_hook) (struct sk_buff *skb, struct nf_conn *ct, | 88 | extern int (*nat_q931_hook) (struct sk_buff *skb, struct nf_conn *ct, |
| 85 | enum ip_conntrack_info ctinfo, | 89 | enum ip_conntrack_info ctinfo, |
| 90 | unsigned int protoff, | ||
| 86 | unsigned char **data, TransportAddress *taddr, | 91 | unsigned char **data, TransportAddress *taddr, |
| 87 | int idx, __be16 port, | 92 | int idx, __be16 port, |
| 88 | struct nf_conntrack_expect *exp); | 93 | struct nf_conntrack_expect *exp); |
diff --git a/include/linux/netfilter/nf_conntrack_irc.h b/include/linux/netfilter/nf_conntrack_irc.h index 36282bf71b63..4bb9bae67176 100644 --- a/include/linux/netfilter/nf_conntrack_irc.h +++ b/include/linux/netfilter/nf_conntrack_irc.h | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | 7 | ||
| 8 | extern unsigned int (*nf_nat_irc_hook)(struct sk_buff *skb, | 8 | extern unsigned int (*nf_nat_irc_hook)(struct sk_buff *skb, |
| 9 | enum ip_conntrack_info ctinfo, | 9 | enum ip_conntrack_info ctinfo, |
| 10 | unsigned int protoff, | ||
| 10 | unsigned int matchoff, | 11 | unsigned int matchoff, |
| 11 | unsigned int matchlen, | 12 | unsigned int matchlen, |
| 12 | struct nf_conntrack_expect *exp); | 13 | struct nf_conntrack_expect *exp); |
diff --git a/include/linux/netfilter/nf_conntrack_pptp.h b/include/linux/netfilter/nf_conntrack_pptp.h index 3bbde0c3a8a6..2ab2830316b7 100644 --- a/include/linux/netfilter/nf_conntrack_pptp.h +++ b/include/linux/netfilter/nf_conntrack_pptp.h | |||
| @@ -303,12 +303,14 @@ struct nf_conntrack_expect; | |||
| 303 | extern int | 303 | extern int |
| 304 | (*nf_nat_pptp_hook_outbound)(struct sk_buff *skb, | 304 | (*nf_nat_pptp_hook_outbound)(struct sk_buff *skb, |
| 305 | struct nf_conn *ct, enum ip_conntrack_info ctinfo, | 305 | struct nf_conn *ct, enum ip_conntrack_info ctinfo, |
| 306 | unsigned int protoff, | ||
| 306 | struct PptpControlHeader *ctlh, | 307 | struct PptpControlHeader *ctlh, |
| 307 | union pptp_ctrl_union *pptpReq); | 308 | union pptp_ctrl_union *pptpReq); |
| 308 | 309 | ||
| 309 | extern int | 310 | extern int |
| 310 | (*nf_nat_pptp_hook_inbound)(struct sk_buff *skb, | 311 | (*nf_nat_pptp_hook_inbound)(struct sk_buff *skb, |
| 311 | struct nf_conn *ct, enum ip_conntrack_info ctinfo, | 312 | struct nf_conn *ct, enum ip_conntrack_info ctinfo, |
| 313 | unsigned int protoff, | ||
| 312 | struct PptpControlHeader *ctlh, | 314 | struct PptpControlHeader *ctlh, |
| 313 | union pptp_ctrl_union *pptpReq); | 315 | union pptp_ctrl_union *pptpReq); |
| 314 | 316 | ||
diff --git a/include/linux/netfilter/nf_conntrack_sip.h b/include/linux/netfilter/nf_conntrack_sip.h index 89f2a627f3f0..1afc669a393e 100644 --- a/include/linux/netfilter/nf_conntrack_sip.h +++ b/include/linux/netfilter/nf_conntrack_sip.h | |||
| @@ -37,10 +37,12 @@ struct sdp_media_type { | |||
| 37 | struct sip_handler { | 37 | struct sip_handler { |
| 38 | const char *method; | 38 | const char *method; |
