Module: kamailio Branch: master Commit: 82c42dd91c5f715a17fca767ade700afde29c7a5 URL: https://github.com/kamailio/kamailio/commit/82c42dd91c5f715a17fca767ade700af...
Author: jaybeepee jason.penton@gmail.com Committer: jaybeepee jason.penton@gmail.com Date: 2016-03-17T09:51:42+02:00
modules/ims_registrar_scscf: protection around sending notifications - prevent races
---
Modified: modules/ims_registrar_scscf/save.c
---
Diff: https://github.com/kamailio/kamailio/commit/82c42dd91c5f715a17fca767ade700af... Patch: https://github.com/kamailio/kamailio/commit/82c42dd91c5f715a17fca767ade700af...
---
diff --git a/modules/ims_registrar_scscf/save.c b/modules/ims_registrar_scscf/save.c index a33dbcf..d677272 100644 --- a/modules/ims_registrar_scscf/save.c +++ b/modules/ims_registrar_scscf/save.c @@ -859,11 +859,14 @@ int update_contacts(struct sip_msg* msg, udomain_t* _d, LM_DBG("ref count after sub is now %d\n", subscription->ref_count); ul.unlock_subscription(subscription);
+ ul.lock_udomain(_d, public_identity); //finally we update the explicit IMPU record with the new data if (ul.update_impurecord(_d, public_identity, 0, reg_state, -1 /*do not change send sar on delete */, 0 /*this is explicit so barring must be 0*/, 0, s, ccf1, ccf2, ecf1, ecf2, &impu_rec) != 0) { LM_ERR("Unable to update explicit impurecord for <%.*s>\n", public_identity->len, public_identity->s); } + notify_subscribers(impu_rec); + ul.unlock_udomain(_d, public_identity); break; case AVP_IMS_SAR_USER_DEREGISTRATION: /*TODO: if its not a star lets find all the contact records and remove them*/