Add umask and rename compatibility wrappers for Windows

umask() doesn't exist on Windows and is thus a no-op.

rename() only works if the destination doesn't already exist,
so we must unlink before renaming.
This commit is contained in:
Cyril Cleaud
2014-06-26 22:59:17 -07:00
committed by Andrew Ayer
parent dcea03f0d7
commit df2b472cd9
5 changed files with 32 additions and 6 deletions

View File

@@ -765,7 +765,7 @@ int migrate_key (int argc, char** argv)
return 1;
}
if (rename(new_key_file_name.c_str(), key_file_name) == -1) {
if (util_rename(new_key_file_name.c_str(), key_file_name) == -1) {
std::clog << "Error: " << key_file_name << ": " << strerror(errno) << std::endl;
unlink(new_key_file_name.c_str());
return 1;