Implement new protocol extension to match client connections together

Fixes #1804
Fixes #1862
Fixes #1852
This commit is contained in:
Cameron Gutman 2023-12-28 18:38:00 -06:00
commit a9f2679a49
5 changed files with 184 additions and 159 deletions

View file

@ -290,6 +290,12 @@ namespace nvhttp {
launch_session.gcmap = util::from_view(get_arg(args, "gcmap", "0"));
launch_session.enable_hdr = util::from_view(get_arg(args, "hdrMode", "0"));
// Generate the unique identifiers for this connection that we will send later during RTSP handshake
unsigned char raw_payload[8];
RAND_bytes(raw_payload, sizeof(raw_payload));
launch_session.av_ping_payload = util::hex_vec(raw_payload);
RAND_bytes((unsigned char *) &launch_session.control_connect_data, sizeof(launch_session.control_connect_data));
uint32_t prepend_iv = util::endian::big<uint32_t>(util::from_view(get_arg(args, "rikeyid")));
auto prepend_iv_p = (uint8_t *) &prepend_iv;