conncheck: rework early stun requests handling
authorFabrice Bellet <fabrice@bellet.info>
Sun, 26 Nov 2017 16:13:19 +0000 (17:13 +0100)
committerOlivier Crête <olivier.crete@collabora.com>
Fri, 23 Mar 2018 17:56:13 +0000 (13:56 -0400)
commitae3e5acc775ee6c1701ff9a2404b14e4d5dd6c20
tree438829183e503f2bfd057b5c8b5a53317b905718
parentdb6166ee247a8f9fa4ebe2a08d223de73cbd2e96
conncheck: rework early stun requests handling

With this patch we simplify the code used to handle the incoming stun
request when remote candidates or remote credentials have not been
received yet.

When the remote credentials is unknown, the stun request is stored
in a list of incoming_checks for later processing, and no further
processing is done, except responding to the request.

When the remote credentials are received, the triggered checks for these
incoming checks can now be queued, and the related pairs are created.

If the remote candidates have not been received when the stun request
on a valid local port arrives, a peer-reflexive remote candidate will be
created. This candidate may need to be updated later when remote
candidates are finally received, including candidate priority and
foundation, and also related pairs.

Reviewed-by: Olivier Crête <olivier.crete@collabora.com>
Differential Revision: https://phabricator.freedesktop.org/D1889
agent/agent.c
agent/conncheck.c
agent/conncheck.h