summaryrefslogtreecommitdiffstats
path: root/bindings
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2019-07-16 23:39:27 +0200
committerJose Bollo <jose.bollo@iot.bzh>2019-07-18 15:39:52 +0200
commit037157919df0a7ee90837037748a6456431e6469 (patch)
treea33e3494a78052b73aea06b694b98298ea04de36 /bindings
parenta445694bda8773cb80566808b5dcb56f033dee58 (diff)
Tag broadcasted events with UUID and hop
When API have mutual dependencies, leading to loops in dependecies, broadcasting an event never ends because of the loop (see SPEC-2625). To avoid that weird flood of events, a unic identifier (UUID) is attached to broadcasted event and a tiny memory records previously broadcasted events to avoid re-sending an already sent event. The size of the memory can be set using the macro variable EVENT_BROADCAST_MEMORY_COUNT whose default value is 8. It can be reduced to 0. An other mecanism is added to limit the count of hops that a broadcasted event can do. That count can be set using the macro variable EVENT_BROADCAST_HOP_MAX whose default value is 10. Bug-AGL: SPEC-2625 Signed-off-by: José Bollo <jose.bollo@iot.bzh> Change-Id: I45877583dbf478a79d405c3650880a5579ac1f9e
Diffstat (limited to 'bindings')
-rw-r--r--bindings/samples/hello3.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bindings/samples/hello3.c b/bindings/samples/hello3.c
index 1d7c1954..37da6127 100644
--- a/bindings/samples/hello3.c
+++ b/bindings/samples/hello3.c
@@ -424,7 +424,7 @@ static void broadcast(afb_req_t request)
afb_req_success(request, NULL, NULL);
pthread_mutex_unlock(&mutex);
} else if (name != NULL) {
- if (0 > afb_daemon_broadcast_event(name, object))
+ if (0 > afb_daemon_broadcast_event(name, json_object_get(object)))
afb_req_fail(request, "failed", "broadcast error");
else
afb_req_success(request, NULL, NULL);