[libpri-commits] rmudgett: branch rmudgett/t312 r2222 - /team/rmudgett/t312/q931.c

SVN commits to the libpri project libpri-commits at lists.digium.com
Fri Feb 25 17:43:43 CST 2011


Author: rmudgett
Date: Fri Feb 25 17:43:38 2011
New Revision: 2222

URL: http://svnview.digium.com/svn/libpri?view=rev&rev=2222
Log:
Must trust upper layer to respond to a fake clearing.

Modified:
    team/rmudgett/t312/q931.c

Modified: team/rmudgett/t312/q931.c
URL: http://svnview.digium.com/svn/libpri/team/rmudgett/t312/q931.c?view=diff&rev=2222&r1=2221&r2=2222
==============================================================================
--- team/rmudgett/t312/q931.c (original)
+++ team/rmudgett/t312/q931.c Fri Feb 25 17:43:38 2011
@@ -5759,19 +5759,12 @@
 
 	master->fake_clearing_timer = 0;
 	pri_fake_clearing(master);
-	if (!master->t312_timer && !q931_get_subcall_count(master)) {
-		/*
-		 * T312 has expired and no slaves are left so we can
-		 * destroy the master.
-		 */
-		q931_destroycall(master->pri, master);
-	}
 }
 
 static void pri_create_fake_clearing(struct pri *ctrl, struct q931_call *master)
 {
 	if (ctrl->debug & PRI_DEBUG_Q931_STATE) {
-		pri_message(ctrl, "Requesting fake clearing.  cref:%d\n", master->cr);
+		pri_message(ctrl, "Fake clearing requested.  cref:%d\n", master->cr);
 	}
 	pri_schedule_del(ctrl, master->fake_clearing_timer);
 	master->fake_clearing_timer = pri_schedule_event(ctrl, 0, pri_fake_clearing_expiry,
@@ -6699,6 +6692,17 @@
 				 * layer.
 				 */
 				pri_create_fake_clearing(ctrl, call);
+			} else if (call->fake_clearing_timer) {
+				/*
+				 * No need for fake clearing to be running anymore.
+				 * Will this actually happen?
+				 */
+				if (ctrl->debug & PRI_DEBUG_Q931_STATE) {
+					pri_message(ctrl, "Fake clearing request cancelled.  cref:%d\n",
+						call->cr);
+				}
+				pri_schedule_del(ctrl, call->fake_clearing_timer);
+				call->fake_clearing_timer = 0;
 			}
 
 			/* Initiate hangup of slaves */




More information about the libpri-commits mailing list