res_rtp_asterisk: Correction for the limit which detects that a packet is DTLS.
authorYousf Ateya <y.ateya@starkbits.com>
Sun, 10 May 2015 12:37:54 +0000 (14:37 +0200)
committerYousf Ateya <y.ateya@starkbits.com>
Sun, 10 May 2015 14:28:26 +0000 (16:28 +0200)
First byte of DTLS packet shall be in range 20-63, not 20-64. Refer to RFC
https://tools.ietf.org/html/rfc5764#section-5.1.2 for correct values.

Change-Id: Iae6fa0d72b37c36a27fe40686e0ae6fba3afec31

res/res_rtp_asterisk.c

index de75626..1d43681 100644 (file)
@@ -2016,8 +2016,9 @@ static int __rtp_recvfrom(struct ast_rtp_instance *instance, void *buf, size_t s
 #ifdef HAVE_OPENSSL_SRTP
        dtls_srtp_check_pending(instance, rtp, rtcp);
 
-       /* If this is an SSL packet pass it to OpenSSL for processing */
-       if ((*in >= 20) && (*in <= 64)) {
+       /* If this is an SSL packet pass it to OpenSSL for processing. RFC section for first byte value:
+        * https://tools.ietf.org/html/rfc5764#section-5.1.2 */
+       if ((*in >= 20) && (*in <= 63)) {
                struct dtls_details *dtls = !rtcp ? &rtp->dtls : &rtp->rtcp->dtls;
                int res = 0;