X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-ws-json.c;fp=src%2Fafb-ws-json.c;h=7475b263b80da2a791f865eee1dcb7f3a18e38eb;hb=3b0d4962f64f546474fa033ffa4e3d067194c888;hp=2e68d277eb015ef7c88b0a5fc5b9dd13370efab6;hpb=423d86c6032c0a27f790a3766abd0c855726eab1;p=src%2Fapp-framework-binder.git diff --git a/src/afb-ws-json.c b/src/afb-ws-json.c index 2e68d277..7475b263 100644 --- a/src/afb-ws-json.c +++ b/src/afb-ws-json.c @@ -56,9 +56,15 @@ struct afb_ws_json static void aws_send_event(struct afb_ws_json *ws, const char *event, struct json_object *object); static const struct afb_event_listener_itf event_listener_itf = { - .send = (void*)aws_send_event + .send = (void*)aws_send_event, + .expects = NULL }; +static inline struct afb_event_listener listener_for(struct afb_ws_json *aws) +{ + return (struct afb_event_listener){ .itf = &event_listener_itf, .closure = aws }; +} + struct afb_ws_json *afb_ws_json_create(int fd, struct AFB_clientCtx *session, void (*cleanup)(void*), void *cleanup_closure) { struct afb_ws_json *result; @@ -85,7 +91,7 @@ struct afb_ws_json *afb_ws_json_create(int fd, struct AFB_clientCtx *session, vo if (result->ws == NULL) goto error4; - if (0 > ctxClientEventListenerAdd(result->session, (struct afb_event_listener){ .itf = &event_listener_itf, .closure = result })) + if (0 > ctxClientEventListenerAdd(result->session, listener_for(result))) goto error5; return result; @@ -105,7 +111,7 @@ error: static void aws_on_hangup(struct afb_ws_json *ws) { - ctxClientEventListenerRemove(ws->session, (struct afb_event_listener){ .itf = &event_listener_itf, .closure = ws }); + ctxClientEventListenerRemove(ws->session, listener_for(ws)); afb_ws_destroy(ws->ws); json_tokener_free(ws->tokener); if (ws->cleanup != NULL)