afb-stub-ws: Process error on call to remote 53/16253/2
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 21 Aug 2018 12:31:41 +0000 (14:31 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Thu, 23 Aug 2018 06:35:38 +0000 (08:35 +0200)
Change-Id: I8bb96419cfac3da88e75da42c66a5d359ec7c666
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-stub-ws.c

index ae83e53..5000f9f 100644 (file)
@@ -210,16 +210,20 @@ static struct client_event *client_event_search(struct afb_stub_ws *stubws, uint
 /* on call, propagate it to the ws service */
 static void client_call_cb(void * closure, struct afb_xreq *xreq)
 {
+       int rc;
        struct afb_stub_ws *stubws = closure;
 
-       afb_proto_ws_client_call(
+       rc = afb_proto_ws_client_call(
                        stubws->proto,
                        xreq->request.called_verb,
                        afb_xreq_json(xreq),
                        afb_session_uuid(xreq->context.session),
                        xreq,
                        xreq_on_behalf_cred_export(xreq));
-       afb_xreq_unhooked_addref(xreq);
+       if (rc >= 0)
+               afb_xreq_unhooked_addref(xreq);
+       else
+               afb_xreq_reply(xreq, NULL, "internal", "can't send message");
 }
 
 static void client_on_description_cb(void *closure, struct json_object *data)