Merge from HEAD: Patch by Anthony Liguori <aliguor@us.ibm.com> to replace scandir...
authorAndrew Bartlett <abartlet@samba.org>
Tue, 11 Feb 2003 21:56:38 +0000 (21:56 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 11 Feb 2003 21:56:38 +0000 (21:56 +0000)
Andrew Bartlett
(This used to be commit b9ca0b9ef39442726afd580dc38b6dafce542335)

source3/modules/vfs_netatalk.c

index c869922a4c7543e1d4e05575983bded05a0e9918..b69a900e14411775482a906b05f258481e4eafef 100644 (file)
@@ -161,27 +161,26 @@ static void atalk_add_to_list(name_compare_entry **list)
 
 static void atalk_rrmdir(TALLOC_CTX *ctx, char *path)
 {
-       int n;
        char *dpath;
-       struct dirent **namelist;
+       struct dirent *dent = 0;
+       DIR *dir;
 
        if (!path) return;
 
-       n = scandir(path, &namelist, 0, alphasort);
-       if (n < 0) {
-               return;
-       } else {
-               while (n --) {
-                       if (strcmp(namelist[n]->d_name, ".") == 0 ||
-                         strcmp(namelist[n]->d_name, "..") == 0)
-                               continue;
-                       if (!(dpath = talloc_asprintf(ctx, "%s/%s", 
-                         path, namelist[n]->d_name)))
-                               continue;
-                       atalk_unlink_file(dpath);
-                       free(namelist[n]);
-               }
+       dir = opendir(path);
+       if (!dir) return;
+
+       while (NULL != (dent = readdir(dir))) {
+               if (strcmp(dent->d_name, ".") == 0 ||
+                   strcmp(dent->d_name, "..") == 0)
+                       continue;
+               if (!(dpath = talloc_asprintf(ctx, "%s/%s", 
+                                             path, dent->d_name)))
+                       continue;
+               atalk_unlink_file(dpath);
        }
+
+       closedir(dir);
 }
 
 /* Disk operations */