* @brief directory api - implementation file
*/
+#include <cerrno>
#include <directory_api.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fstream>
#include <dpl/foreach.h>
#include <dpl/utils/wrt_utility.h>
+#include <dpl/errno_string.h>
+#include <installer_log.h>
namespace DirectoryApi {
bool DirectoryCopy(std::string source, std::string dest)
outfile.close();
infile.close();
- chown(destFile.c_str(), statInfo.st_uid, statInfo.st_gid);
+ errno = 0
+ if (-1 == TEMP_FAILURE_RETRY(chown(destFile.c_str(),
+ statInfo.st_uid,
+ statInfo.st_gid))) {
+ int error = errno;
+ _E("Failed to change owner [%s]", DPL::GetErrnoString(error).c_str());
+ }
}
} while (dEntryResult != NULL && return_code == 0);
closedir(dir);