asterisk/include
George Joseph a621dd5e96 res_pjsip contact: Lock expiration/addition of contacts
Contact expiration can occur in several places:  res_pjsip_registrar,
res_pjsip_registrar_expire, and automatically when anyone calls
ast_sip_location_retrieve_aor_contact.  At the same time, res_pjsip_registrar
may also be attempting to renew or add a contact.  Since none of this was locked
it was possible for one thread to be renewing a contact and another thread to
expire it immediately because it was working off of stale data.  This was the
casue of intermittent registration/inbound/nominal/multiple_contacts test
failures.

Now, the new named lock functionality is used to lock the aor during contact
expire and add operations and res_pjsip_registrar_expire now checks the
expiration with the lock held before deleting the contact.

ASTERISK-25885 #close
Reported-by: Josh Colp

Change-Id: I83d413c46a47796f3ab052ca3b349f21cca47059
2016-04-11 13:00:27 -05:00
..
asterisk res_pjsip contact: Lock expiration/addition of contacts 2016-04-11 13:00:27 -05:00
solaris-compat fix the provided unsetenv for solaris to return an int like it's supposed to 2006-03-29 04:14:12 +00:00
asterisk.h Modules: Make ast_module_info->self available to auxiliary sources. 2015-05-04 20:47:01 -04:00
jitterbuf.h incorporates r159808 from branches/1.4: 2008-11-29 17:57:39 +00:00