diff --git a/mesh/mesh-config-json.c b/mesh/mesh-config-json.c
index 5855149..ad2d4d0 100644
--- a/mesh/mesh-config-json.c
+++ b/mesh/mesh-config-json.c
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;
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 986ba4b..43340f1 100644
--- a/mesh/util.c
+++ b/mesh/util.c
#define _GNU_SOURCE
#include <dirent.h>
#include <ftw.h>
+#include <unistd.h>
#include <stdio.h>
#include <limits.h>
#include <time.h>
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 d1e83b5..092d330 100644
--- a/mesh/util.h
+++ b/mesh/util.h
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);