[core, mod_verto] add visibility filter to verto

This commit is contained in:
Anthony Minessale 2020-08-25 23:51:38 +00:00 committed by Andrey Volk
parent 46903fb13e
commit 4e84b34d30
2 changed files with 22 additions and 3 deletions

View File

@ -672,8 +672,24 @@ static void write_event(const char *event_channel, jsock_t *use_jsock, cJSON *ev
for(np = head->node; np; np = np->next) {
cJSON *msg = NULL, *params;
if (!use_jsock || use_jsock == np->jsock) {
const char *visibility;
//char *tmp;
if ((visibility = cJSON_GetObjectCstr(event, "contentVisibility"))) {
if (strcasecmp(visibility, "public") &&
((use_jsock && use_jsock->id && !strncasecmp(use_jsock->id, "guest", 5)) ||
(np->jsock->id && !strncasecmp(np->jsock->id, "guest", 5)))) {
continue;
}
}
//tmp = cJSON_Print(event);
//printf("%s\n", tmp);
//free(tmp);
params = cJSON_Duplicate(event, 1);
cJSON_AddItemToObject(params, "eventSerno", cJSON_CreateNumber(np->serno++));
cJSON_AddItemToObject(params, "subscribedChannel", cJSON_CreateString(head->event_channel));

View File

@ -3608,7 +3608,8 @@ SWITCH_DECLARE(switch_status_t) switch_live_array_add(switch_live_array_t *la, c
switch_status_t status = SWITCH_STATUS_SUCCESS;
const char *action = "add";
cJSON *msg = NULL, *data = NULL;
const char *visibility = NULL;
switch_mutex_lock(la->mutex);
if ((node = switch_core_hash_find(la->hash, name))) {
@ -3675,7 +3676,9 @@ SWITCH_DECLARE(switch_status_t) switch_live_array_add(switch_live_array_t *la, c
msg = cJSON_CreateObject();
data = json_add_child_obj(msg, "data", NULL);
if ((visibility = cJSON_GetObjectCstr(node->obj, "contentVisibility"))) {
cJSON_AddItemToObject(msg, "contentVisibility", cJSON_CreateString(visibility));
}
cJSON_AddItemToObject(msg, "eventChannel", cJSON_CreateString(la->event_channel));
cJSON_AddItemToObject(data, "action", cJSON_CreateString(action));