forked from premiere/premiere-libtorrent
fixes to copy_file() to pass in permissions to open()
This commit is contained in:
parent
70a83220ab
commit
d2680e01d2
14
src/file.cpp
14
src/file.cpp
|
@ -225,13 +225,21 @@ namespace libtorrent
|
||||||
ec.assign(errno, boost::system::get_generic_category());
|
ec.assign(errno, boost::system::get_generic_category());
|
||||||
copyfile_state_free(state);
|
copyfile_state_free(state);
|
||||||
#else
|
#else
|
||||||
int infd = open(inf.c_str(), O_RDONLY);
|
int infd = ::open(inf.c_str(), O_RDONLY);
|
||||||
if (infd < 0)
|
if (infd < 0)
|
||||||
{
|
{
|
||||||
ec.assign(errno, boost::system::get_generic_category());
|
ec.assign(errno, boost::system::get_generic_category());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int outfd = open(newf.c_str(), O_WRONLY | O_CREAT);
|
|
||||||
|
// rely on default umask to filter x and w permissions
|
||||||
|
// for group and others
|
||||||
|
// TODO: copy the mode from the source file
|
||||||
|
int permissions = S_IRUSR | S_IWUSR
|
||||||
|
| S_IRGRP | S_IWGRP
|
||||||
|
| S_IROTH | S_IWOTH;
|
||||||
|
|
||||||
|
int outfd = ::open(newf.c_str(), O_WRONLY | O_CREAT, permissions);
|
||||||
if (outfd < 0)
|
if (outfd < 0)
|
||||||
{
|
{
|
||||||
close(infd);
|
close(infd);
|
||||||
|
@ -408,7 +416,7 @@ namespace libtorrent
|
||||||
#endif // UNICODE
|
#endif // UNICODE
|
||||||
#else
|
#else
|
||||||
char cwd[TORRENT_MAX_PATH];
|
char cwd[TORRENT_MAX_PATH];
|
||||||
getcwd(cwd, sizeof(cwd));
|
if (getcwd(cwd, sizeof(cwd)) == 0) return "/";
|
||||||
#endif
|
#endif
|
||||||
#if defined TORRENT_WINDOWS && defined UNICODE
|
#if defined TORRENT_WINDOWS && defined UNICODE
|
||||||
return convert_from_wstring(cwd);
|
return convert_from_wstring(cwd);
|
||||||
|
|
Loading…
Reference in New Issue