|
@@ -47,27 +47,27 @@ MODULE_PARM_DESC(callforward_filter, "only create call forwarding expectations "
|
|
|
"(determined by routing information)");
|
|
|
|
|
|
/* Hooks for NAT */
|
|
|
-int (*set_h245_addr_hook) (struct sk_buff **pskb,
|
|
|
+int (*set_h245_addr_hook) (struct sk_buff *skb,
|
|
|
unsigned char **data, int dataoff,
|
|
|
H245_TransportAddress *taddr,
|
|
|
union nf_conntrack_address *addr, __be16 port)
|
|
|
__read_mostly;
|
|
|
-int (*set_h225_addr_hook) (struct sk_buff **pskb,
|
|
|
+int (*set_h225_addr_hook) (struct sk_buff *skb,
|
|
|
unsigned char **data, int dataoff,
|
|
|
TransportAddress *taddr,
|
|
|
union nf_conntrack_address *addr, __be16 port)
|
|
|
__read_mostly;
|
|
|
-int (*set_sig_addr_hook) (struct sk_buff **pskb,
|
|
|
+int (*set_sig_addr_hook) (struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data,
|
|
|
TransportAddress *taddr, int count) __read_mostly;
|
|
|
-int (*set_ras_addr_hook) (struct sk_buff **pskb,
|
|
|
+int (*set_ras_addr_hook) (struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data,
|
|
|
TransportAddress *taddr, int count) __read_mostly;
|
|
|
-int (*nat_rtp_rtcp_hook) (struct sk_buff **pskb,
|
|
|
+int (*nat_rtp_rtcp_hook) (struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
@@ -75,25 +75,25 @@ int (*nat_rtp_rtcp_hook) (struct sk_buff **pskb,
|
|
|
__be16 port, __be16 rtp_port,
|
|
|
struct nf_conntrack_expect *rtp_exp,
|
|
|
struct nf_conntrack_expect *rtcp_exp) __read_mostly;
|
|
|
-int (*nat_t120_hook) (struct sk_buff **pskb,
|
|
|
+int (*nat_t120_hook) (struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
H245_TransportAddress *taddr, __be16 port,
|
|
|
struct nf_conntrack_expect *exp) __read_mostly;
|
|
|
-int (*nat_h245_hook) (struct sk_buff **pskb,
|
|
|
+int (*nat_h245_hook) (struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
TransportAddress *taddr, __be16 port,
|
|
|
struct nf_conntrack_expect *exp) __read_mostly;
|
|
|
-int (*nat_callforwarding_hook) (struct sk_buff **pskb,
|
|
|
+int (*nat_callforwarding_hook) (struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
TransportAddress *taddr, __be16 port,
|
|
|
struct nf_conntrack_expect *exp) __read_mostly;
|
|
|
-int (*nat_q931_hook) (struct sk_buff **pskb,
|
|
|
+int (*nat_q931_hook) (struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, TransportAddress *taddr, int idx,
|
|
@@ -108,7 +108,7 @@ static struct nf_conntrack_helper nf_conntrack_helper_q931[];
|
|
|
static struct nf_conntrack_helper nf_conntrack_helper_ras[];
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int get_tpkt_data(struct sk_buff **pskb, unsigned int protoff,
|
|
|
+static int get_tpkt_data(struct sk_buff *skb, unsigned int protoff,
|
|
|
struct nf_conn *ct, enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int *datalen, int *dataoff)
|
|
|
{
|
|
@@ -122,7 +122,7 @@ static int get_tpkt_data(struct sk_buff **pskb, unsigned int protoff,
|
|
|
int tpktoff;
|
|
|
|
|
|
/* Get TCP header */
|
|
|
- th = skb_header_pointer(*pskb, protoff, sizeof(_tcph), &_tcph);
|
|
|
+ th = skb_header_pointer(skb, protoff, sizeof(_tcph), &_tcph);
|
|
|
if (th == NULL)
|
|
|
return 0;
|
|
|
|
|
@@ -130,13 +130,13 @@ static int get_tpkt_data(struct sk_buff **pskb, unsigned int protoff,
|
|
|
tcpdataoff = protoff + th->doff * 4;
|
|
|
|
|
|
/* Get TCP data length */
|
|
|
- tcpdatalen = (*pskb)->len - tcpdataoff;
|
|
|
+ tcpdatalen = skb->len - tcpdataoff;
|
|
|
if (tcpdatalen <= 0) /* No TCP data */
|
|
|
goto clear_out;
|
|
|
|
|
|
if (*data == NULL) { /* first TPKT */
|
|
|
/* Get first TPKT pointer */
|
|
|
- tpkt = skb_header_pointer(*pskb, tcpdataoff, tcpdatalen,
|
|
|
+ tpkt = skb_header_pointer(skb, tcpdataoff, tcpdatalen,
|
|
|
h323_buffer);
|
|
|
BUG_ON(tpkt == NULL);
|
|
|
|
|
@@ -248,7 +248,7 @@ static int get_h245_addr(struct nf_conn *ct, unsigned char *data,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int expect_rtp_rtcp(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int expect_rtp_rtcp(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
H245_TransportAddress *taddr)
|
|
@@ -297,7 +297,7 @@ static int expect_rtp_rtcp(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
(nat_rtp_rtcp = rcu_dereference(nat_rtp_rtcp_hook)) &&
|
|
|
ct->status & IPS_NAT_MASK) {
|
|
|
/* NAT needed */
|
|
|
- ret = nat_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = nat_rtp_rtcp(skb, ct, ctinfo, data, dataoff,
|
|
|
taddr, port, rtp_port, rtp_exp, rtcp_exp);
|
|
|
} else { /* Conntrack only */
|
|
|
if (nf_ct_expect_related(rtp_exp) == 0) {
|
|
@@ -321,7 +321,7 @@ static int expect_rtp_rtcp(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int expect_t120(struct sk_buff **pskb,
|
|
|
+static int expect_t120(struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
@@ -355,7 +355,7 @@ static int expect_t120(struct sk_buff **pskb,
|
|
|
(nat_t120 = rcu_dereference(nat_t120_hook)) &&
|
|
|
ct->status & IPS_NAT_MASK) {
|
|
|
/* NAT needed */
|
|
|
- ret = nat_t120(pskb, ct, ctinfo, data, dataoff, taddr,
|
|
|
+ ret = nat_t120(skb, ct, ctinfo, data, dataoff, taddr,
|
|
|
port, exp);
|
|
|
} else { /* Conntrack only */
|
|
|
if (nf_ct_expect_related(exp) == 0) {
|
|
@@ -371,7 +371,7 @@ static int expect_t120(struct sk_buff **pskb,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_h245_channel(struct sk_buff **pskb,
|
|
|
+static int process_h245_channel(struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
@@ -381,7 +381,7 @@ static int process_h245_channel(struct sk_buff **pskb,
|
|
|
|
|
|
if (channel->options & eH2250LogicalChannelParameters_mediaChannel) {
|
|
|
/* RTP */
|
|
|
- ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_rtp_rtcp(skb, ct, ctinfo, data, dataoff,
|
|
|
&channel->mediaChannel);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -390,7 +390,7 @@ static int process_h245_channel(struct sk_buff **pskb,
|
|
|
if (channel->
|
|
|
options & eH2250LogicalChannelParameters_mediaControlChannel) {
|
|
|
/* RTCP */
|
|
|
- ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_rtp_rtcp(skb, ct, ctinfo, data, dataoff,
|
|
|
&channel->mediaControlChannel);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -400,7 +400,7 @@ static int process_h245_channel(struct sk_buff **pskb,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_olc(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_olc(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
OpenLogicalChannel *olc)
|
|
@@ -412,7 +412,7 @@ static int process_olc(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
if (olc->forwardLogicalChannelParameters.multiplexParameters.choice ==
|
|
|
eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
|
|
|
{
|
|
|
- ret = process_h245_channel(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_h245_channel(skb, ct, ctinfo, data, dataoff,
|
|
|
&olc->
|
|
|
forwardLogicalChannelParameters.
|
|
|
multiplexParameters.
|
|
@@ -430,7 +430,7 @@ static int process_olc(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters))
|
|
|
{
|
|
|
ret =
|
|
|
- process_h245_channel(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ process_h245_channel(skb, ct, ctinfo, data, dataoff,
|
|
|
&olc->
|
|
|
reverseLogicalChannelParameters.
|
|
|
multiplexParameters.
|
|
@@ -448,7 +448,7 @@ static int process_olc(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
t120.choice == eDataProtocolCapability_separateLANStack &&
|
|
|
olc->separateStack.networkAddress.choice ==
|
|
|
eNetworkAccessParameters_networkAddress_localAreaAddress) {
|
|
|
- ret = expect_t120(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_t120(skb, ct, ctinfo, data, dataoff,
|
|
|
&olc->separateStack.networkAddress.
|
|
|
localAreaAddress);
|
|
|
if (ret < 0)
|
|
@@ -459,7 +459,7 @@ static int process_olc(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_olca(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
OpenLogicalChannelAck *olca)
|
|
@@ -477,7 +477,7 @@ static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
choice ==
|
|
|
eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters))
|
|
|
{
|
|
|
- ret = process_h245_channel(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_h245_channel(skb, ct, ctinfo, data, dataoff,
|
|
|
&olca->
|
|
|
reverseLogicalChannelParameters.
|
|
|
multiplexParameters.
|
|
@@ -496,7 +496,7 @@ static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
if (ack->options &
|
|
|
eH2250LogicalChannelAckParameters_mediaChannel) {
|
|
|
/* RTP */
|
|
|
- ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_rtp_rtcp(skb, ct, ctinfo, data, dataoff,
|
|
|
&ack->mediaChannel);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -505,7 +505,7 @@ static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
if (ack->options &
|
|
|
eH2250LogicalChannelAckParameters_mediaControlChannel) {
|
|
|
/* RTCP */
|
|
|
- ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_rtp_rtcp(skb, ct, ctinfo, data, dataoff,
|
|
|
&ack->mediaControlChannel);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -515,7 +515,7 @@ static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
if ((olca->options & eOpenLogicalChannelAck_separateStack) &&
|
|
|
olca->separateStack.networkAddress.choice ==
|
|
|
eNetworkAccessParameters_networkAddress_localAreaAddress) {
|
|
|
- ret = expect_t120(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_t120(skb, ct, ctinfo, data, dataoff,
|
|
|
&olca->separateStack.networkAddress.
|
|
|
localAreaAddress);
|
|
|
if (ret < 0)
|
|
@@ -526,7 +526,7 @@ static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_h245(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_h245(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
MultimediaSystemControlMessage *mscm)
|
|
@@ -535,7 +535,7 @@ static int process_h245(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
case eMultimediaSystemControlMessage_request:
|
|
|
if (mscm->request.choice ==
|
|
|
eRequestMessage_openLogicalChannel) {
|
|
|
- return process_olc(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ return process_olc(skb, ct, ctinfo, data, dataoff,
|
|
|
&mscm->request.openLogicalChannel);
|
|
|
}
|
|
|
pr_debug("nf_ct_h323: H.245 Request %d\n",
|
|
@@ -544,7 +544,7 @@ static int process_h245(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
case eMultimediaSystemControlMessage_response:
|
|
|
if (mscm->response.choice ==
|
|
|
eResponseMessage_openLogicalChannelAck) {
|
|
|
- return process_olca(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ return process_olca(skb, ct, ctinfo, data, dataoff,
|
|
|
&mscm->response.
|
|
|
openLogicalChannelAck);
|
|
|
}
|
|
@@ -560,7 +560,7 @@ static int process_h245(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int h245_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
+static int h245_help(struct sk_buff *skb, unsigned int protoff,
|
|
|
struct nf_conn *ct, enum ip_conntrack_info ctinfo)
|
|
|
{
|
|
|
static MultimediaSystemControlMessage mscm;
|
|
@@ -574,12 +574,12 @@ static int h245_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
ctinfo != IP_CT_ESTABLISHED + IP_CT_IS_REPLY) {
|
|
|
return NF_ACCEPT;
|
|
|
}
|
|
|
- pr_debug("nf_ct_h245: skblen = %u\n", (*pskb)->len);
|
|
|
+ pr_debug("nf_ct_h245: skblen = %u\n", skb->len);
|
|
|
|
|
|
spin_lock_bh(&nf_h323_lock);
|
|
|
|
|
|
/* Process each TPKT */
|
|
|
- while (get_tpkt_data(pskb, protoff, ct, ctinfo,
|
|
|
+ while (get_tpkt_data(skb, protoff, ct, ctinfo,
|
|
|
&data, &datalen, &dataoff)) {
|
|
|
pr_debug("nf_ct_h245: TPKT len=%d ", datalen);
|
|
|
NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
|
|
@@ -596,7 +596,7 @@ static int h245_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
}
|
|
|
|
|
|
/* Process H.245 signal */
|
|
|
- if (process_h245(pskb, ct, ctinfo, &data, dataoff, &mscm) < 0)
|
|
|
+ if (process_h245(skb, ct, ctinfo, &data, dataoff, &mscm) < 0)
|
|
|
goto drop;
|
|
|
}
|
|
|
|
|
@@ -654,7 +654,7 @@ int get_h225_addr(struct nf_conn *ct, unsigned char *data,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int expect_h245(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int expect_h245(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
TransportAddress *taddr)
|
|
@@ -687,7 +687,7 @@ static int expect_h245(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
(nat_h245 = rcu_dereference(nat_h245_hook)) &&
|
|
|
ct->status & IPS_NAT_MASK) {
|
|
|
/* NAT needed */
|
|
|
- ret = nat_h245(pskb, ct, ctinfo, data, dataoff, taddr,
|
|
|
+ ret = nat_h245(skb, ct, ctinfo, data, dataoff, taddr,
|
|
|
port, exp);
|
|
|
} else { /* Conntrack only */
|
|
|
if (nf_ct_expect_related(exp) == 0) {
|
|
@@ -758,7 +758,7 @@ static int callforward_do_filter(union nf_conntrack_address *src,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int expect_callforwarding(struct sk_buff **pskb,
|
|
|
+static int expect_callforwarding(struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
@@ -798,7 +798,7 @@ static int expect_callforwarding(struct sk_buff **pskb,
|
|
|
(nat_callforwarding = rcu_dereference(nat_callforwarding_hook)) &&
|
|
|
ct->status & IPS_NAT_MASK) {
|
|
|
/* Need NAT */
|
|
|
- ret = nat_callforwarding(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = nat_callforwarding(skb, ct, ctinfo, data, dataoff,
|
|
|
taddr, port, exp);
|
|
|
} else { /* Conntrack only */
|
|
|
if (nf_ct_expect_related(exp) == 0) {
|
|
@@ -814,7 +814,7 @@ static int expect_callforwarding(struct sk_buff **pskb,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_setup(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
Setup_UUIE *setup)
|
|
@@ -829,7 +829,7 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
pr_debug("nf_ct_q931: Setup\n");
|
|
|
|
|
|
if (setup->options & eSetup_UUIE_h245Address) {
|
|
|
- ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_h245(skb, ct, ctinfo, data, dataoff,
|
|
|
&setup->h245Address);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -846,7 +846,7 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
NIP6(*(struct in6_addr *)&addr), ntohs(port),
|
|
|
NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.src.u3),
|
|
|
ntohs(ct->tuplehash[!dir].tuple.src.u.tcp.port));
|
|
|
- ret = set_h225_addr(pskb, data, dataoff,
|
|
|
+ ret = set_h225_addr(skb, data, dataoff,
|
|
|
&setup->destCallSignalAddress,
|
|
|
&ct->tuplehash[!dir].tuple.src.u3,
|
|
|
ct->tuplehash[!dir].tuple.src.u.tcp.port);
|
|
@@ -864,7 +864,7 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
NIP6(*(struct in6_addr *)&addr), ntohs(port),
|
|
|
NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.dst.u3),
|
|
|
ntohs(ct->tuplehash[!dir].tuple.dst.u.tcp.port));
|
|
|
- ret = set_h225_addr(pskb, data, dataoff,
|
|
|
+ ret = set_h225_addr(skb, data, dataoff,
|
|
|
&setup->sourceCallSignalAddress,
|
|
|
&ct->tuplehash[!dir].tuple.dst.u3,
|
|
|
ct->tuplehash[!dir].tuple.dst.u.tcp.port);
|
|
@@ -874,7 +874,7 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
if (setup->options & eSetup_UUIE_fastStart) {
|
|
|
for (i = 0; i < setup->fastStart.count; i++) {
|
|
|
- ret = process_olc(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_olc(skb, ct, ctinfo, data, dataoff,
|
|
|
&setup->fastStart.item[i]);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -885,7 +885,7 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_callproceeding(struct sk_buff **pskb,
|
|
|
+static int process_callproceeding(struct sk_buff *skb,
|
|
|
struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
@@ -897,7 +897,7 @@ static int process_callproceeding(struct sk_buff **pskb,
|
|
|
pr_debug("nf_ct_q931: CallProceeding\n");
|
|
|
|
|
|
if (callproc->options & eCallProceeding_UUIE_h245Address) {
|
|
|
- ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_h245(skb, ct, ctinfo, data, dataoff,
|
|
|
&callproc->h245Address);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -905,7 +905,7 @@ static int process_callproceeding(struct sk_buff **pskb,
|
|
|
|
|
|
if (callproc->options & eCallProceeding_UUIE_fastStart) {
|
|
|
for (i = 0; i < callproc->fastStart.count; i++) {
|
|
|
- ret = process_olc(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_olc(skb, ct, ctinfo, data, dataoff,
|
|
|
&callproc->fastStart.item[i]);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -916,7 +916,7 @@ static int process_callproceeding(struct sk_buff **pskb,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_connect(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_connect(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
Connect_UUIE *connect)
|
|
@@ -927,7 +927,7 @@ static int process_connect(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
pr_debug("nf_ct_q931: Connect\n");
|
|
|
|
|
|
if (connect->options & eConnect_UUIE_h245Address) {
|
|
|
- ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_h245(skb, ct, ctinfo, data, dataoff,
|
|
|
&connect->h245Address);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -935,7 +935,7 @@ static int process_connect(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
if (connect->options & eConnect_UUIE_fastStart) {
|
|
|
for (i = 0; i < connect->fastStart.count; i++) {
|
|
|
- ret = process_olc(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_olc(skb, ct, ctinfo, data, dataoff,
|
|
|
&connect->fastStart.item[i]);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -946,7 +946,7 @@ static int process_connect(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_alerting(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_alerting(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
Alerting_UUIE *alert)
|
|
@@ -957,7 +957,7 @@ static int process_alerting(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
pr_debug("nf_ct_q931: Alerting\n");
|
|
|
|
|
|
if (alert->options & eAlerting_UUIE_h245Address) {
|
|
|
- ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_h245(skb, ct, ctinfo, data, dataoff,
|
|
|
&alert->h245Address);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -965,7 +965,7 @@ static int process_alerting(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
if (alert->options & eAlerting_UUIE_fastStart) {
|
|
|
for (i = 0; i < alert->fastStart.count; i++) {
|
|
|
- ret = process_olc(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_olc(skb, ct, ctinfo, data, dataoff,
|
|
|
&alert->fastStart.item[i]);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -976,7 +976,7 @@ static int process_alerting(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_facility(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
Facility_UUIE *facility)
|
|
@@ -988,7 +988,7 @@ static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
if (facility->reason.choice == eFacilityReason_callForwarded) {
|
|
|
if (facility->options & eFacility_UUIE_alternativeAddress)
|
|
|
- return expect_callforwarding(pskb, ct, ctinfo, data,
|
|
|
+ return expect_callforwarding(skb, ct, ctinfo, data,
|
|
|
dataoff,
|
|
|
&facility->
|
|
|
alternativeAddress);
|
|
@@ -996,7 +996,7 @@ static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
if (facility->options & eFacility_UUIE_h245Address) {
|
|
|
- ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_h245(skb, ct, ctinfo, data, dataoff,
|
|
|
&facility->h245Address);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -1004,7 +1004,7 @@ static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
if (facility->options & eFacility_UUIE_fastStart) {
|
|
|
for (i = 0; i < facility->fastStart.count; i++) {
|
|
|
- ret = process_olc(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_olc(skb, ct, ctinfo, data, dataoff,
|
|
|
&facility->fastStart.item[i]);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -1015,7 +1015,7 @@ static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_progress(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_progress(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff,
|
|
|
Progress_UUIE *progress)
|
|
@@ -1026,7 +1026,7 @@ static int process_progress(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
pr_debug("nf_ct_q931: Progress\n");
|
|
|
|
|
|
if (progress->options & eProgress_UUIE_h245Address) {
|
|
|
- ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = expect_h245(skb, ct, ctinfo, data, dataoff,
|
|
|
&progress->h245Address);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -1034,7 +1034,7 @@ static int process_progress(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
if (progress->options & eProgress_UUIE_fastStart) {
|
|
|
for (i = 0; i < progress->fastStart.count; i++) {
|
|
|
- ret = process_olc(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_olc(skb, ct, ctinfo, data, dataoff,
|
|
|
&progress->fastStart.item[i]);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -1045,7 +1045,7 @@ static int process_progress(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_q931(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_q931(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, int dataoff, Q931 *q931)
|
|
|
{
|
|
@@ -1055,28 +1055,28 @@ static int process_q931(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
switch (pdu->h323_message_body.choice) {
|
|
|
case eH323_UU_PDU_h323_message_body_setup:
|
|
|
- ret = process_setup(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_setup(skb, ct, ctinfo, data, dataoff,
|
|
|
&pdu->h323_message_body.setup);
|
|
|
break;
|
|
|
case eH323_UU_PDU_h323_message_body_callProceeding:
|
|
|
- ret = process_callproceeding(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_callproceeding(skb, ct, ctinfo, data, dataoff,
|
|
|
&pdu->h323_message_body.
|
|
|
callProceeding);
|
|
|
break;
|
|
|
case eH323_UU_PDU_h323_message_body_connect:
|
|
|
- ret = process_connect(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_connect(skb, ct, ctinfo, data, dataoff,
|
|
|
&pdu->h323_message_body.connect);
|
|
|
break;
|
|
|
case eH323_UU_PDU_h323_message_body_alerting:
|
|
|
- ret = process_alerting(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_alerting(skb, ct, ctinfo, data, dataoff,
|
|
|
&pdu->h323_message_body.alerting);
|
|
|
break;
|
|
|
case eH323_UU_PDU_h323_message_body_facility:
|
|
|
- ret = process_facility(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_facility(skb, ct, ctinfo, data, dataoff,
|
|
|
&pdu->h323_message_body.facility);
|
|
|
break;
|
|
|
case eH323_UU_PDU_h323_message_body_progress:
|
|
|
- ret = process_progress(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_progress(skb, ct, ctinfo, data, dataoff,
|
|
|
&pdu->h323_message_body.progress);
|
|
|
break;
|
|
|
default:
|
|
@@ -1090,7 +1090,7 @@ static int process_q931(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
if (pdu->options & eH323_UU_PDU_h245Control) {
|
|
|
for (i = 0; i < pdu->h245Control.count; i++) {
|
|
|
- ret = process_h245(pskb, ct, ctinfo, data, dataoff,
|
|
|
+ ret = process_h245(skb, ct, ctinfo, data, dataoff,
|
|
|
&pdu->h245Control.item[i]);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -1101,7 +1101,7 @@ static int process_q931(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int q931_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
+static int q931_help(struct sk_buff *skb, unsigned int protoff,
|
|
|
struct nf_conn *ct, enum ip_conntrack_info ctinfo)
|
|
|
{
|
|
|
static Q931 q931;
|
|
@@ -1115,12 +1115,12 @@ static int q931_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
ctinfo != IP_CT_ESTABLISHED + IP_CT_IS_REPLY) {
|
|
|
return NF_ACCEPT;
|
|
|
}
|
|
|
- pr_debug("nf_ct_q931: skblen = %u\n", (*pskb)->len);
|
|
|
+ pr_debug("nf_ct_q931: skblen = %u\n", skb->len);
|
|
|
|
|
|
spin_lock_bh(&nf_h323_lock);
|
|
|
|
|
|
/* Process each TPKT */
|
|
|
- while (get_tpkt_data(pskb, protoff, ct, ctinfo,
|
|
|
+ while (get_tpkt_data(skb, protoff, ct, ctinfo,
|
|
|
&data, &datalen, &dataoff)) {
|
|
|
pr_debug("nf_ct_q931: TPKT len=%d ", datalen);
|
|
|
NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
|
|
@@ -1136,7 +1136,7 @@ static int q931_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
}
|
|
|
|
|
|
/* Process Q.931 signal */
|
|
|
- if (process_q931(pskb, ct, ctinfo, &data, dataoff, &q931) < 0)
|
|
|
+ if (process_q931(skb, ct, ctinfo, &data, dataoff, &q931) < 0)
|
|
|
goto drop;
|
|
|
}
|
|
|
|
|
@@ -1177,20 +1177,20 @@ static struct nf_conntrack_helper nf_conntrack_helper_q931[] __read_mostly = {
|
|
|
};
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static unsigned char *get_udp_data(struct sk_buff **pskb, unsigned int protoff,
|
|
|
+static unsigned char *get_udp_data(struct sk_buff *skb, unsigned int protoff,
|
|
|
int *datalen)
|
|
|
{
|
|
|
struct udphdr _uh, *uh;
|
|
|
int dataoff;
|
|
|
|
|
|
- uh = skb_header_pointer(*pskb, protoff, sizeof(_uh), &_uh);
|
|
|
+ uh = skb_header_pointer(skb, protoff, sizeof(_uh), &_uh);
|
|
|
if (uh == NULL)
|
|
|
return NULL;
|
|
|
dataoff = protoff + sizeof(_uh);
|
|
|
- if (dataoff >= (*pskb)->len)
|
|
|
+ if (dataoff >= skb->len)
|
|
|
return NULL;
|
|
|
- *datalen = (*pskb)->len - dataoff;
|
|
|
- return skb_header_pointer(*pskb, dataoff, *datalen, h323_buffer);
|
|
|
+ *datalen = skb->len - dataoff;
|
|
|
+ return skb_header_pointer(skb, dataoff, *datalen, h323_buffer);
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
@@ -1227,7 +1227,7 @@ static int set_expect_timeout(struct nf_conntrack_expect *exp,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int expect_q931(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int expect_q931(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data,
|
|
|
TransportAddress *taddr, int count)
|
|
@@ -1265,7 +1265,7 @@ static int expect_q931(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
nat_q931 = rcu_dereference(nat_q931_hook);
|
|
|
if (nat_q931 && ct->status & IPS_NAT_MASK) { /* Need NAT */
|
|
|
- ret = nat_q931(pskb, ct, ctinfo, data, taddr, i, port, exp);
|
|
|
+ ret = nat_q931(skb, ct, ctinfo, data, taddr, i, port, exp);
|
|
|
} else { /* Conntrack only */
|
|
|
if (nf_ct_expect_related(exp) == 0) {
|
|
|
pr_debug("nf_ct_ras: expect Q.931 ");
|
|
@@ -1283,7 +1283,7 @@ static int expect_q931(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_grq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_grq(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, GatekeeperRequest *grq)
|
|
|
{
|
|
@@ -1293,13 +1293,13 @@ static int process_grq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
set_ras_addr = rcu_dereference(set_ras_addr_hook);
|
|
|
if (set_ras_addr && ct->status & IPS_NAT_MASK) /* NATed */
|
|
|
- return set_ras_addr(pskb, ct, ctinfo, data,
|
|
|
+ return set_ras_addr(skb, ct, ctinfo, data,
|
|
|
&grq->rasAddress, 1);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_gcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_gcf(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, GatekeeperConfirm *gcf)
|
|
|
{
|
|
@@ -1343,7 +1343,7 @@ static int process_gcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_rrq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_rrq(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, RegistrationRequest *rrq)
|
|
|
{
|
|
@@ -1353,7 +1353,7 @@ static int process_rrq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
pr_debug("nf_ct_ras: RRQ\n");
|
|
|
|
|
|
- ret = expect_q931(pskb, ct, ctinfo, data,
|
|
|
+ ret = expect_q931(skb, ct, ctinfo, data,
|
|
|
rrq->callSignalAddress.item,
|
|
|
rrq->callSignalAddress.count);
|
|
|
if (ret < 0)
|
|
@@ -1361,7 +1361,7 @@ static int process_rrq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
set_ras_addr = rcu_dereference(set_ras_addr_hook);
|
|
|
if (set_ras_addr && ct->status & IPS_NAT_MASK) {
|
|
|
- ret = set_ras_addr(pskb, ct, ctinfo, data,
|
|
|
+ ret = set_ras_addr(skb, ct, ctinfo, data,
|
|
|
rrq->rasAddress.item,
|
|
|
rrq->rasAddress.count);
|
|
|
if (ret < 0)
|
|
@@ -1378,7 +1378,7 @@ static int process_rrq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_rcf(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, RegistrationConfirm *rcf)
|
|
|
{
|
|
@@ -1392,7 +1392,7 @@ static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
set_sig_addr = rcu_dereference(set_sig_addr_hook);
|
|
|
if (set_sig_addr && ct->status & IPS_NAT_MASK) {
|
|
|
- ret = set_sig_addr(pskb, ct, ctinfo, data,
|
|
|
+ ret = set_sig_addr(skb, ct, ctinfo, data,
|
|
|
rcf->callSignalAddress.item,
|
|
|
rcf->callSignalAddress.count);
|
|
|
if (ret < 0)
|
|
@@ -1407,7 +1407,7 @@ static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
if (info->timeout > 0) {
|
|
|
pr_debug("nf_ct_ras: set RAS connection timeout to "
|
|
|
"%u seconds\n", info->timeout);
|
|
|
- nf_ct_refresh(ct, *pskb, info->timeout * HZ);
|
|
|
+ nf_ct_refresh(ct, skb, info->timeout * HZ);
|
|
|
|
|
|
/* Set expect timeout */
|
|
|
read_lock_bh(&nf_conntrack_lock);
|
|
@@ -1427,7 +1427,7 @@ static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_urq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_urq(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, UnregistrationRequest *urq)
|
|
|
{
|
|
@@ -1440,7 +1440,7 @@ static int process_urq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
set_sig_addr = rcu_dereference(set_sig_addr_hook);
|
|
|
if (set_sig_addr && ct->status & IPS_NAT_MASK) {
|
|
|
- ret = set_sig_addr(pskb, ct, ctinfo, data,
|
|
|
+ ret = set_sig_addr(skb, ct, ctinfo, data,
|
|
|
urq->callSignalAddress.item,
|
|
|
urq->callSignalAddress.count);
|
|
|
if (ret < 0)
|
|
@@ -1453,13 +1453,13 @@ static int process_urq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
info->sig_port[!dir] = 0;
|
|
|
|
|
|
/* Give it 30 seconds for UCF or URJ */
|
|
|
- nf_ct_refresh(ct, *pskb, 30 * HZ);
|
|
|
+ nf_ct_refresh(ct, skb, 30 * HZ);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_arq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_arq(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, AdmissionRequest *arq)
|
|
|
{
|
|
@@ -1479,7 +1479,7 @@ static int process_arq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
port == info->sig_port[dir] &&
|
|
|
set_h225_addr && ct->status & IPS_NAT_MASK) {
|
|
|
/* Answering ARQ */
|
|
|
- return set_h225_addr(pskb, data, 0,
|
|
|
+ return set_h225_addr(skb, data, 0,
|
|
|
&arq->destCallSignalAddress,
|
|
|
&ct->tuplehash[!dir].tuple.dst.u3,
|
|
|
info->sig_port[!dir]);
|
|
@@ -1491,7 +1491,7 @@ static int process_arq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
!memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3, sizeof(addr)) &&
|
|
|
set_h225_addr && ct->status & IPS_NAT_MASK) {
|
|
|
/* Calling ARQ */
|
|
|
- return set_h225_addr(pskb, data, 0,
|
|
|
+ return set_h225_addr(skb, data, 0,
|
|
|
&arq->srcCallSignalAddress,
|
|
|
&ct->tuplehash[!dir].tuple.dst.u3,
|
|
|
port);
|
|
@@ -1501,7 +1501,7 @@ static int process_arq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_acf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_acf(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, AdmissionConfirm *acf)
|
|
|
{
|
|
@@ -1522,7 +1522,7 @@ static int process_acf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
/* Answering ACF */
|
|
|
set_sig_addr = rcu_dereference(set_sig_addr_hook);
|
|
|
if (set_sig_addr && ct->status & IPS_NAT_MASK)
|
|
|
- return set_sig_addr(pskb, ct, ctinfo, data,
|
|
|
+ return set_sig_addr(skb, ct, ctinfo, data,
|
|
|
&acf->destCallSignalAddress, 1);
|
|
|
return 0;
|
|
|
}
|
|
@@ -1548,7 +1548,7 @@ static int process_acf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_lrq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_lrq(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, LocationRequest *lrq)
|
|
|
{
|
|
@@ -1558,13 +1558,13 @@ static int process_lrq(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
set_ras_addr = rcu_dereference(set_ras_addr_hook);
|
|
|
if (set_ras_addr && ct->status & IPS_NAT_MASK)
|
|
|
- return set_ras_addr(pskb, ct, ctinfo, data,
|
|
|
+ return set_ras_addr(skb, ct, ctinfo, data,
|
|
|
&lrq->replyAddress, 1);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_lcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_lcf(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, LocationConfirm *lcf)
|
|
|
{
|
|
@@ -1603,7 +1603,7 @@ static int process_lcf(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_irr(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_irr(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, InfoRequestResponse *irr)
|
|
|
{
|
|
@@ -1615,7 +1615,7 @@ static int process_irr(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
set_ras_addr = rcu_dereference(set_ras_addr_hook);
|
|
|
if (set_ras_addr && ct->status & IPS_NAT_MASK) {
|
|
|
- ret = set_ras_addr(pskb, ct, ctinfo, data,
|
|
|
+ ret = set_ras_addr(skb, ct, ctinfo, data,
|
|
|
&irr->rasAddress, 1);
|
|
|
if (ret < 0)
|
|
|
return -1;
|
|
@@ -1623,7 +1623,7 @@ static int process_irr(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
|
|
|
set_sig_addr = rcu_dereference(set_sig_addr_hook);
|
|
|
if (set_sig_addr && ct->status & IPS_NAT_MASK) {
|
|
|
- ret = set_sig_addr(pskb, ct, ctinfo, data,
|
|
|
+ ret = set_sig_addr(skb, ct, ctinfo, data,
|
|
|
irr->callSignalAddress.item,
|
|
|
irr->callSignalAddress.count);
|
|
|
if (ret < 0)
|
|
@@ -1634,40 +1634,40 @@ static int process_irr(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int process_ras(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
+static int process_ras(struct sk_buff *skb, struct nf_conn *ct,
|
|
|
enum ip_conntrack_info ctinfo,
|
|
|
unsigned char **data, RasMessage *ras)
|
|
|
{
|
|
|
switch (ras->choice) {
|
|
|
case eRasMessage_gatekeeperRequest:
|
|
|
- return process_grq(pskb, ct, ctinfo, data,
|
|
|
+ return process_grq(skb, ct, ctinfo, data,
|
|
|
&ras->gatekeeperRequest);
|
|
|
case eRasMessage_gatekeeperConfirm:
|
|
|
- return process_gcf(pskb, ct, ctinfo, data,
|
|
|
+ return process_gcf(skb, ct, ctinfo, data,
|
|
|
&ras->gatekeeperConfirm);
|
|
|
case eRasMessage_registrationRequest:
|
|
|
- return process_rrq(pskb, ct, ctinfo, data,
|
|
|
+ return process_rrq(skb, ct, ctinfo, data,
|
|
|
&ras->registrationRequest);
|
|
|
case eRasMessage_registrationConfirm:
|
|
|
- return process_rcf(pskb, ct, ctinfo, data,
|
|
|
+ return process_rcf(skb, ct, ctinfo, data,
|
|
|
&ras->registrationConfirm);
|
|
|
case eRasMessage_unregistrationRequest:
|
|
|
- return process_urq(pskb, ct, ctinfo, data,
|
|
|
+ return process_urq(skb, ct, ctinfo, data,
|
|
|
&ras->unregistrationRequest);
|
|
|
case eRasMessage_admissionRequest:
|
|
|
- return process_arq(pskb, ct, ctinfo, data,
|
|
|
+ return process_arq(skb, ct, ctinfo, data,
|
|
|
&ras->admissionRequest);
|
|
|
case eRasMessage_admissionConfirm:
|
|
|
- return process_acf(pskb, ct, ctinfo, data,
|
|
|
+ return process_acf(skb, ct, ctinfo, data,
|
|
|
&ras->admissionConfirm);
|
|
|
case eRasMessage_locationRequest:
|
|
|
- return process_lrq(pskb, ct, ctinfo, data,
|
|
|
+ return process_lrq(skb, ct, ctinfo, data,
|
|
|
&ras->locationRequest);
|
|
|
case eRasMessage_locationConfirm:
|
|
|
- return process_lcf(pskb, ct, ctinfo, data,
|
|
|
+ return process_lcf(skb, ct, ctinfo, data,
|
|
|
&ras->locationConfirm);
|
|
|
case eRasMessage_infoRequestResponse:
|
|
|
- return process_irr(pskb, ct, ctinfo, data,
|
|
|
+ return process_irr(skb, ct, ctinfo, data,
|
|
|
&ras->infoRequestResponse);
|
|
|
default:
|
|
|
pr_debug("nf_ct_ras: RAS message %d\n", ras->choice);
|
|
@@ -1678,7 +1678,7 @@ static int process_ras(struct sk_buff **pskb, struct nf_conn *ct,
|
|
|
}
|
|
|
|
|
|
/****************************************************************************/
|
|
|
-static int ras_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
+static int ras_help(struct sk_buff *skb, unsigned int protoff,
|
|
|
struct nf_conn *ct, enum ip_conntrack_info ctinfo)
|
|
|
{
|
|
|
static RasMessage ras;
|
|
@@ -1686,12 +1686,12 @@ static int ras_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
int datalen = 0;
|
|
|
int ret;
|
|
|
|
|
|
- pr_debug("nf_ct_ras: skblen = %u\n", (*pskb)->len);
|
|
|
+ pr_debug("nf_ct_ras: skblen = %u\n", skb->len);
|
|
|
|
|
|
spin_lock_bh(&nf_h323_lock);
|
|
|
|
|
|
/* Get UDP data */
|
|
|
- data = get_udp_data(pskb, protoff, &datalen);
|
|
|
+ data = get_udp_data(skb, protoff, &datalen);
|
|
|
if (data == NULL)
|
|
|
goto accept;
|
|
|
pr_debug("nf_ct_ras: RAS message len=%d ", datalen);
|
|
@@ -1707,7 +1707,7 @@ static int ras_help(struct sk_buff **pskb, unsigned int protoff,
|
|
|
}
|
|
|
|
|
|
/* Process RAS message */
|
|
|
- if (process_ras(pskb, ct, ctinfo, &data, &ras) < 0)
|
|
|
+ if (process_ras(skb, ct, ctinfo, &data, &ras) < 0)
|
|
|
goto drop;
|
|
|
|
|
|
accept:
|