[asterisk-commits] mjordan: branch 1.8 r417318 - /branches/1.8/main/udptl.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Jun 26 07:21:31 CDT 2014
Author: mjordan
Date: Thu Jun 26 07:21:27 2014
New Revision: 417318
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=417318
Log:
udptl: Correct FEC to not consider negative sequence numbers as missing
When using FEC, with span=3 and entries=4 Asterisk will attempt to repair
the packet with sequence number 5, as it will see that packet -4 is
missing. The result is Asterisk sending garbage packets that can kill a
fax.
This patch adds a check to see if the sequence number is valid before
checking if the packet is missing.
Review: https://reviewboard.asterisk.org/r/3657/
ASTERISK-23908 #close
Reported by: Torrey Searle
patches:
udptl_fec.patch uploaded by Torrey Searle (License 5334)
Modified:
branches/1.8/main/udptl.c
Modified: branches/1.8/main/udptl.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/main/udptl.c?view=diff&rev=417318&r1=417317&r2=417318
==============================================================================
--- branches/1.8/main/udptl.c (original)
+++ branches/1.8/main/udptl.c Thu Jun 26 07:21:27 2014
@@ -461,6 +461,12 @@
int k;
int which;
int limit = (l + m) & UDPTL_BUF_MASK;
+
+ /* only repair buffers that actually exist! */
+ if (seq_no <= (s->rx[l].fec_span * s->rx[l].fec_entries) - m) {
+ continue;
+ }
+
for (which = -1, k = (limit - s->rx[l].fec_span * s->rx[l].fec_entries) & UDPTL_BUF_MASK; k != limit; k = (k + s->rx[l].fec_entries) & UDPTL_BUF_MASK) {
if (s->rx[k].buf_len <= 0)
which = (which == -1) ? k : -2;
More information about the asterisk-commits
mailing list