Commit 18e2e3a2 authored by Committed by Olivier CrêteBrowse files
agent: Queue incoming pseudo-TCP messages until ACKs can be sent
If pseudo-TCP messages are received before a socket has been selected from all the STUN candidates, they would previously be immediately passed to the pseudo-TCP state machine, which would attempt to send ACKs for them. This would fail (due to a lack of an outbound UDP socket), and would incur a retransmit timeout in the TCP state machine. This slowed down the tests enormously if one agent in a test completed candidate selection before the other (which is an entirely reasonable scenario). This never occurred before because the existing tests artificially run both agents in lock-step, and never send data packets from one to the other until both have completed candidate selection. This is basically cheating. Fix the problem by queuing incoming pseudo-TCP messages until an outbound UDP socket is available to send the ACKs or SYNACKs on.
Showing with 90 additions and 1 deletion