Update date in copyrights
[src/app-framework-main.git] / src / utils-dir.c
index af0bcf0..20e9ef5 100644 (file)
@@ -1,5 +1,7 @@
 /*
- Copyright 2015 IoT.bzh
+ Copyright (C) 2015-2019 IoT.bzh
+
+ author: José Bollo <jose.bollo@iot.bzh>
 
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
@@ -31,10 +33,6 @@ static int clean_dirfd(int dirfd)
        int rc;
        DIR *dir;
        struct dirent *ent;
-       struct {
-               struct dirent entry;
-               char spare[PATH_MAX];
-       } entry;
 
        dir = fdopendir(dirfd);
        if (dir == NULL) {
@@ -43,10 +41,13 @@ static int clean_dirfd(int dirfd)
        }
        for (;;) {
                rc = -1;
-               if (readdir_r(dir, &entry.entry, &ent) != 0)
-                       goto error;
-               if (ent == NULL)
+               errno = 0;
+               ent = readdir(dir);
+               if (ent == NULL) {
+                       if (errno)
+                               goto error;
                        break;
+               }
                if (ent->d_name[0] == '.' && (ent->d_name[1] == 0
                                || (ent->d_name[1] == '.' && ent->d_name[2] == 0)))
                        continue;
@@ -112,9 +113,10 @@ int remove_directory_at(int dirfd, const char *directory, int force)
 }
 
 /* create a directory */
-int create_directory_at(int dirfd, const char *directory, int mode, int mkparents)
+int create_directory_at(int dirfd, const char *directory, mode_t mode, int mkparents)
 {
-       int rc, len, l;
+       int rc;
+       size_t len, l;
        char *copy;
        const char *iter;
 
@@ -124,7 +126,7 @@ int create_directory_at(int dirfd, const char *directory, int mode, int mkparent
 
        /* check parent of dest */
        iter = strrchr(directory, '/');
-       len = iter ? iter - directory : 0;
+       len = iter ? (size_t)(iter - directory) : 0;
        if (!len)
                return rc;
        copy = strndupa(directory, len);
@@ -155,7 +157,7 @@ int create_directory_at(int dirfd, const char *directory, int mode, int mkparent
        return mkdirat(dirfd, directory, mode);
 }
 
-int create_directory(const char *directory, int mode, int mkparents)
+int create_directory(const char *directory, mode_t mode, int mkparents)
 {
        return create_directory_at(AT_FDCWD, directory, mode, mkparents);
 }