aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2008-03-25 23:22:53 -0400
committerDavid S. Miller <davem@davemloft.net>2008-03-25 23:22:53 -0400
commit595a8ecb5fa41295a7010678b60cb2f7ab15fe42 (patch)
tree6b18b6b6eebd1ecf7348022fb7b3e749369f8e68
parent33cb1e9a93312f0cdd34e0be2bc88e893ff96a33 (diff)
[NETFILTER]: nf_conntrack_sip: process ACK and PRACK methods
Both may contains SDP offers/answers. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/netfilter/nf_conntrack_sip.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
index 29a37d212695..71f744ad7653 100644
--- a/net/netfilter/nf_conntrack_sip.c
+++ b/net/netfilter/nf_conntrack_sip.c
@@ -624,9 +624,22 @@ static int process_update_response(struct sk_buff *skb,
624 return NF_ACCEPT; 624 return NF_ACCEPT;
625} 625}
626 626
627static int process_prack_response(struct sk_buff *skb,
628 const char **dptr, unsigned int *datalen,
629 unsigned int cseq, unsigned int code)
630{
631 if ((code >= 100 && code <= 199) ||
632 (code >= 200 && code <= 299))
633 return process_sdp(skb, dptr, datalen, cseq);
634
635 return NF_ACCEPT;
636}
637
627static const struct sip_handler sip_handlers[] = { 638static const struct sip_handler sip_handlers[] = {
628 SIP_HANDLER("INVITE", process_sdp, process_invite_response), 639 SIP_HANDLER("INVITE", process_sdp, process_invite_response),
629 SIP_HANDLER("UPDATE", process_sdp, process_update_response), 640 SIP_HANDLER("UPDATE", process_sdp, process_update_response),
641 SIP_HANDLER("ACK", process_sdp, NULL),
642 SIP_HANDLER("PRACK", process_sdp, process_prack_response),
630}; 643};
631 644
632static int process_sip_response(struct sk_buff *skb, 645static int process_sip_response(struct sk_buff *skb,