X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-ws-json.c;h=7475b263b80da2a791f865eee1dcb7f3a18e38eb;hb=f83af86907f072b8d58bc84acfb431682a9e3080;hp=781722fc195cb308723a4784b7a0e094ca2344cc;hpb=f1b901ed676b2d45ec8e6ae3d6ef2f94d79f9ee6;p=src%2Fapp-framework-binder.git diff --git a/src/afb-ws-json.c b/src/afb-ws-json.c index 781722fc..7475b263 100644 --- a/src/afb-ws-json.c +++ b/src/afb-ws-json.c @@ -23,7 +23,7 @@ #include #include -#include +#include #include "afb-ws.h" #include "afb-ws-json.h" @@ -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)