| #ifndef __IP_CONNTRACK_SIP_H__ |
| #define __IP_CONNTRACK_SIP_H__ |
| #ifdef __KERNEL__ |
| |
| #define SIP_PORT 5060 |
| #define SIP_TIMEOUT 3600 |
| |
| #define POS_VIA 0 |
| #define POS_CONTACT 1 |
| #define POS_CONTENT 2 |
| #define POS_MEDIA 3 |
| #define POS_OWNER 4 |
| #define POS_CONNECTION 5 |
| #define POS_REQ_HEADER 6 |
| #define POS_SDP_HEADER 7 |
| |
| struct sip_header_nfo { |
| const char *lname; |
| const char *sname; |
| const char *ln_str; |
| size_t lnlen; |
| size_t snlen; |
| size_t ln_strlen; |
| int (*match_len)(const char *, const char *, int *); |
| }; |
| |
| extern unsigned int (*ip_nat_sip_hook)(struct sk_buff **pskb, |
| enum ip_conntrack_info ctinfo, |
| struct ip_conntrack *ct, |
| const char **dptr); |
| extern unsigned int (*ip_nat_sdp_hook)(struct sk_buff **pskb, |
| enum ip_conntrack_info ctinfo, |
| struct ip_conntrack_expect *exp, |
| const char *dptr); |
| |
| extern int ct_sip_get_info(const char *dptr, size_t dlen, |
| unsigned int *matchoff, |
| unsigned int *matchlen, |
| struct sip_header_nfo *hnfo); |
| extern int ct_sip_lnlen(const char *line, const char *limit); |
| extern const char *ct_sip_search(const char *needle, const char *haystack, |
| size_t needle_len, size_t haystack_len); |
| #endif /* __KERNEL__ */ |
| #endif /* __IP_CONNTRACK_SIP_H__ */ |