X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-api-dyn.c;h=2ef1b1a5686323d834c90f6bc074215a316883e0;hb=0891ef4826e347d5554c630b5c0ce73c68f76c9c;hp=e829f8be00595bc2ce69e600e8cd1efe3a23626a;hpb=f30be1ca9ce04cfab55b9e6ce25cec6952f7e21d;p=src%2Fapp-framework-binder.git diff --git a/src/afb-api-dyn.c b/src/afb-api-dyn.c index e829f8be..2ef1b1a5 100644 --- a/src/afb-api-dyn.c +++ b/src/afb-api-dyn.c @@ -123,7 +123,7 @@ static void call_cb(void *closure, struct afb_xreq *xreq) int i; const char *name; - name = xreq->verb; + name = xreq->request.verb; xreq->request.dynapi = (void*)dynapi->export; /* hack: this avoids to export afb_export structure */ /* look first in dyna mic verbs */ @@ -235,7 +235,7 @@ static struct afb_api_itf dyn_api_itf = { .describe = describe_cb }; -int afb_api_dyn_add(struct afb_apiset *apiset, const char *name, const char *info, int (*preinit)(void*, struct afb_dynapi*), void *closure) +int afb_api_dyn_add(struct afb_apiset *apiset, const char *name, const char *info, int noconcurrency, int (*preinit)(void*, struct afb_dynapi*), void *closure) { int rc; struct afb_api_dyn *dynapi; @@ -266,7 +266,7 @@ int afb_api_dyn_add(struct afb_apiset *apiset, const char *name, const char *inf /* records the binding */ afb_api.closure = dynapi; afb_api.itf = &dyn_api_itf; - afb_api.group = NULL; + afb_api.group = noconcurrency ? dynapi : NULL; if (afb_apiset_add(apiset, afb_export_apiname(dynapi->export), afb_api) < 0) { ERROR("dynamic api %s can't be registered to set %s, ABORTING it!", afb_export_apiname(dynapi->export), @@ -274,7 +274,7 @@ int afb_api_dyn_add(struct afb_apiset *apiset, const char *name, const char *inf goto error; } INFO("binding %s added to set %s", afb_export_apiname(dynapi->export), afb_apiset_name(apiset)); - return 1; + return 0; error: afb_export_destroy(export);