--- mesh/mesh-config-json.c | 20 +------------------- mesh/util.c | 25 +++++++++++++++++++++++++ mesh/util.h | 1 + 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/mesh/mesh-config-json.c b/mesh/mesh-config-json.c index 5855149e3..ad2d4d0f8 100644 --- a/mesh/mesh-config-json.c +++ b/mesh/mesh-config-json.c @@ -2253,24 +2253,6 @@ bool mesh_config_load_nodes(const char *cfgdir_name, mesh_config_node_func_t cb, return true; } -static int del_fobject(const char *fpath, const struct stat *sb, int typeflag, - struct FTW *ftwbuf) -{ - switch (typeflag) { - case FTW_DP: - rmdir(fpath); - l_debug("RMDIR %s", fpath); - break; - - case FTW_SL: - default: - remove(fpath); - l_debug("RM %s", fpath); - break; - } - return 0; -} - void mesh_config_destroy(struct mesh_config *cfg) { char *node_dir, *node_name; @@ -2291,7 +2273,7 @@ void mesh_config_destroy(struct mesh_config *cfg) if (strcmp(node_name, uuid)) return; - nftw(node_dir, del_fobject, 5, FTW_DEPTH | FTW_PHYS); + del_path(node_dir); /* Release node config object */ mesh_config_release(cfg); diff --git a/mesh/util.c b/mesh/util.c index 986ba4b28..43340f159 100644 --- a/mesh/util.c +++ b/mesh/util.c @@ -24,6 +24,7 @@ #define _GNU_SOURCE #include <dirent.h> #include <ftw.h> +#include <unistd.h> #include <stdio.h> #include <limits.h> #include <time.h> @@ -129,3 +130,27 @@ int create_dir(const char *dir_name) return 0; } + +static int del_fobject(const char *fpath, const struct stat *sb, int typeflag, + struct FTW *ftwbuf) +{ + switch (typeflag) { + case FTW_DP: + rmdir(fpath); + l_debug("RMDIR %s", fpath); + break; + + case FTW_SL: + default: + remove(fpath); + l_debug("RM %s", fpath); + break; + } + return 0; +} + + +void del_path(const char *path) +{ + nftw(path, del_fobject, 5, FTW_DEPTH | FTW_PHYS); +} diff --git a/mesh/util.h b/mesh/util.h index d1e83b573..092d33041 100644 --- a/mesh/util.h +++ b/mesh/util.h @@ -23,3 +23,4 @@ bool str2hex(const char *str, uint16_t in_len, uint8_t *out, size_t hex2str(uint8_t *in, size_t in_len, char *out, size_t out_len); void print_packet(const char *label, const void *data, uint16_t size); int create_dir(const char *dir_name); +void del_path(const char *path); -- 2.21.1