[svn-commits] rmudgett: tag 1.4.11.4 r1941 - /tags/1.4.11.4/q921.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Mon Aug 30 17:18:23 CDT 2010
Author: rmudgett
Date: Mon Aug 30 17:18:20 2010
New Revision: 1941
URL: http://svnview.digium.com/svn/libpri?view=rev&rev=1941
Log:
Merged revisions 1845 via svnmerge from
https://origsvn.digium.com/svn/libpri/branches/1.4
........
r1845 | rmudgett | 2010-08-03 12:33:54 -0500 (Tue, 03 Aug 2010) | 10 lines
Q921_TIMER_RECOVERY SDL issue in q921_rnr_rx()
Added missing code specified by Q.921 (Figure B.8 Page 85) when receive
RNR in "Timer Recovery" state.
(closes issue #16791)
Reported by: alecdavis
Patches:
rnr_timer_recovery.diff.txt uploaded by alecdavis (license 585)
........
Modified:
tags/1.4.11.4/q921.c
Modified: tags/1.4.11.4/q921.c
URL: http://svnview.digium.com/svn/libpri/tags/1.4.11.4/q921.c?view=diff&rev=1941&r1=1940&r2=1941
==============================================================================
--- tags/1.4.11.4/q921.c (original)
+++ tags/1.4.11.4/q921.c Mon Aug 30 17:18:20 2010
@@ -1781,6 +1781,7 @@
}
break;
case Q921_TIMER_RECOVERY:
+ /* Q.921 Figure B.8 Q921 (Sheet 6 of 9) Page 85 */
ctrl->peer_rx_busy = 1;
if (is_command(ctrl, h)) {
if (h->s.p_f) {
@@ -1793,6 +1794,15 @@
q921_setstate(ctrl, Q921_AWAITING_ESTABLISHMENT);
break;
}
+ } else {
+ if (n_r_is_valid(ctrl, h->s.n_r)) {
+ update_v_a(ctrl, h->s.n_r);
+ break;
+ } else {
+ n_r_error_recovery(ctrl);
+ q921_setstate(ctrl, Q921_AWAITING_ESTABLISHMENT);
+ break;
+ }
}
} else {
if (h->s.p_f) {
@@ -1801,6 +1811,15 @@
restart_t200(ctrl);
q921_invoke_retransmission(ctrl, h->s.n_r);
q921_setstate(ctrl, Q921_MULTI_FRAME_ESTABLISHED);
+ break;
+ } else {
+ n_r_error_recovery(ctrl);
+ q921_setstate(ctrl, Q921_AWAITING_ESTABLISHMENT);
+ break;
+ }
+ } else {
+ if (n_r_is_valid(ctrl, h->s.n_r)) {
+ update_v_a(ctrl, h->s.n_r);
break;
} else {
n_r_error_recovery(ctrl);
More information about the svn-commits
mailing list