res_pjsip: Fix multiple of the same contact in "pjsip show contacts".

The code for gathering contacts could result in the same contact
being retrieved and added to the list multiple times. The container
which stores the contacts to display will now only allow a contact
to be added to it once instead of multiple times.

ASTERISK-28228

Change-Id: I805185cfcec03340f57d2b9e6cc43c49401812df
This commit is contained in:
Joshua Colp 2019-08-01 10:07:45 +00:00
parent 4018e88369
commit 86452c9fa4
1 changed files with 5 additions and 1 deletions

View File

@ -1035,7 +1035,11 @@ static struct ao2_container *cli_contact_get_container(const char *regex)
return NULL;
}
contacts_container = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_NOLOCK, 0,
/* Retrieving all the contacts may result in finding the same contact multiple
* times. So that they don't get displayed multiple times we only allow a
* single one to be placed into the container.
*/
contacts_container = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_NOLOCK, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT,
cli_contact_sort, cli_contact_compare);
if (!contacts_container) {
return NULL;