From e0655ca2d3d2db4c99d56da6fc90345e9093deb7 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Sun, 16 Sep 2018 02:35:35 +0200 Subject: Fix: finding JSON file even if absolute path given Here, assuming the absolute path leads to a non existent file then only take the file name and do a research in the default search path given by environment var or pre-processor defined variables. Change-Id: Id57428141be908cda65b07f66ca59568708d3608 Signed-off-by: Romain Forlot --- signal-composer-binding/signal-composer-binding.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'signal-composer-binding/signal-composer-binding.cpp') diff --git a/signal-composer-binding/signal-composer-binding.cpp b/signal-composer-binding/signal-composer-binding.cpp index 234888c..5932640 100644 --- a/signal-composer-binding/signal-composer-binding.cpp +++ b/signal-composer-binding/signal-composer-binding.cpp @@ -178,9 +178,16 @@ void addObjects(afb_req request) if(filepath) { objectsJ = json_object_from_file(filepath); - if(!objectsJ) + if(! objectsJ) { - json_object* responseJ = ScanForConfig(CONTROL_CONFIG_PATH, CTL_SCAN_RECURSIVE, filepath, ".json"); + const char *has_slash = strrchr(filepath, '/'); + char *filename = has_slash ? strdupa(has_slash + 1) : strdupa(filepath); + char *filename_end = strrchr(filename, '.'); + if (filename_end) + {*filename_end = '\0';} + + json_object* responseJ = ScanForConfig(CONTROL_CONFIG_PATH, CTL_SCAN_RECURSIVE, filename, ".json"); + if(responseJ) { filepath = ConfigSearch(nullptr, responseJ); -- cgit 1.2.3-korg