[Asterisk-code-review] res_rtp_asterisk: Don't assume setting retrans props means to enable. (asterisk[16])

Joshua Colp asteriskteam at digium.com
Mon Jun 8 06:28:55 CDT 2020


Joshua Colp has uploaded this change for review. ( https://gerrit.asterisk.org/c/asterisk/+/14507 )


Change subject: res_rtp_asterisk: Don't assume setting retrans props means to enable.
......................................................................

res_rtp_asterisk: Don't assume setting retrans props means to enable.

The "value" passed in when setting an RTP property determines
whether it should be enabled or disabled. The RTP send and
receive retrans props did not examine this to know if the
buffers should be enabled. They assumed they always should be.

This change makes it so that the "value" passed in is
respected.

ASTERISK-28939

Change-Id: I9244cdbdc5fd065c7f6b02cbfa572bc55c7123dc
---
M res/res_rtp_asterisk.c
1 file changed, 22 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/07/14507/1

diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index 28fa12a..1820ab1 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -8236,10 +8236,29 @@
 	} else if (property == AST_RTP_PROPERTY_ASYMMETRIC_CODEC) {
 		rtp->asymmetric_codec = value;
 	} else if (property == AST_RTP_PROPERTY_RETRANS_SEND) {
-		rtp->send_buffer = ast_data_buffer_alloc(ast_free_ptr, DEFAULT_RTP_SEND_BUFFER_SIZE);
+		if (value) {
+			if (!rtp->send_buffer) {
+				rtp->send_buffer = ast_data_buffer_alloc(ast_free_ptr, DEFAULT_RTP_SEND_BUFFER_SIZE);
+			}
+		} else {
+			if (rtp->send_buffer) {
+				ast_data_buffer_free(rtp->send_buffer);
+				rtp->send_buffer = NULL;
+			}
+		}
 	} else if (property == AST_RTP_PROPERTY_RETRANS_RECV) {
-		rtp->recv_buffer = ast_data_buffer_alloc(ast_free_ptr, DEFAULT_RTP_RECV_BUFFER_SIZE);
-		AST_VECTOR_INIT(&rtp->missing_seqno, 0);
+		if (value) {
+			if (!rtp->recv_buffer) {
+				rtp->recv_buffer = ast_data_buffer_alloc(ast_free_ptr, DEFAULT_RTP_RECV_BUFFER_SIZE);
+				AST_VECTOR_INIT(&rtp->missing_seqno, 0);
+			}
+		} else {
+			if (rtp->recv_buffer) {
+				ast_data_buffer_free(rtp->recv_buffer);
+				rtp->recv_buffer = NULL;
+				AST_VECTOR_FREE(&rtp->missing_seqno);
+			}
+		}
 	}
 }
 

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/14507
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 16
Gerrit-Change-Id: I9244cdbdc5fd065c7f6b02cbfa572bc55c7123dc
Gerrit-Change-Number: 14507
Gerrit-PatchSet: 1
Gerrit-Owner: Joshua Colp <jcolp at sangoma.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20200608/24445a1d/attachment.html>


More information about the asterisk-code-review mailing list