agent: Use provided CandidatePair rather than re-finding a pair
In priv_update_selected_pair(), commit
57393333 changed the code to
re-find a CandidatePair matching the given lfoundation and rfoundation.
However, the foundation does not uniquely identify candidate pairs,
and if we’re aiming to set a specific candidate pair as the selected
pair, this could result in the wrong pair being selected.
This can happen when handling multiple similar candidate pairs, such as
when generating peer reflexive candidates from multiple sources.
See https://tools.ietf.org/html/rfc5245#section-2.4.
Originally spotted by Fabrice Bellet in
https://phabricator.freedesktop.org/T3557.
Reviewed-by: José Antonio Santos Cadenas <santoscadenas@gmail.com>
Differential Revision: https://phabricator.freedesktop.org/D742