Skip to content
  • Fabrice Bellet's avatar
    conncheck: nominate matching pairs across components and streams · 1e40ee6d
    Fabrice Bellet authored
    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.
    1e40ee6d