-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[NETFILTER]: Add SIP connection tracking helper
Add SIP connection tracking helper. Originally written by Christian Hentschel <chentschel@arnet.com.ar>, some cleanup, minor fixes and bidirectional SIP support added by myself. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Patrick McHardy
authored and
David S. Miller
committed
Jun 18, 2006
1 parent
e44ab66
commit ae5b7d8
Showing
5 changed files
with
784 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#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__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.