From: Matthew Nicholson Date: Thu, 14 Jan 2010 16:19:41 +0000 (+0000) Subject: Merged revisions 240078 via svnmerge from X-Git-Tag: 1.6.0.23~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57a86fe42677fd905cec2ae4dc747a80bbc89bf6;p=thirdparty%2Fasterisk.git Merged revisions 240078 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r240078 | mnicholson | 2010-01-14 10:14:35 -0600 (Thu, 14 Jan 2010) | 9 lines This change fixes a few bugs in the way the far max IFP was calculated that were introduced in r231692. (closes issue #16497) Reported by: globalnetinc Patches: udptl-max-ifp-fix1.diff uploaded by mnicholson (license 96) Tested by: globalnetinc ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@240092 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/udptl.c b/main/udptl.c index 492a2de438..24c1a46746 100644 --- a/main/udptl.c +++ b/main/udptl.c @@ -802,10 +802,17 @@ static void calculate_far_max_ifp(struct ast_udptl *udptl) * zero in this loop; we'd rather send smaller IFPs (and thus reduce * the image data transfer rate) than sacrifice redundancy completely */ - for ( ; - (new_max < 80) && (udptl->error_correction_entries > 1); - --udptl->error_correction_entries) { + for (;;) { new_max = (udptl->far_max_datagram - 8) / (udptl->error_correction_entries + 1); + + if ((new_max < 80) && (udptl->error_correction_entries > 1)) { + /* the max ifp is not large enough, subtract an + * error correction entry and calculate again + * */ + --udptl->error_correction_entries; + } else { + break; + } } break; case UDPTL_ERROR_CORRECTION_FEC: