Module: sems Branch: master Commit: 1cd15d7b5785122ef4920f254acccc468ad7b8d1 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=1cd15d7b5785122ef4920f254acccc468ad7b8d1
Author: Stefan Sayer <[email protected]> Committer: Stefan Sayer <[email protected]> Date: Fri Apr 20 12:46:13 2012 +0200 b/f: have subscriptions protected until SUBSCRIBE sent this prevents corruption in the (extremely rare) case that a reply to SUBSCRIBE or a NOTIFY is already processed while the method to send the SUBSCRIBE is still being processed (with the little overhead of a bit more lock contention) --- core/AmSipSubscriptionContainer.cpp | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/core/AmSipSubscriptionContainer.cpp b/core/AmSipSubscriptionContainer.cpp index 5e1fa7d..48bf051 100644 --- a/core/AmSipSubscriptionContainer.cpp +++ b/core/AmSipSubscriptionContainer.cpp @@ -60,18 +60,16 @@ string _AmSipSubscriptionContainer::createSubscription(const AmSipSubscriptionIn subscriptions_mut.lock(); subscriptions[handle] = new_sub; - subscriptions_mut.unlock(); - AmEventDispatcher::instance()->addEventQueue(handle, this); if (!new_sub->doSubscribe()) { DBG("subscribe failed - removing subscription\b"); AmEventDispatcher::instance()->delEventQueue(handle); - subscriptions_mut.lock(); subscriptions.erase(handle); subscriptions_mut.unlock(); delete new_sub; return ""; } + subscriptions_mut.unlock(); return handle; } _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
