aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/filescan-utils.md9
-rw-r--r--filescan-utils.c26
-rw-r--r--filescan-utils.h10
3 files changed, 45 insertions, 0 deletions
diff --git a/docs/filescan-utils.md b/docs/filescan-utils.md
index d91ff1c..6b52cd2 100644
--- a/docs/filescan-utils.md
+++ b/docs/filescan-utils.md
@@ -58,6 +58,15 @@ For binding with a version >= 3, same as 'GetAFBRootDirPath' function.
Deprecated, please use 'GetAFBRootDirPath' function.
Kept for compatibility issues.
+## char *GetRunningBindingDirPath(afb_api_t api)
+
+For binding with a version >= 3, get the binding directory path
+(the path to the directory that contains the binding).
+
+* `api` : pointer to the AFB API.
+
+Returns a string representing the path to the binding directory.
+
## const char *getEnvDirList(const char *prefix, const char *suffix)
Get the environment directory colon separated path list. This take the prefix
diff --git a/filescan-utils.c b/filescan-utils.c
index 236e192..6ac90fe 100644
--- a/filescan-utils.c
+++ b/filescan-utils.c
@@ -179,7 +179,33 @@ char *GetAFBRootDirPath(afb_api_t apiHandle)
return GetAFBRootDirPathUsingFd(fd);
}
+char *GetRunningBindingDirPath(afb_api_t apiHandle)
+{
+ int ret;
+
+ char *lastSlashInPath, *bindingDirectoryPath;
+ const char *bindingPath;
+
+ json_object *settingsJ, *bindingPathJ = NULL;
+
+ settingsJ = afb_api_settings(apiHandle);
+ if(!settingsJ)
+ return NULL;
+
+ ret = json_object_object_get_ex(settingsJ, "binding-path", &bindingPathJ);
+ if(!ret || !bindingPathJ || !json_object_is_type(bindingPathJ, json_type_string))
+ return NULL;
+
+ bindingPath = json_object_get_string(bindingPathJ);
+
+ lastSlashInPath = rindex(bindingPath, '/');
+ if(!lastSlashInPath)
+ return NULL;
+
+ bindingDirectoryPath = strndup(bindingPath, lastSlashInPath - bindingPath);
+ return bindingDirectoryPath;
+}
/**
diff --git a/filescan-utils.h b/filescan-utils.h
index f96d903..0783ebe 100644
--- a/filescan-utils.h
+++ b/filescan-utils.h
@@ -123,6 +123,16 @@ __attribute__((alias("GetAFBRootDirPath_v3")))
static char *GetBindingDirPath(afb_api_t api);
#endif
+/*
+ * @brief Get the Binding directory
+ *
+ * @param dynapi : Api use in binding
+ *
+ * @return char* string representing the path to binding directory.
+ * NULL if something wrong happened.
+ */
+extern char *GetRunningBindingDirPath(afb_api_t apiHandle);
+
/**
* @brief Get the environment directory colon separated path list. This take the
* prefix add the binder's name then the suffix as environment variable name and