char *base;
char **fileList = NULL;
- Bool sawFileError = FALSE;
+ Err_Number fileError = 0;
if (Posix_EuidAccess(pathName, F_OK) != 0) {
/*
case S_IFDIR:
/* Directory, recurse */
if (!FileDeleteDirectoryTree(curPath, FALSE)) {
- sawFileError = TRUE;
+ fileError = Err_Errno();
}
break;
case S_IFLNK:
/* Delete symlink, not what it points to */
if (FileDeletion(curPath, FALSE) != 0) {
- sawFileError = TRUE;
+ fileError = Err_Errno();
}
break;
#endif
#if defined(_WIN32)
if (File_SetFilePermissions(curPath, S_IWUSR)) {
if (FileDeletion(curPath, FALSE) != 0) {
- sawFileError = TRUE;
+ fileError = Err_Errno();
}
} else {
- sawFileError = TRUE;
+ fileError = Err_Errno();
}
#else
- sawFileError = TRUE;
+ fileError = Err_Errno();
#endif
}
break;
}
} else {
- sawFileError = TRUE;
+ fileError = Err_Errno();
+ Log(LGPFX" %s: Lstat of '%s' failed, errno = %d\n",
+ __FUNCTION__, curPath, errno);
}
Posix_Free(curPath);
* Call File_DeleteEmptyDirectory() only if there is no prior error
* while deleting the children.
*/
- if (!sawFileError && !File_DeleteEmptyDirectory(pathName)) {
- sawFileError = TRUE;
+ if (fileError == 0 && !File_DeleteEmptyDirectory(pathName)) {
+ fileError = Err_Errno();
}
}
Util_FreeStringList(fileList, numFiles);
- return !sawFileError;
+ Err_SetErrno(fileError);
+
+ return fileError == 0;
}