X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-subcall.c;h=6566b5b2d6162eff3d5489f0edd8851513e01994;hb=2a2a9835cfe31a495020c79b0eeadbddb70f52ae;hp=bf6417384e5eea1b0e8bd317b5dcfa1ac8c39a86;hpb=b69290c369ba67ee804bc5a0a440210c0e5d37a3;p=src%2Fapp-framework-binder.git diff --git a/src/afb-subcall.c b/src/afb-subcall.c index bf641738..6566b5b2 100644 --- a/src/afb-subcall.c +++ b/src/afb-subcall.c @@ -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; }