From 09a8695f065781482b94e2645992a6b39405250c Mon Sep 17 00:00:00 2001 From: Timofey S Date: Tue, 28 Dec 2021 21:38:16 +0300 Subject: [PATCH] fix saving signed_tokens field when room is permanent --- plugins/janus_videoroom.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/janus_videoroom.c b/plugins/janus_videoroom.c index 4495f2882f2..276020a580f 100644 --- a/plugins/janus_videoroom.c +++ b/plugins/janus_videoroom.c @@ -211,6 +211,7 @@ room-: { "new_pin" : "", "new_is_private" : , "new_require_pvtid" : , + "new_signed_tokens" : , "new_bitrate" : , "new_fir_freq" : , "new_publishers" : , @@ -3445,6 +3446,8 @@ static json_t *janus_videoroom_process_synchronous_request(janus_videoroom_sessi janus_config_add(config, c, janus_config_item_create("is_private", "yes")); if(videoroom->require_pvtid) janus_config_add(config, c, janus_config_item_create("require_pvtid", "yes")); + if(videoroom->signed_tokens) + janus_config_add(config, c, janus_config_item_create("signed_tokens", "yes")); if(videoroom->require_e2ee) janus_config_add(config, c, janus_config_item_create("require_e2ee", "yes")); g_snprintf(value, BUFSIZ, "%"SCNu32, videoroom->bitrate); @@ -3557,6 +3560,7 @@ static json_t *janus_videoroom_process_synchronous_request(janus_videoroom_sessi json_t *desc = json_object_get(root, "new_description"); json_t *is_private = json_object_get(root, "new_is_private"); json_t *req_pvtid = json_object_get(root, "new_require_pvtid"); + json_t *signed_tokens = json_object_get(root, "new_signed_tokens"); json_t *secret = json_object_get(root, "new_secret"); json_t *pin = json_object_get(root, "new_pin"); json_t *bitrate = json_object_get(root, "new_bitrate"); @@ -3589,6 +3593,13 @@ static json_t *janus_videoroom_process_synchronous_request(janus_videoroom_sessi videoroom->is_private = json_is_true(is_private); if(req_pvtid) videoroom->require_pvtid = json_is_true(req_pvtid); + if(signed_tokens && json_is_true(signed_tokens)) { + if(!gateway->auth_is_signed()) { + JANUS_LOG(LOG_WARN, "Can't enforce signed tokens for this room, signed-mode not in use in the core\n"); + } else { + videoroom->signed_tokens = TRUE; + } + } if(publishers) videoroom->max_publishers = json_integer_value(publishers); if(bitrate) { @@ -3629,6 +3640,8 @@ static json_t *janus_videoroom_process_synchronous_request(janus_videoroom_sessi janus_config_add(config, c, janus_config_item_create("is_private", "yes")); if(videoroom->require_pvtid) janus_config_add(config, c, janus_config_item_create("require_pvtid", "yes")); + if(videoroom->signed_tokens) + janus_config_add(config, c, janus_config_item_create("signed_tokens", "yes")); if(videoroom->require_e2ee) janus_config_add(config, c, janus_config_item_create("require_e2ee", "yes")); g_snprintf(value, BUFSIZ, "%"SCNu32, videoroom->bitrate);