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 | |
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')
-rw-r--r-- | dirmngr/certcache.c | 10 | ||||
-rw-r--r-- | dirmngr/crlcache.c | 22 | ||||
-rw-r--r-- | dirmngr/dirmngr.c | 2 |
3 files changed, 15 insertions, 19 deletions
diff --git a/dirmngr/certcache.c b/dirmngr/certcache.c index 04da510a0..9ca6069a2 100644 --- a/dirmngr/certcache.c +++ b/dirmngr/certcache.c @@ -364,8 +364,8 @@ static gpg_error_t load_certs_from_dir (const char *dirname, unsigned int trustclass) { gpg_error_t err; - DIR *dir; - struct dirent *ep; + gnupg_dir_t dir; + gnupg_dirent_t ep; char *p; size_t n; estream_t fp; @@ -373,13 +373,13 @@ load_certs_from_dir (const char *dirname, unsigned int trustclass) ksba_cert_t cert; char *fname = NULL; - dir = opendir (dirname); + dir = gnupg_opendir (dirname); if (!dir) { return 0; /* We do not consider this a severe error. */ } - while ( (ep=readdir (dir)) ) + while ( (ep = gnupg_readdir (dir)) ) { p = ep->d_name; if (*p == '.' || !*p) @@ -447,7 +447,7 @@ load_certs_from_dir (const char *dirname, unsigned int trustclass) } xfree (fname); - closedir (dir); + gnupg_closedir (dir); return 0; } 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; } diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index 838ab9487..06bb4bae6 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -1305,7 +1305,7 @@ main (int argc, char **argv) { log_error (_("error binding socket to '%s': %s\n"), serv_addr.sun_path, - gpg_strerror (gpg_error_from_errno (errno))); + gpg_strerror (gpg_error_from_syserror ())); assuan_sock_close (fd); dirmngr_exit (1); } |