|
@@ -111,7 +111,7 @@ int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str cal
|
|
ci.expires = time(0) + expires;
|
|
ci.expires = time(0) + expires;
|
|
|
|
|
|
/* set ruid */
|
|
/* set ruid */
|
|
- if(sruid_next(&_reginfo_sruid) < 0) {
|
|
|
|
|
|
+ if(sruid_next_safe(&_reginfo_sruid) < 0) {
|
|
LM_ERR("failed to generate ruid");
|
|
LM_ERR("failed to generate ruid");
|
|
} else {
|
|
} else {
|
|
ci.ruid = _reginfo_sruid.uid;
|
|
ci.ruid = _reginfo_sruid.uid;
|
|
@@ -306,9 +306,15 @@ int process_body(str notify_body, udomain_t * domain) {
|
|
}
|
|
}
|
|
ul_contact = ul_contact->next;
|
|
ul_contact = ul_contact->next;
|
|
}
|
|
}
|
|
|
|
+
|
|
if (ul.delete_urecord(domain, &aor_key, ul_record) < 0) {
|
|
if (ul.delete_urecord(domain, &aor_key, ul_record) < 0) {
|
|
LM_ERR("failed to remove record from usrloc\n");
|
|
LM_ERR("failed to remove record from usrloc\n");
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* Record deleted, and should not be used anymore */
|
|
|
|
+ ul_record = NULL;
|
|
|
|
+
|
|
|
|
+
|
|
/* If already a registration with contacts was found, then keep that result.
|
|
/* If already a registration with contacts was found, then keep that result.
|
|
otherwise the result is now "No contacts found" */
|
|
otherwise the result is now "No contacts found" */
|
|
if (final_result != RESULT_CONTACTS_FOUND) final_result = RESULT_NO_CONTACTS;
|
|
if (final_result != RESULT_CONTACTS_FOUND) final_result = RESULT_NO_CONTACTS;
|