Commit 1e40ee6d authored by Committed by Olivier CrêteBrowse files
conncheck: nominate matching pairs across components and streams
The current valid pair nomination makes no effort to select pairs that could have some similarities across different components and different streams. This is normally not required by the RFC8445, but some well known applications will misbehave when the libnice agent is in this position to choose the nominated pairs (regular nomination mode, and controlling mode) and if it makes an unexpected choice from the peer point-of-view. This patch improves the stopping criterion and the selection of the preferred pair to nominate in that case. When no other pair has been nominated yet (across all streams), the previous stopping criterion still applies, and the best ranked pair of the checklist is selected. When a nominated pair exists from another component, we try to nominate a pair of the same kind (same local and remote addresses and same transport) if we have one, and possibly the best pair we have in the checklist, and else we look for a nominated pair from another stream.
Showing with 207 additions and 57 deletions