- return server_event_send(protows, CHAR_FOR_EVT_BROADCAST, event_name, 0, data);
+ struct writebuf wb = { .count = 0 };
+ int rc;
+
+ if (!hop--)
+ return 0;
+
+ if (writebuf_char(&wb, CHAR_FOR_EVT_BROADCAST)
+ && writebuf_string(&wb, event_name)
+ && writebuf_object(&wb, data)
+ && writebuf_put(&wb, uuid, 16)
+ && writebuf_char(&wb, (char)hop)) {
+ pthread_mutex_lock(&protows->mutex);
+ rc = afb_ws_binary_v(protows->ws, wb.iovec, wb.count);
+ pthread_mutex_unlock(&protows->mutex);
+ if (rc >= 0)
+ return 0;
+ }
+ return -1;