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));
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))) {
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));