Do not send DTLS datagrams to RTP even after handshake

Also post debug message in case we drop datagrams
This commit is contained in:
Marvin W 2023-07-09 14:14:43 +02:00
parent f82f788f43
commit 1bf57a42fa

View file

@ -38,7 +38,11 @@ public class Handler {
} }
public uint8[]? process_incoming_data(uint component_id, uint8[] data) throws Crypto.Error { public uint8[]? process_incoming_data(uint component_id, uint8[] data) throws Crypto.Error {
if (srtp_session.has_decrypt) { if (data[0] >= 128) {
if (!srtp_session.has_decrypt) {
debug("Received data before SRTP session is ready, dropping.");
return null;
}
if (component_id == 1) { if (component_id == 1) {
if (data.length >= 2 && data[1] >= 192 && data[1] < 224) { if (data.length >= 2 && data[1] >= 192 && data[1] < 224) {
return srtp_session.decrypt_rtcp(data); return srtp_session.decrypt_rtcp(data);
@ -46,9 +50,12 @@ public class Handler {
return srtp_session.decrypt_rtp(data); return srtp_session.decrypt_rtp(data);
} }
if (component_id == 2) return srtp_session.decrypt_rtcp(data); if (component_id == 2) return srtp_session.decrypt_rtcp(data);
} else if (component_id == 1 && (data[0] >= 20 && data[0] <= 63)) {
on_data_rec(data);
} }
if (component_id == 1 && data.length >= 1 && (data[0] >= 20 && data[0] < 64)) {
on_data_rec(data);
return null;
}
debug("Dropping unknown data from component %u", component_id);
return null; return null;
} }