algesten / str0m

A synchronous sans I/O WebRTC implementation in Rust.
MIT License
280 stars 45 forks source link

Fix lazy NACK timeouts enabling #501

Closed evdokimovs closed 2 months ago

evdokimovs commented 2 months ago

In commit "Lazily enable nack timeouts" (f72b690) was introduced optimization of NACK timeouts enabling, this commit added Streams::any_nack_enabled resetting in Streams::stream_rx_by_mid_rid(), but Streams has exact the same method called Streams::rx_by_mid_rid (which is used under the hood in Direct::stream_rx_by_mid) which wasn't updated. So if you're getting StreamRx from Direct API and call suppress_nack(false) on it, then any_nack_enabled is not updated, resulting in NACKs not being transmitted.

This PR removes this duplication of methods rx_by_mid_rid and tx_by_mid_rid in favor of stream_tx_by_mid_rid and stream_rx_by_mid_rid.

algesten commented 2 months ago

Oh wow. This is a big 🤦 :D

algesten commented 2 months ago

Thanks!