Skip to content

net: webrtc/webrtchttp: Fix canceller usage

Commit 08b6251a added the check to ensure only one canceller at a time for net/webrtc.

In whipsink and since whipwebrtcsink picked up the same implementation, there exists a bug around the use of canceller. whipsink calls wait_async while passing the canceller as an argument. The path send_offer -> do_post -> parse_endpoint_response results in the canceller being replaced in each subsequent call to wait_async. Since wait_async call does not ensure one canceller, with the async call the use of canceller/abort was subtly broken. Similarly, for whepsrc.

We really don't need to use wait_async inside do_post for any await calls. If the root future viz. do_post with wait_async is aborted, the child futures will be taken care of.

Fixes #394 (closed).

Merge request reports