fix permissions issue reported by Jaybird in http://transmission.m0k.org/forum/viewtopic.php?t=2944
This commit is contained in:
parent
d140cd0af6
commit
a2609ae2a7
|
@ -86,11 +86,15 @@ myDebug( const char * file, int line, const char * fmt, ... )
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
TR_MAX_SOCKETS = 512,
|
TR_MAX_SOCKETS = 320,
|
||||||
|
|
||||||
TR_MAX_OPEN_FILES = 16, /* real files, not sockets */
|
TR_MAX_OPEN_FILES = 8, /* real files, not sockets */
|
||||||
|
|
||||||
TR_RESERVED_FDS = 16 /* sockets reserved for tracker connections */
|
TR_RESERVED_FDS = 16, /* sockets reserved for tracker connections */
|
||||||
|
|
||||||
|
TR_MKDIR_PERM = 0777,
|
||||||
|
|
||||||
|
TR_CREAT_PERM = 0666
|
||||||
};
|
};
|
||||||
|
|
||||||
struct tr_openfile
|
struct tr_openfile
|
||||||
|
@ -131,7 +135,7 @@ TrOpenFile( int i, const char * filename, int write )
|
||||||
/* create subfolders, if any */
|
/* create subfolders, if any */
|
||||||
if( write ) {
|
if( write ) {
|
||||||
char * tmp = tr_strdup( filename );
|
char * tmp = tr_strdup( filename );
|
||||||
const int val = tr_mkdirp( dirname(tmp), 0700 );
|
const int val = tr_mkdirp( dirname(tmp), TR_MKDIR_PERM );
|
||||||
tr_free( tmp );
|
tr_free( tmp );
|
||||||
if( val )
|
if( val )
|
||||||
return tr_ioErrorFromErrno( );
|
return tr_ioErrorFromErrno( );
|
||||||
|
@ -146,7 +150,7 @@ TrOpenFile( int i, const char * filename, int write )
|
||||||
flags |= O_BINARY;
|
flags |= O_BINARY;
|
||||||
#endif
|
#endif
|
||||||
errno = 0;
|
errno = 0;
|
||||||
file->fd = open( filename, flags, 0600 );
|
file->fd = open( filename, flags, TR_CREAT_PERM );
|
||||||
if( file->fd < 0 ) {
|
if( file->fd < 0 ) {
|
||||||
if( errno ) {
|
if( errno ) {
|
||||||
tr_err( "Couldn't open '%s': %s", filename, strerror(errno) );
|
tr_err( "Couldn't open '%s': %s", filename, strerror(errno) );
|
||||||
|
|
Loading…
Reference in New Issue