From 5ef83290bc4db2ac409b0de32f459aef3c52faeb Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 3 Aug 2005 17:22:33 +0000 Subject: r9007: fixed error code for setting delete on close on a non-empty directory (This used to be commit 320ab3c93b05a79b77dbbb85e9b038bb07848ba5) --- source4/ntvfs/posix/pvfs_dirlist.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source4/ntvfs/posix/pvfs_dirlist.c') diff --git a/source4/ntvfs/posix/pvfs_dirlist.c b/source4/ntvfs/posix/pvfs_dirlist.c index a5d394d2aa..a055773b51 100644 --- a/source4/ntvfs/posix/pvfs_dirlist.c +++ b/source4/ntvfs/posix/pvfs_dirlist.c @@ -310,3 +310,27 @@ NTSTATUS pvfs_list_seek(struct pvfs_dir *dir, const char *name, uint_t *ofs) return NT_STATUS_OBJECT_NAME_NOT_FOUND; } + + +/* + see if a directory is empty +*/ +BOOL pvfs_directory_empty(struct pvfs_state *pvfs, struct pvfs_filename *name) +{ + struct dirent *de; + DIR *dir = opendir(name->full_name); + if (dir == NULL) { + return True; + } + + while ((de = readdir(dir))) { + if (strcmp(de->d_name, ".") != 0 && + strcmp(de->d_name, "..") != 0) { + closedir(dir); + return False; + } + } + + closedir(dir); + return True; +} -- cgit