From 1990ea3677f10bab3dc3cc7b7f8f1c50a399d5d4 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Fri, 3 Aug 2018 13:37:11 +0200 Subject: Add path to the installed widget path. This resolv the link to the binding aftest library then set the dir path to the widget installation location. Depends-On: I5db247fd9925065684e036d8d458c2131006f9db Change-Id: I4c49b930181a813d0ef3c2d873455a4ac7721206 Signed-off-by: Romain Forlot --- app-controller-submodule | 2 +- src/aft.c | 26 +++++++++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app-controller-submodule b/app-controller-submodule index 4e30eb1..9ba5c8f 160000 --- a/app-controller-submodule +++ b/app-controller-submodule @@ -1 +1 @@ -Subproject commit 4e30eb1444fc88b73582db421d3a7467a3647064 +Subproject commit 9ba5c8f531fc371d5402ea28467029bd3e95f980 diff --git a/src/aft.c b/src/aft.c index df0c69b..0114e8f 100644 --- a/src/aft.c +++ b/src/aft.c @@ -191,26 +191,41 @@ static int CtrlCreateApi(AFB_ApiT apiHandle, CtlConfigT *ctrlConfig) { int afbBindingEntry(afb_api_t apiHandle) { size_t len = 0, bindingRootDirLen = 0; - char *dirList; + char *dirList, *afTestRootDir, *path; const char *envDirList = NULL, *configPath = NULL, *bindingRootDir = NULL; + json_object *settings = afb_api_settings(apiHandle), *bpath = NULL; AFB_default = apiHandle; AFB_ApiDebug(apiHandle, "Controller in afbBindingEntry"); + if(json_object_object_get_ex(settings, "binding-path", &bpath)) { + afTestRootDir = strdup(json_object_get_string(bpath)); + path = rindex(afTestRootDir, '/'); + if(strlen(path) < 3) + return ERROR; + *++path = '.'; + *++path = '.'; + *++path = '\0'; + } + else { + afTestRootDir = malloc(1); + strcpy(afTestRootDir, ""); + } + envDirList = getEnvDirList(CONTROL_PREFIX, "CONFIG_PATH"); bindingRootDir = GetBindingDirPath(); bindingRootDirLen = strlen(bindingRootDir); if(envDirList) { - len = strlen(CONTROL_CONFIG_PATH) + strlen(envDirList) + bindingRootDirLen + 2; + len = strlen(CONTROL_CONFIG_PATH) + strlen(envDirList) + bindingRootDirLen + 3; dirList = malloc(len + 1); - snprintf(dirList, len +1, "%s:%s:%s", envDirList, bindingRootDir, CONTROL_CONFIG_PATH); + snprintf(dirList, len +1, "%s:%s:%s:%s", envDirList, afTestRootDir, bindingRootDir, CONTROL_CONFIG_PATH); } else { - len = strlen(CONTROL_CONFIG_PATH) + bindingRootDirLen + 1; + len = strlen(CONTROL_CONFIG_PATH) + bindingRootDirLen + 2; dirList = malloc(len + 1); - snprintf(dirList, len + 1, "%s:%s", bindingRootDir, CONTROL_CONFIG_PATH); + snprintf(dirList, len + 1, "%s:%s:%s", bindingRootDir, afTestRootDir, CONTROL_CONFIG_PATH); } configPath = CtlConfigSearch(apiHandle, dirList, CONTROL_PREFIX); @@ -219,5 +234,6 @@ int afbBindingEntry(afb_api_t apiHandle) { return ERROR; } + free(afTestRootDir); return CtrlCreateApi(apiHandle, CtrlLoadConfigFile(apiHandle, configPath)); } -- cgit 1.2.3-korg