[asterisk-commits] rmudgett: branch 10 r358531 - in /branches/10: ./ channels/sig_ss7.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Mar 7 12:28:12 CST 2012


Author: rmudgett
Date: Wed Mar  7 12:28:09 2012
New Revision: 358531

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=358531
Log:
Change directly setting _softhangup in sig_ss7.c to use ast_softhangup_nolock().

Update to:
(issue ASTERISK-19372)
........

Merged revisions 358530 from http://svn.asterisk.org/svn/asterisk/branches/1.8

Modified:
    branches/10/   (props changed)
    branches/10/channels/sig_ss7.c

Propchange: branches/10/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Modified: branches/10/channels/sig_ss7.c
URL: http://svnview.digium.com/svn/asterisk/branches/10/channels/sig_ss7.c?view=diff&rev=358531&r1=358530&r2=358531
==============================================================================
--- branches/10/channels/sig_ss7.c (original)
+++ branches/10/channels/sig_ss7.c Wed Mar  7 12:28:09 2012
@@ -459,8 +459,11 @@
 	for (i = 0; i < linkset->numchans; i++) {
 		if (linkset->pvts[i] && (linkset->pvts[i]->dpc == dpc && ((linkset->pvts[i]->cic >= startcic) && (linkset->pvts[i]->cic <= endcic)))) {
 			sig_ss7_lock_private(linkset->pvts[i]);
-			if (linkset->pvts[i]->owner)
-				linkset->pvts[i]->owner->_softhangup |= AST_SOFTHANGUP_DEV;
+			sig_ss7_lock_owner(linkset, i);
+			if (linkset->pvts[i]->owner) {
+				ast_softhangup_nolock(linkset->pvts[i]->owner, AST_SOFTHANGUP_DEV);
+				ast_channel_unlock(linkset->pvts[i]->owner);
+			}
 			sig_ss7_unlock_private(linkset->pvts[i]);
 		}
 	}
@@ -1673,7 +1676,7 @@
 	case AST_CONTROL_BUSY:
 		if (p->call_level < SIG_SS7_CALL_LEVEL_CONNECT) {
 			chan->hangupcause = AST_CAUSE_USER_BUSY;
-			chan->_softhangup |= AST_SOFTHANGUP_DEV;
+			ast_softhangup_nolock(chan, AST_SOFTHANGUP_DEV);
 			res = 0;
 			break;
 		}
@@ -1737,7 +1740,7 @@
 	case AST_CONTROL_INCOMPLETE:
 		if (p->call_level < SIG_SS7_CALL_LEVEL_CONNECT) {
 			chan->hangupcause = AST_CAUSE_INVALID_NUMBER_FORMAT;
-			chan->_softhangup |= AST_SOFTHANGUP_DEV;
+			ast_softhangup_nolock(chan, AST_SOFTHANGUP_DEV);
 			res = 0;
 			break;
 		}
@@ -1747,7 +1750,7 @@
 	case AST_CONTROL_CONGESTION:
 		if (p->call_level < SIG_SS7_CALL_LEVEL_CONNECT) {
 			chan->hangupcause = AST_CAUSE_CONGESTION;
-			chan->_softhangup |= AST_SOFTHANGUP_DEV;
+			ast_softhangup_nolock(chan, AST_SOFTHANGUP_DEV);
 			res = 0;
 			break;
 		}




More information about the asterisk-commits mailing list