summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-02-11 21:54:36 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-02-11 21:54:36 +0000
commit2d220ef00d1f2bae676a4201fb483a5ee3d0ae15 (patch)
treecd55bed44cf3dfca904de5df13bc7aebe371a51f /source3
parent270631338d57961aa60e0d6519089fc4bbaaba88 (diff)
downloadsamba-2d220ef00d1f2bae676a4201fb483a5ee3d0ae15.tar.gz
samba-2d220ef00d1f2bae676a4201fb483a5ee3d0ae15.tar.bz2
samba-2d220ef00d1f2bae676a4201fb483a5ee3d0ae15.zip
Patch from Anthony Liguori <aliguor@us.ibm.com> to remove scandir() portability
madness. Andrew Bartlett (This used to be commit 7836b9a58d158a54a7326b3de5d2fa757a9bb5b6)
Diffstat (limited to 'source3')
-rw-r--r--source3/modules/vfs_netatalk.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/source3/modules/vfs_netatalk.c b/source3/modules/vfs_netatalk.c
index c869922a4c..b69a900e14 100644
--- a/source3/modules/vfs_netatalk.c
+++ b/source3/modules/vfs_netatalk.c
@@ -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 */