Open bifurcation opened 1 year ago
This code apears to be 17 years old and kind of unchanged, I agree that it should be fixed, but it might break things for exisitng clients if they have been doing it wrong. Maybe this is something for 3.0 ? The update_xxx() functions also need to preserver the directions flags.
This PR attempts to fix the logical error noted in #617, that the directions set on a template stream are not checked when the template stream is used to create new (directed) streams. It simply adds checks in
srtp_protect_mki
andsrtp_unprotect_mki
that verify that the template stream's direction is compatible with the context, either the same direction ordir_srtp_unknown
. Marking as WIP because even if we agree on approach, we probably need to cover the analgous RTCP methods.Note that there is compatibility risk in merging this PR: If there are consumers that are relying the ambiguity noted here, then they will fail.