diff --git a/src/knot/journal/knot_lmdb.c b/src/knot/journal/knot_lmdb.c index a3f0c3d86ff24adcdd2bfe34c0e18e8eeff59fc6..dadcd39419b7d9277e85e348d3478f72b38957f5 100644 --- a/src/knot/journal/knot_lmdb.c +++ b/src/knot/journal/knot_lmdb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2020 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz> +/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ #include <sys/stat.h> #include <unistd.h> +#include "contrib/files.h" #include "contrib/wire_ctx.h" #include "libknot/dname.h" #include "libknot/endian.h" @@ -140,9 +141,9 @@ static int lmdb_open(knot_lmdb_db_t *db) return ret; } - ret = mkdir(db->path, LMDB_DIR_MODE); - if (ret < 0 && errno != EEXIST) { - return -errno; + ret = make_dir(db->path, LMDB_DIR_MODE, true); + if (ret != KNOT_EOK) { + return ret; } long page_size = sysconf(_SC_PAGESIZE); diff --git a/src/libknot/db/db_lmdb.c b/src/libknot/db/db_lmdb.c index 0ac1eaf37521ac8d698b0cf464a3510d12f22321..d980c7d5a2ed31922446a93a45b80dbe18e6b8ec 100644 --- a/src/libknot/db/db_lmdb.c +++ b/src/libknot/db/db_lmdb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz> +/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,6 +24,7 @@ #include "libknot/attribute.h" #include "libknot/errcode.h" #include "libknot/db/db_lmdb.h" +#include "contrib/files.h" #include "contrib/mempattern.h" #include <lmdb.h> @@ -79,12 +80,7 @@ static int lmdb_error_to_knot(int error) static int create_env_dir(const char *path) { - int r = mkdir(path, LMDB_DIR_MODE); - if (r == -1 && errno != EEXIST) { - return lmdb_error_to_knot(errno); - } - - return KNOT_EOK; + return make_dir(path, LMDB_DIR_MODE, true); } /*! \brief Set the environment map size.