From b954f3b53b95bc4b2010c091e4b1b2e1f90a98ab Mon Sep 17 00:00:00 2001 From: Mohamed Chibani <mohamed.chibani@savoirfairelinux.com> Date: Thu, 26 Aug 2021 11:03:16 -0400 Subject: [PATCH] ice: resort the check list when adding prflx candidates Resort the check list when new prflx candidates are discovered, to avoid the nomination of candidates pairs with less priority. Gitlab: #617 Change-Id: I93559facd8b6ce99708ccf1311925837d9cd119d --- ...resort-check-list-after-adding-prflx.patch | 31 +++++++++++++++++++ contrib/src/pjproject/package.json | 1 + contrib/src/pjproject/rules.mak | 1 + 3 files changed, 33 insertions(+) create mode 100644 contrib/src/pjproject/0019-resort-check-list-after-adding-prflx.patch diff --git a/contrib/src/pjproject/0019-resort-check-list-after-adding-prflx.patch b/contrib/src/pjproject/0019-resort-check-list-after-adding-prflx.patch new file mode 100644 index 0000000000..1849b4c201 --- /dev/null +++ b/contrib/src/pjproject/0019-resort-check-list-after-adding-prflx.patch @@ -0,0 +1,31 @@ +From 45430f86d00f60c439f936693bf033ff4c066329 Mon Sep 17 00:00:00 2001 +From: Mohamed Chibani <mohamed.chibani@savoirfairelinux.com> +Date: Thu, 26 Aug 2021 10:49:20 -0400 +Subject: [PATCH] resort check list after adding prflx + +--- + pjnath/src/pjnath/ice_session.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/pjnath/src/pjnath/ice_session.c b/pjnath/src/pjnath/ice_session.c +index 77d014d62..f2c347163 100644 +--- a/pjnath/src/pjnath/ice_session.c ++++ b/pjnath/src/pjnath/ice_session.c +@@ -4034,8 +4034,12 @@ static void handle_incoming_check(pj_ice_sess *ice, + + LOG5((ice->obj_name, "Performing triggered check for check %d",i)); + pj_log_push_indent(); +- perform_check(ice, &ice->clist, i, nominate); +- pj_log_pop_indent(); ++ ++ perform_check(ice, &ice->clist, i, nominate); ++ /* Re-sort the list because of the newly added pair. */ ++ sort_checklist(ice, &ice->clist); ++ ++ pj_log_pop_indent(); + + } else if (c->state == PJ_ICE_SESS_CHECK_STATE_IN_PROGRESS) { + /* Should retransmit immediately +-- +2.25.1 + diff --git a/contrib/src/pjproject/package.json b/contrib/src/pjproject/package.json index 8314308d99..fbcbde925b 100644 --- a/contrib/src/pjproject/package.json +++ b/contrib/src/pjproject/package.json @@ -21,6 +21,7 @@ "0015-fix-socktype-and-duplicate-checking.patch", "0017-auto-register-thread.patch", "0018-fix-ioqueue-lock-acquire.patch", + "0019-resort-check-list-after-adding-prflx.patch", "0001-win-config.patch", "0002-win-vs-gnutls.patch", "0003-win-vs2017-props.patch" diff --git a/contrib/src/pjproject/rules.mak b/contrib/src/pjproject/rules.mak index 0c6480f3f0..ae03233468 100644 --- a/contrib/src/pjproject/rules.mak +++ b/contrib/src/pjproject/rules.mak @@ -63,6 +63,7 @@ pjproject: pjproject-$(PJPROJECT_VERSION).tar.gz .sum-pjproject $(APPLY) $(SRC)/pjproject/0015-fix-socktype-and-duplicate-checking.patch # TODO remove with 2.12 (https://github.com/pjsip/pjproject/commits/2feee8db77ed47e7b574367295d4f03f9aea67f8) $(APPLY) $(SRC)/pjproject/0017-auto-register-thread.patch $(APPLY) $(SRC)/pjproject/0018-fix-ioqueue-lock-acquire.patch + $(APPLY) $(SRC)/pjproject/0019-resort-check-list-after-adding-prflx.patch ifdef HAVE_ANDROID $(APPLY) $(SRC)/pjproject/0001-android.patch endif -- GitLab