mirror of
https://github.com/transmission/transmission
synced 2025-03-08 21:04:25 +00:00
(trunk libT) #2234: add support for setting the file creation umask
This commit is contained in:
parent
1e6902a328
commit
5258ac0a83
3 changed files with 13 additions and 2 deletions
|
@ -15,8 +15,8 @@
|
|||
#include <string.h> /* memcpy */
|
||||
|
||||
#include <signal.h>
|
||||
#include <sys/types.h> /* stat */
|
||||
#include <sys/stat.h> /* stat */
|
||||
#include <sys/types.h> /* stat(), umask() */
|
||||
#include <sys/stat.h> /* stat(), umask() */
|
||||
#include <unistd.h> /* stat */
|
||||
#include <dirent.h> /* opendir */
|
||||
|
||||
|
@ -392,6 +392,7 @@ tr_sessionGetDefaultSettings( tr_benc * d )
|
|||
tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_TIME_DAY, TR_SCHED_ALL );
|
||||
tr_bencDictAddInt ( d, TR_PREFS_KEY_USPEED, 100 );
|
||||
tr_bencDictAddBool( d, TR_PREFS_KEY_USPEED_ENABLED, FALSE );
|
||||
tr_bencDictAddInt ( d, TR_PREFS_KEY_UMASK, 022 );
|
||||
tr_bencDictAddInt ( d, TR_PREFS_KEY_UPLOAD_SLOTS_PER_TORRENT, 10 );
|
||||
tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV4, TR_DEFAULT_BIND_ADDRESS_IPV4 );
|
||||
tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV6, TR_DEFAULT_BIND_ADDRESS_IPV6 );
|
||||
|
@ -448,6 +449,7 @@ tr_sessionGetSettings( tr_session * s, struct tr_benc * d )
|
|||
tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_TIME_DAY, tr_sessionGetAltSpeedDay( s ) );
|
||||
tr_bencDictAddInt ( d, TR_PREFS_KEY_USPEED, tr_sessionGetSpeedLimit( s, TR_UP ) );
|
||||
tr_bencDictAddBool( d, TR_PREFS_KEY_USPEED_ENABLED, tr_sessionIsSpeedLimited( s, TR_UP ) );
|
||||
tr_bencDictAddInt ( d, TR_PREFS_KEY_UMASK, s->umask );
|
||||
tr_bencDictAddInt ( d, TR_PREFS_KEY_UPLOAD_SLOTS_PER_TORRENT, s->uploadSlotsPerTorrent );
|
||||
tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV4, tr_ntop_non_ts( &s->public_ipv4->addr ) );
|
||||
tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV6, tr_ntop_non_ts( &s->public_ipv6->addr ) );
|
||||
|
@ -610,6 +612,12 @@ tr_sessionInitImpl( void * vdata )
|
|||
signal( SIGPIPE, SIG_IGN );
|
||||
#endif
|
||||
|
||||
/* set the session's file mode creation mask (umask) to session->umask & 0777 */
|
||||
found = tr_bencDictFindInt( &settings, TR_PREFS_KEY_UMASK, &i );
|
||||
assert( found );
|
||||
session->umask = (mode_t)i;
|
||||
umask( session->umask );
|
||||
|
||||
found = tr_bencDictFindInt( &settings, TR_PREFS_KEY_PEER_LIMIT_TORRENT, &i );
|
||||
assert( found );
|
||||
session->peerLimitPerTorrent = i;
|
||||
|
|
|
@ -54,6 +54,8 @@ struct tr_session
|
|||
|
||||
tr_benc removedTorrents;
|
||||
|
||||
int umask;
|
||||
|
||||
int speedLimit[2];
|
||||
tr_bool speedLimitEnabled[2];
|
||||
|
||||
|
|
|
@ -202,6 +202,7 @@ const char* tr_getDefaultDownloadDir( void );
|
|||
#define TR_PREFS_KEY_DSPEED_ENABLED "speed-limit-down-enabled"
|
||||
#define TR_PREFS_KEY_USPEED_ENABLED "speed-limit-up-enabled"
|
||||
#define TR_PREFS_KEY_USPEED "speed-limit-up"
|
||||
#define TR_PREFS_KEY_UMASK "umask"
|
||||
#define TR_PREFS_KEY_UPLOAD_SLOTS_PER_TORRENT "upload-slots-per-torrent"
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue