+#endif
+};
+
-+extern unsigned int (*nf_nat_rtsp_hook)(struct sk_buff **pskb,
++extern unsigned int (*nf_nat_rtsp_hook)(struct sk_buff *skb,
+ enum ip_conntrack_info ctinfo,
+ unsigned int matchoff, unsigned int matchlen,
+ struct ip_ct_rtsp_expect *prtspexp,
+static char *rtsp_buffer;
+static DEFINE_SPINLOCK(rtsp_buffer_lock);
+
-+unsigned int (*nf_nat_rtsp_hook)(struct sk_buff **pskb,
++unsigned int (*nf_nat_rtsp_hook)(struct sk_buff *skb,
+ enum ip_conntrack_info ctinfo,
+ unsigned int matchoff, unsigned int matchlen,struct ip_ct_rtsp_expect* prtspexp,
+ struct nf_conntrack_expect *exp);
+/* outbound packet: client->server */
+
+static inline int
-+help_out(struct sk_buff **pskb, unsigned char *rb_ptr, unsigned int datalen,
++help_out(struct sk_buff *skb, unsigned char *rb_ptr, unsigned int datalen,
+ struct nf_conn *ct, enum ip_conntrack_info ctinfo)
+{
+ struct ip_ct_rtsp_expect expinfo;
+
+ if (nf_nat_rtsp_hook)
+ /* pass the request off to the nat helper */
-+ ret = nf_nat_rtsp_hook(pskb, ctinfo, hdrsoff, hdrslen, &expinfo, exp);
++ ret = nf_nat_rtsp_hook(skb, ctinfo, hdrsoff, hdrslen, &expinfo, exp);
+ else if (nf_ct_expect_related(exp) != 0) {
+ INFOP("nf_ct_expect_related failed\n");
+ ret = NF_DROP;
+
+
+static inline int
-+help_in(struct sk_buff **pskb, size_t pktlen,
++help_in(struct sk_buff *skb, size_t pktlen,
+ struct nf_conn* ct, enum ip_conntrack_info ctinfo)
+{
+ return NF_ACCEPT;
+}
+
-+static int help(struct sk_buff **pskb, unsigned int protoff,
++static int help(struct sk_buff *skb, unsigned int protoff,
+ struct nf_conn *ct, enum ip_conntrack_info ctinfo)
+{
+ struct tcphdr _tcph, *th;
+ }
+
+ /* Not whole TCP header? */
-+ th = skb_header_pointer(*pskb,protoff, sizeof(_tcph), &_tcph);
++ th = skb_header_pointer(skb, protoff, sizeof(_tcph), &_tcph);
+
+ if (!th)
+ return NF_ACCEPT;
+
+ /* No data ? */
+ dataoff = protoff + th->doff*4;
-+ datalen = (*pskb)->len - dataoff;
-+ if (dataoff >= (*pskb)->len)
++ datalen = skb->len - dataoff;
++ if (dataoff >= skb->len)
+ return NF_ACCEPT;
+
+ spin_lock_bh(&rtsp_buffer_lock);
-+ rb_ptr = skb_header_pointer(*pskb, dataoff,
-+ (*pskb)->len - dataoff, rtsp_buffer);
++ rb_ptr = skb_header_pointer(skb, dataoff,
++ skb->len - dataoff, rtsp_buffer);
+ BUG_ON(rb_ptr == NULL);
+
+#if 0
+
+ switch (CTINFO2DIR(ctinfo)) {
+ case IP_CT_DIR_ORIGINAL:
-+ ret = help_out(pskb, rb_ptr, datalen, ct, ctinfo);
++ ret = help_out(skb, rb_ptr, datalen, ct, ctinfo);
+ break;
+ case IP_CT_DIR_REPLY:
+ DEBUGP("IP_CT_DIR_REPLY\n");
+ *
+ * In:
+ * ct, ctinfo = conntrack context
-+ * pskb = packet
++ * skb = packet
+ * tranoff = Transport header offset from TCP data
+ * tranlen = Transport header length (incl. CRLF)
+ * rport_lo = replacement low port (host endian)
+rtsp_mangle_tran(enum ip_conntrack_info ctinfo,
+ struct nf_conntrack_expect* exp,
+ struct ip_ct_rtsp_expect* prtspexp,
-+ struct sk_buff** pskb, uint tranoff, uint tranlen)
++ struct sk_buff* skb, uint tranoff, uint tranlen)
+{
+ char* ptcp;
+ uint tcplen;
+ uint extaddrlen;
+ int is_stun;
+
-+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
++ get_skb_tcpdata(skb, &ptcp, &tcplen);
+ ptran = ptcp+tranoff;
+
+ if (tranoff+tranlen > tcplen || tcplen-tranoff < tranlen ||
+ if (dstact == DSTACT_STRIP || (dstact == DSTACT_AUTO && !is_stun))
+ {
+ diff = nextfieldoff-off;
-+ if (!nf_nat_mangle_tcp_packet(pskb, ct, ctinfo,
++ if (!nf_nat_mangle_tcp_packet(skb, ct, ctinfo,
+ off, diff, NULL, 0))
+ {
+ /* mangle failed, all we can do is bail */
+ nf_ct_unexpect_related(exp);
+ return 0;
+ }
-+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
++ get_skb_tcpdata(skb, &ptcp, &tcplen);
+ ptran = ptcp+tranoff;
+ tranlen -= diff;
+ nextparamoff -= diff;
+ * parameter 4 below is offset from start of tcp data.
+ */
+ diff = origlen-rbuflen;
-+ if (!nf_nat_mangle_tcp_packet(pskb, ct, ctinfo,
++ if (!nf_nat_mangle_tcp_packet(skb, ct, ctinfo,
+ origoff, origlen, rbuf, rbuflen))
+ {
+ /* mangle failed, all we can do is bail */
+ nf_ct_unexpect_related(exp);
+ return 0;
+ }
-+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
++ get_skb_tcpdata(skb, &ptcp, &tcplen);
+ ptran = ptcp+tranoff;
+ tranlen -= diff;
+ nextparamoff -= diff;
+}
+
+static uint
-+help_out(struct sk_buff **pskb, enum ip_conntrack_info ctinfo,
++help_out(struct sk_buff *skb, enum ip_conntrack_info ctinfo,
+ unsigned int matchoff, unsigned int matchlen, struct ip_ct_rtsp_expect* prtspexp,
+ struct nf_conntrack_expect* exp)
+{
+ uint linelen;
+ uint off;
+
-+ //struct iphdr* iph = (struct iphdr*)(*pskb)->nh.iph;
++ //struct iphdr* iph = (struct iphdr*)skb->nh.iph;
+ //struct tcphdr* tcph = (struct tcphdr*)((void*)iph + iph->ihl*4);
+
-+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
++ get_skb_tcpdata(skb, &ptcp, &tcplen);
+ hdrsoff = matchoff;//exp->seq - ntohl(tcph->seq);
+ hdrslen = matchlen;
+ off = hdrsoff;
+ {
+ uint oldtcplen = tcplen;
+ DEBUGP("hdr: Transport\n");
-+ if (!rtsp_mangle_tran(ctinfo, exp, prtspexp, pskb, lineoff, linelen))
++ if (!rtsp_mangle_tran(ctinfo, exp, prtspexp, skb, lineoff, linelen))
+ {
+ DEBUGP("hdr: Transport mangle failed");
+ break;
+ }
-+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
++ get_skb_tcpdata(skb, &ptcp, &tcplen);
+ hdrslen -= (oldtcplen-tcplen);
+ off -= (oldtcplen-tcplen);
+ lineoff -= (oldtcplen-tcplen);
+}
+
+static unsigned int
-+help(struct sk_buff **pskb, enum ip_conntrack_info ctinfo,
++help(struct sk_buff *skb, enum ip_conntrack_info ctinfo,
+ unsigned int matchoff, unsigned int matchlen, struct ip_ct_rtsp_expect* prtspexp,
+ struct nf_conntrack_expect* exp)
+{
+ switch (dir)
+ {
+ case IP_CT_DIR_ORIGINAL:
-+ rc = help_out(pskb, ctinfo, matchoff, matchlen, prtspexp, exp);
++ rc = help_out(skb, ctinfo, matchoff, matchlen, prtspexp, exp);
+ break;
+ case IP_CT_DIR_REPLY:
+ DEBUGP("unmangle ! %u\n", ctinfo);