Skip to content
  • Fabrice Bellet's avatar
    conncheck: add missing cases when pruning pending checks · 6dd39694
    Fabrice Bellet authored and Olivier Crête's avatar Olivier Crête committed
    When pruning pending checks (after at least one nominated pair has been
    obtained), some supplementary cases need to be handled, to ensure that
    the property "all pairs and only the pairs having a higher priority than
    the nominated pair should have the stun retransmit flag set" remains
    true during the whole conncheck:
    
    - a pair "not to be retransmitted" must be removed from the triggered check
      list (because a triggered check would create a new stun request, that
      would defacto ignore the retransmit flag)
    
    - an in-progress pair "not to be retransmitted", for which no stun
      request has been sent (p->stun_transactions == NULL, a transient
      state) must be removed from the conncheck list, just like a waiting
      pair.
    
    - a failed pair must have its flag "retransmit" updated too, just like
      another pair, since a failed pair could match an inbound check, and
      generate a triggered check, based on retransmit flag value : ie only
      if this pair has a chance to become a better nominated pair. See
      NICE_CHECK_FAILED case in priv_schedule_triggered_check().
    6dd39694