Loading net/netfilter/nf_conntrack_sip.c +31 −5 Original line number Original line Diff line number Diff line Loading @@ -50,11 +50,6 @@ module_param(sip_direct_signalling, int, 0600); MODULE_PARM_DESC(sip_direct_signalling, "expect incoming calls from registrar " MODULE_PARM_DESC(sip_direct_signalling, "expect incoming calls from registrar " "only (default 1)"); "only (default 1)"); static int sip_direct_media __read_mostly = 1; module_param(sip_direct_media, int, 0600); MODULE_PARM_DESC(sip_direct_media, "Expect Media streams between signalling " "endpoints only (default 1)"); static int sip_external_media __read_mostly = 0; static int sip_external_media __read_mostly = 0; module_param(sip_external_media, int, 0600); module_param(sip_external_media, int, 0600); MODULE_PARM_DESC(sip_external_media, "Expect Media streams between external " MODULE_PARM_DESC(sip_external_media, "Expect Media streams between external " Loading @@ -62,6 +57,26 @@ MODULE_PARM_DESC(sip_external_media, "Expect Media streams between external " const struct nf_nat_sip_hooks *nf_nat_sip_hooks; const struct nf_nat_sip_hooks *nf_nat_sip_hooks; EXPORT_SYMBOL_GPL(nf_nat_sip_hooks); EXPORT_SYMBOL_GPL(nf_nat_sip_hooks); static struct ctl_table_header *sip_sysctl_header; static unsigned int nf_ct_disable_sip_alg; static int sip_direct_media = 1; static struct ctl_table sip_sysctl_tbl[] = { { .procname = "nf_conntrack_disable_sip_alg", .data = &nf_ct_disable_sip_alg, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec, }, { .procname = "nf_conntrack_sip_direct_media", .data = &sip_direct_media, .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, {} }; static int string_len(const struct nf_conn *ct, const char *dptr, static int string_len(const struct nf_conn *ct, const char *dptr, const char *limit, int *shift) const char *limit, int *shift) Loading Loading @@ -1507,6 +1522,8 @@ static int process_sip_msg(struct sk_buff *skb, struct nf_conn *ct, const struct nf_nat_sip_hooks *hooks; const struct nf_nat_sip_hooks *hooks; int ret; int ret; if (nf_ct_disable_sip_alg) return NF_ACCEPT; if (strncasecmp(*dptr, "SIP/2.0 ", strlen("SIP/2.0 ")) != 0) if (strncasecmp(*dptr, "SIP/2.0 ", strlen("SIP/2.0 ")) != 0) ret = process_sip_request(skb, protoff, dataoff, dptr, datalen); ret = process_sip_request(skb, protoff, dataoff, dptr, datalen); else else Loading Loading @@ -1667,6 +1684,15 @@ static int __init nf_conntrack_sip_init(void) int i, ret; int i, ret; NF_CT_HELPER_BUILD_BUG_ON(sizeof(struct nf_ct_sip_master)); NF_CT_HELPER_BUILD_BUG_ON(sizeof(struct nf_ct_sip_master)); sip_sysctl_header = register_net_sysctl(&init_net, "net/netfilter", sip_sysctl_tbl); if (!sip_sysctl_header) pr_debug("nf_ct_sip:Unable to register SIP systbl\n"); if (nf_ct_disable_sip_alg) pr_debug("nf_ct_sip: SIP ALG disabled\n"); else pr_debug("nf_ct_sip: SIP ALG enabled\n"); if (ports_c == 0) if (ports_c == 0) ports[ports_c++] = SIP_PORT; ports[ports_c++] = SIP_PORT; Loading Loading
net/netfilter/nf_conntrack_sip.c +31 −5 Original line number Original line Diff line number Diff line Loading @@ -50,11 +50,6 @@ module_param(sip_direct_signalling, int, 0600); MODULE_PARM_DESC(sip_direct_signalling, "expect incoming calls from registrar " MODULE_PARM_DESC(sip_direct_signalling, "expect incoming calls from registrar " "only (default 1)"); "only (default 1)"); static int sip_direct_media __read_mostly = 1; module_param(sip_direct_media, int, 0600); MODULE_PARM_DESC(sip_direct_media, "Expect Media streams between signalling " "endpoints only (default 1)"); static int sip_external_media __read_mostly = 0; static int sip_external_media __read_mostly = 0; module_param(sip_external_media, int, 0600); module_param(sip_external_media, int, 0600); MODULE_PARM_DESC(sip_external_media, "Expect Media streams between external " MODULE_PARM_DESC(sip_external_media, "Expect Media streams between external " Loading @@ -62,6 +57,26 @@ MODULE_PARM_DESC(sip_external_media, "Expect Media streams between external " const struct nf_nat_sip_hooks *nf_nat_sip_hooks; const struct nf_nat_sip_hooks *nf_nat_sip_hooks; EXPORT_SYMBOL_GPL(nf_nat_sip_hooks); EXPORT_SYMBOL_GPL(nf_nat_sip_hooks); static struct ctl_table_header *sip_sysctl_header; static unsigned int nf_ct_disable_sip_alg; static int sip_direct_media = 1; static struct ctl_table sip_sysctl_tbl[] = { { .procname = "nf_conntrack_disable_sip_alg", .data = &nf_ct_disable_sip_alg, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec, }, { .procname = "nf_conntrack_sip_direct_media", .data = &sip_direct_media, .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, {} }; static int string_len(const struct nf_conn *ct, const char *dptr, static int string_len(const struct nf_conn *ct, const char *dptr, const char *limit, int *shift) const char *limit, int *shift) Loading Loading @@ -1507,6 +1522,8 @@ static int process_sip_msg(struct sk_buff *skb, struct nf_conn *ct, const struct nf_nat_sip_hooks *hooks; const struct nf_nat_sip_hooks *hooks; int ret; int ret; if (nf_ct_disable_sip_alg) return NF_ACCEPT; if (strncasecmp(*dptr, "SIP/2.0 ", strlen("SIP/2.0 ")) != 0) if (strncasecmp(*dptr, "SIP/2.0 ", strlen("SIP/2.0 ")) != 0) ret = process_sip_request(skb, protoff, dataoff, dptr, datalen); ret = process_sip_request(skb, protoff, dataoff, dptr, datalen); else else Loading Loading @@ -1667,6 +1684,15 @@ static int __init nf_conntrack_sip_init(void) int i, ret; int i, ret; NF_CT_HELPER_BUILD_BUG_ON(sizeof(struct nf_ct_sip_master)); NF_CT_HELPER_BUILD_BUG_ON(sizeof(struct nf_ct_sip_master)); sip_sysctl_header = register_net_sysctl(&init_net, "net/netfilter", sip_sysctl_tbl); if (!sip_sysctl_header) pr_debug("nf_ct_sip:Unable to register SIP systbl\n"); if (nf_ct_disable_sip_alg) pr_debug("nf_ct_sip: SIP ALG disabled\n"); else pr_debug("nf_ct_sip: SIP ALG enabled\n"); if (ports_c == 0) if (ports_c == 0) ports[ports_c++] = SIP_PORT; ports[ports_c++] = SIP_PORT; Loading