]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - include/linux/netfilter/nf_conntrack_sip.h
netfilter: nf_nat_sip: add TCP support
[net-next-2.6.git] / include / linux / netfilter / nf_conntrack_sip.h
index 71fa3eb5f4856c8d91a2c2c425644e1a41993e2d..cd84d6f44d117470877062a950d3994bbc9fa702 100644 (file)
@@ -7,6 +7,7 @@
 
 struct nf_ct_sip_master {
        unsigned int    register_cseq;
+       unsigned int    invite_cseq;
 };
 
 enum sip_expectation_classes {
@@ -33,10 +34,10 @@ struct sdp_media_type {
 struct sip_handler {
        const char      *method;
        unsigned int    len;
-       int             (*request)(struct sk_buff *skb,
+       int             (*request)(struct sk_buff *skb, unsigned int dataoff,
                                   const char **dptr, unsigned int *datalen,
                                   unsigned int cseq);
-       int             (*response)(struct sk_buff *skb,
+       int             (*response)(struct sk_buff *skb, unsigned int dataoff,
                                    const char **dptr, unsigned int *datalen,
                                    unsigned int cseq, unsigned int code);
 };
@@ -83,7 +84,8 @@ enum sip_header_types {
        SIP_HDR_FROM,
        SIP_HDR_TO,
        SIP_HDR_CONTACT,
-       SIP_HDR_VIA,
+       SIP_HDR_VIA_UDP,
+       SIP_HDR_VIA_TCP,
        SIP_HDR_EXPIRES,
        SIP_HDR_CONTENT_LENGTH,
 };
@@ -99,27 +101,40 @@ enum sdp_header_types {
 };
 
 extern unsigned int (*nf_nat_sip_hook)(struct sk_buff *skb,
+                                      unsigned int dataoff,
                                       const char **dptr,
                                       unsigned int *datalen);
+extern void (*nf_nat_sip_seq_adjust_hook)(struct sk_buff *skb, s16 off);
 extern unsigned int (*nf_nat_sip_expect_hook)(struct sk_buff *skb,
+                                             unsigned int dataoff,
                                              const char **dptr,
                                              unsigned int *datalen,
                                              struct nf_conntrack_expect *exp,
                                              unsigned int matchoff,
                                              unsigned int matchlen);
 extern unsigned int (*nf_nat_sdp_addr_hook)(struct sk_buff *skb,
-                                           const char **dptr,
                                            unsigned int dataoff,
+                                           const char **dptr,
                                            unsigned int *datalen,
+                                           unsigned int sdpoff,
                                            enum sdp_header_types type,
                                            enum sdp_header_types term,
                                            const union nf_inet_addr *addr);
+extern unsigned int (*nf_nat_sdp_port_hook)(struct sk_buff *skb,
+                                           unsigned int dataoff,
+                                           const char **dptr,
+                                           unsigned int *datalen,
+                                           unsigned int matchoff,
+                                           unsigned int matchlen,
+                                           u_int16_t port);
 extern unsigned int (*nf_nat_sdp_session_hook)(struct sk_buff *skb,
-                                              const char **dptr,
                                               unsigned int dataoff,
+                                              const char **dptr,
                                               unsigned int *datalen,
+                                              unsigned int sdpoff,
                                               const union nf_inet_addr *addr);
 extern unsigned int (*nf_nat_sdp_media_hook)(struct sk_buff *skb,
+                                            unsigned int dataoff,
                                             const char **dptr,
                                             unsigned int *datalen,
                                             struct nf_conntrack_expect *rtp_exp,