diff options
author | Patrick McHardy <kaber@trash.net> | 2008-03-25 23:22:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-03-25 23:22:53 -0400 |
commit | 595a8ecb5fa41295a7010678b60cb2f7ab15fe42 (patch) | |
tree | 6b18b6b6eebd1ecf7348022fb7b3e749369f8e68 | |
parent | 33cb1e9a93312f0cdd34e0be2bc88e893ff96a33 (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.c | 13 |
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 | ||
627 | static 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 | |||
627 | static const struct sip_handler sip_handlers[] = { | 638 | static 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 | ||
632 | static int process_sip_response(struct sk_buff *skb, | 645 | static int process_sip_response(struct sk_buff *skb, |