X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafm-user-daemon.c;h=14977b0111f72582cacaefc528ada75223bfc015;hb=b13e73d8452f5e40a8465b37b22e8a299fb036ae;hp=324e9a839462b21cde785e6a2342e210c1054adc;hpb=63c180a63657bc7dd55bab423ea0c2751c87310b;p=src%2Fapp-framework-main.git diff --git a/src/afm-user-daemon.c b/src/afm-user-daemon.c index 324e9a8..14977b0 100644 --- a/src/afm-user-daemon.c +++ b/src/afm-user-daemon.c @@ -113,14 +113,23 @@ static const char *uri; * */ static void on_pws_hangup(void *closure); -static void on_pws_reply_success(void *closure, void *request, struct json_object *result, const char *info); -static void on_pws_reply_fail(void *closure, void *request, const char *status, const char *info); +static void on_pws_reply(void *closure, void *request, struct json_object *obj, const char *error, const char *info); +#if !defined(AFB_PROTO_WS_VERSION) || (AFB_PROTO_WS_VERSION < 3) +static void on_pws_reply_success(void *closure, void *request, struct json_object *result, const char *info) + { on_pws_reply(closure, request, result, NULL, info); } +static void on_pws_reply_fail(void *closure, void *request, const char *error, const char *info) + { on_pws_reply(closure, request, NULL, error, info); } +#endif static void on_pws_event_broadcast(void *closure, const char *event_name, struct json_object *data); /* the callback interface for pws */ static struct afb_proto_ws_client_itf pws_itf = { +#if !defined(AFB_PROTO_WS_VERSION) || (AFB_PROTO_WS_VERSION < 3) .on_reply_success = on_pws_reply_success, .on_reply_fail = on_pws_reply_fail, +#else + .on_reply = on_pws_reply, +#endif .on_event_broadcast = on_pws_event_broadcast, }; @@ -156,16 +165,13 @@ static void attempt_connect_pws(int count) } } -static void on_pws_reply_success(void *closure, void *request, struct json_object *result, const char *info) -{ - struct sd_bus_message *smsg = request; - jbus_reply_j(smsg, result); -} - -static void on_pws_reply_fail(void *closure, void *request, const char *status, const char *info) +static void on_pws_reply(void *closure, void *request, struct json_object *obj, const char *error, const char *info) { struct sd_bus_message *smsg = request; - jbus_reply_error_s(smsg, status); + if (error) + jbus_reply_error_s(smsg, error); + else + jbus_reply_j(smsg, obj); } static void on_pws_event_broadcast(void *closure, const char *event_name, struct json_object *data) @@ -187,12 +193,17 @@ static void propagate(struct sd_bus_message *smsg, struct json_object *obj, void { int rc; const char *verb = closure; + const char *onbehalf = NULL; /* TODO: on behalf of the client */ INFO("method %s propagated for %s", verb, json_object_to_json_string(obj)); if (!pws) jbus_reply_error_s(smsg, "disconnected"); else { +#if defined(AFB_PROTO_WS_VERSION) && (AFB_PROTO_WS_VERSION >= 3) + rc = afb_proto_ws_client_call(pws, verb, obj, sessionid, smsg, onbehalf); +#else rc = afb_proto_ws_client_call(pws, verb, obj, sessionid, smsg); +#endif if (rc < 0) ERROR("calling %s(%s) failed: %m\n", verb, json_object_to_json_string(obj)); }