diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2019-02-15 13:41:38 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2019-03-22 12:21:54 +0100 |
commit | 78cb4b202221b7ac90ffb586da362f3efb9f27b1 (patch) | |
tree | 35328000d5418a583ffb41839a3f34cf7dec6bd9 /src/afb-supervision.c | |
parent | d58b8f4273c48026f22d91896c05d2a5013480b2 (diff) |
hooks: Allow to remove hooking (and/or trace)
This change allows to downsize the binder by
removing its internal hooking and tracing features.
Change-Id: Ifb080a7426216f6c6b1c8f8e5bf8ddd52df40a3e
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/afb-supervision.c')
-rw-r--r-- | src/afb-supervision.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/afb-supervision.c b/src/afb-supervision.c index b6af92ca..63462017 100644 --- a/src/afb-supervision.c +++ b/src/afb-supervision.c @@ -53,7 +53,9 @@ /* api and apiset name */ static const char supervision_apiname[] = AFS_SUPERVISION_APINAME; +#if WITH_AFB_TRACE static const char supervisor_apiname[] = AFS_SUPERVISOR_APINAME; +#endif /* path of the supervision socket */ static const char supervisor_socket_path[] = AFS_SUPERVISION_SOCKET; @@ -80,8 +82,10 @@ static struct afb_api_itf supervision_api_itf = /* the supervisor link */ static struct afb_stub_ws *supervisor; +#if WITH_AFB_TRACE /* the trace api */ static struct afb_trace *trace; +#endif /* open the socket */ static int open_supervisor_socket(const char *path) @@ -121,15 +125,17 @@ static int open_supervisor_socket(const char *path) static void disconnect_supervisor() { struct afb_stub_ws *s; - struct afb_trace *t; INFO("Disconnecting supervision"); s = __atomic_exchange_n(&supervisor, NULL, __ATOMIC_RELAXED); - t = __atomic_exchange_n(&trace, NULL, __ATOMIC_RELAXED); if (s) afb_stub_ws_unref(s); + +#if WITH_AFB_TRACE + struct afb_trace *t = __atomic_exchange_n(&trace, NULL, __ATOMIC_RELAXED); if (t) afb_trace_unref(t); +#endif } static void on_supervisor_hangup(struct afb_stub_ws *s) @@ -302,12 +308,16 @@ enum { Break , Config , Do , Exit , Sclose , Slist , Trace , Wait }; static void on_supervision_call(void *closure, struct afb_xreq *xreq) { - int i, rc; - struct json_object *args, *drop, *add, *sub, *list; + int i; + struct json_object *args, *sub, *list; const char *api, *verb, *uuid; struct afb_session *session; const struct afb_api_item *xapi; afb_req_t req; +#if WITH_AFB_TRACE + struct json_object *drop, *add; + int rc; +#endif /* search the verb */ i = (int)(sizeof verbs / sizeof *verbs); @@ -354,10 +364,11 @@ static void on_supervision_call(void *closure, struct afb_xreq *xreq) afb_xreq_reply(xreq, json_object_get(global.config), NULL, NULL); break; case Trace: + req = xreq_to_req_x2(xreq); +#if WITH_AFB_TRACE if (!trace) trace = afb_trace_create(supervisor_apiname, NULL /* not bound to any session */); - req = xreq_to_req_x2(xreq); add = drop = NULL; wrap_json_unpack(args, "{s?o s?o}", "add", &add, "drop", &drop); if (add) { @@ -371,6 +382,9 @@ static void on_supervision_call(void *closure, struct afb_xreq *xreq) return; } afb_req_success(req, NULL, NULL); +#else + afb_req_reply(req, NULL, "not-available", NULL); +#endif break; case Do: sub = NULL; |