From 1173d9ff96dcb24245db30fd25e32e0a7e74c6cc Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Thu, 14 Jan 2021 18:46:33 +0100 Subject: Revert "config: remove local mkdir_p implementation" This reverts commit 2cf6232fd170a24b801d71d497947d7aabd12015. --- src/config.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/config.c b/src/config.c index 78b5855..f8075ba 100644 --- a/src/config.c +++ b/src/config.c @@ -190,6 +190,31 @@ static const struct { const char *name; uint8_t flag; } ra_flags[] = { { .name = NULL, }, }; +static int mkdir_p(char *dir, mode_t mask) +{ + char *l = strrchr(dir, '/'); + int ret; + + if (!l) + return 0; + + *l = '\0'; + + if (mkdir_p(dir, mask)) + return -1; + + *l = '/'; + + ret = mkdir(dir, mask); + if (ret && errno == EEXIST) + return 0; + + if (ret) + syslog(LOG_ERR, "mkdir(%s, %d) failed: %m\n", dir, mask); + + return ret; +} + static void set_interface_defaults(struct interface *iface) { iface->ignore = true; -- cgit v1.2.3