diff options
author | Werner Koch <[email protected]> | 2020-10-21 14:59:38 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2020-10-21 15:00:32 +0000 |
commit | 7e22e08e2ab09cd3c2317f5e80e8ee47d46eff4b (patch) | |
tree | 3996132036db12b71643a087bee88515cb4bf8dc /dirmngr/crlcache.c | |
parent | w32: Make gnupg_remove and gnupg_rename_file Unicode aware (diff) | |
download | gnupg-7e22e08e2ab09cd3c2317f5e80e8ee47d46eff4b.tar.gz gnupg-7e22e08e2ab09cd3c2317f5e80e8ee47d46eff4b.zip |
common: New functions gnupg_opendir et al.
* common/sysutils.h (struct gnupg_dirent_s): New.
* common/sysutils.c: Include dirent.h.
(struct gnupg_dir_s): New.
(gnupg_opendir, gnupg_readdir, gnupg_closedir): New. Change all
callers of opendir, readdir, and closedir to use these functions.
--
GnuPG-bug-id: 5098
Diffstat (limited to 'dirmngr/crlcache.c')
-rw-r--r-- | dirmngr/crlcache.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/dirmngr/crlcache.c b/dirmngr/crlcache.c index 88b07cd7a..9d18b721f 100644 --- a/dirmngr/crlcache.c +++ b/dirmngr/crlcache.c @@ -101,10 +101,6 @@ #ifndef HAVE_W32_SYSTEM #include <sys/utsname.h> #endif -#ifdef MKDIR_TAKES_ONE_ARG -#undef mkdir -#define mkdir(a,b) mkdir(a) -#endif #include "dirmngr.h" #include "validate.h" @@ -206,15 +202,15 @@ get_current_cache (void) static int create_directory_if_needed (const char *name) { - DIR *dir; + gnupg_dir_t dir; char *fname; fname = make_filename (opt.homedir_cache, name, NULL); - dir = opendir (fname); + dir = gnupg_opendir (fname); if (!dir) { log_info (_("creating directory '%s'\n"), fname); - if (mkdir (fname, S_IRUSR|S_IWUSR|S_IXUSR) ) + if (gnupg_mkdir (fname, "-rwx")) { int save_errno = errno; log_error (_("error creating directory '%s': %s\n"), @@ -225,7 +221,7 @@ create_directory_if_needed (const char *name) } } else - closedir (dir); + gnupg_closedir (dir); xfree (fname); return 0; } @@ -237,8 +233,8 @@ static int cleanup_cache_dir (int force) { char *dname = make_filename (opt.homedir_cache, DBDIR_D, NULL); - DIR *dir; - struct dirent *de; + gnupg_dir_t dir; + gnupg_dirent_t de; int problem = 0; if (!force) @@ -251,7 +247,7 @@ cleanup_cache_dir (int force) } } - dir = opendir (dname); + dir = gnupg_opendir (dname); if (!dir) { log_error (_("error reading directory '%s': %s\n"), @@ -260,7 +256,7 @@ cleanup_cache_dir (int force) return -1; } - while ((de = readdir (dir))) + while ((de = gnupg_readdir (dir))) { if (strcmp (de->d_name, "." ) && strcmp (de->d_name, "..")) { @@ -289,7 +285,7 @@ cleanup_cache_dir (int force) } } xfree (dname); - closedir (dir); + gnupg_closedir (dir); return problem; } |