[svn-commits] bebuild: tag 11.3.0-rc2 r383971 - in /tags/11.3.0-rc2: ./ channels/chan_sip.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Wed Mar 27 09:12:19 CDT 2013
Author: bebuild
Date: Wed Mar 27 09:12:15 2013
New Revision: 383971
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=383971
Log:
Merge r383878 for ASTERISK-21068
Modified:
tags/11.3.0-rc2/ (props changed)
tags/11.3.0-rc2/channels/chan_sip.c
Propchange: tags/11.3.0-rc2/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Propchange: tags/11.3.0-rc2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Mar 27 09:12:15 2013
@@ -1,2 +1,2 @@
-/branches/11:380892,380894,381306,381702,381737,381835,382390,382617,383840
+/branches/11:380892,380894,381306,381702,381737,381835,382390,382617,383840,383878
/certified/branches/1.8.15:382389
Modified: tags/11.3.0-rc2/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/tags/11.3.0-rc2/channels/chan_sip.c?view=diff&rev=383971&r1=383970&r2=383971
==============================================================================
--- tags/11.3.0-rc2/channels/chan_sip.c (original)
+++ tags/11.3.0-rc2/channels/chan_sip.c Wed Mar 27 09:12:15 2013
@@ -16024,7 +16024,9 @@
ast_verb(3, "Registered SIP '%s' at %s\n", peer->name,
ast_sockaddr_stringify(&peer->addr));
}
+ sip_pvt_unlock(pvt);
sip_poke_peer(peer, 0);
+ sip_pvt_lock(pvt);
register_peer_exten(peer, 1);
/* Save User agent */
@@ -16917,9 +16919,9 @@
}
if (!res) {
if (send_mwi) {
- ao2_unlock(p);
+ sip_pvt_unlock(p);
sip_send_mwi_to_peer(peer, 0);
- ao2_lock(p);
+ sip_pvt_lock(p);
} else {
update_peer_lastmsgssent(peer, -1, 0);
}
@@ -29223,6 +29225,9 @@
\note This is done with 60 seconds between each ping,
unless forced by cli or manager. If peer is unreachable,
we check every 10th second by default.
+\note Do *not* hold a pvt lock while calling this function.
+ This function calls sip_alloc, which can cause a deadlock
+ if another sip_pvt is held.
*/
static int sip_poke_peer(struct sip_peer *peer, int force)
{
More information about the svn-commits
mailing list