subcall: adds an error function 47/5947/1
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 10 Jun 2016 17:38:32 +0000 (19:38 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 10 Jun 2016 17:38:32 +0000 (19:38 +0200)
Change-Id: I9f766c4b880cc741392e5c33b58a2723b5a6f4ef
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-subcall.c
src/afb-subcall.h

index bf64173..6566b5b 100644 (file)
@@ -159,13 +159,23 @@ static void subcall_subcall(struct afb_subcall *subcall, const char *api, const
        afb_subcall(&subcall->context, api, verb, args, callback, closure, (struct afb_req){ .itf = &afb_subcall_req_itf, .closure = subcall });
 }
 
+void afb_subcall_internal_error(void (*callback)(void*, int, struct json_object*), void *closure)
+{
+       static struct json_object *obj;
+
+       if (obj == NULL)
+               obj = afb_msg_json_reply_error("failed", "internal error", NULL, NULL);
+
+       callback(closure, 1, obj);
+}
+
 void afb_subcall(struct afb_context *context, const char *api, const char *verb, struct json_object *args, void (*callback)(void*, int, struct json_object*), void *closure, struct afb_req req)
 {
        struct afb_subcall *subcall;
 
        subcall = calloc(1, sizeof *subcall);
        if (subcall == NULL) {
-               callback(closure, 1, afb_msg_json_reply_error("failed", "out of memory", NULL, NULL));
+               afb_subcall_internal_error(callback, closure);
                return;
        }
 
index 8fbc4ad..0de51da 100644 (file)
@@ -23,4 +23,5 @@ struct json_object;
 
 extern void afb_subcall(struct afb_context *context, const char *api, const char *verb, struct json_object *args, void (*callback)(void*, int, struct json_object*), void *closure, struct afb_req req);
 
+extern void afb_subcall_internal_error(void (*callback)(void*, int, struct json_object*), void *closure);