X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-stub-ws.c;h=351b332010d6f4ad1510ecf46779a44beb42e6af;hb=53c7b44e96e6015a4da4f88f22e98b13cfa2e056;hp=1dc19fb445eb353bdb4e7fd7b5fd49142a0ee684;hpb=c6380108964e71f533d8c672bb9c217020a95e8d;p=src%2Fapp-framework-binder.git diff --git a/src/afb-stub-ws.c b/src/afb-stub-ws.c index 1dc19fb4..351b3320 100644 --- a/src/afb-stub-ws.c +++ b/src/afb-stub-ws.c @@ -740,11 +740,11 @@ static void client_reply_fail(struct afb_stub_ws *stubws, struct readbuf *rb) } /* send a subcall reply */ -static void client_send_subcall_reply(struct client_subcall *subcall, int iserror, json_object *object) +static void client_send_subcall_reply(struct client_subcall *subcall, int status, json_object *object) { int rc; struct writebuf wb = { .count = 0 }; - char ie = (char)!!iserror; + char ie = status < 0; if (!writebuf_char(&wb, CHAR_FOR_SUBCALL_REPLY) || !writebuf_uint32(&wb, subcall->subcallid) @@ -761,9 +761,9 @@ static void client_send_subcall_reply(struct client_subcall *subcall, int iserro } /* callback for subcall reply */ -static void client_subcall_reply_cb(void *closure, int iserror, json_object *object) +static void client_subcall_reply_cb(void *closure, int status, json_object *object) { - client_send_subcall_reply(closure, iserror, object); + client_send_subcall_reply(closure, status, object); free(closure); } @@ -1040,14 +1040,14 @@ overflow: /* on subcall reply */ static void server_on_subcall_reply(struct afb_stub_ws *stubws, struct readbuf *rb) { - char iserror; + char ie; uint32_t subcallid; struct json_object *object; struct server_subcall *sc, **psc; /* reads the call message data */ if (!readbuf_uint32(rb, &subcallid) - || !readbuf_char(rb, &iserror) + || !readbuf_char(rb, &ie) || !readbuf_object(rb, &object)) { /* TODO bad protocol */ return; @@ -1064,7 +1064,7 @@ static void server_on_subcall_reply(struct afb_stub_ws *stubws, struct readbuf * } else { *psc = sc->next; pthread_mutex_unlock(&stubws->mutex); - sc->callback(sc->closure, (int)iserror, object); + sc->callback(sc->closure, -(int)ie, object); free(sc); } json_object_put(object); @@ -1083,17 +1083,11 @@ static void server_send_description(struct afb_stub_ws *stubws, uint32_t descid, static void server_describe_job(int signum, void *closure) { - struct afb_api api; struct json_object *obj; struct server_describe *desc = closure; /* get the description if possible */ - obj = NULL; - if (!signum - && !afb_apiset_get(desc->stubws->apiset, desc->stubws->apiname, &api) - && api.itf->describe) { - obj = api.itf->describe(api.closure); - } + obj = !signum ? afb_apiset_describe(desc->stubws->apiset, desc->stubws->apiname) : NULL; /* send it */ server_send_description(desc->stubws, desc->descid, obj);