mirror of
https://github.com/transmission/transmission
synced 2025-03-19 02:05:32 +00:00
add tr_ctor{Set,Get}DeleteSource()
This commit is contained in:
parent
e20a5cf3df
commit
e581d5228e
3 changed files with 73 additions and 17 deletions
|
@ -661,7 +661,7 @@ setFromCtor( tr_torrent * tor, uint64_t fields, const tr_ctor * ctor, int mode )
|
|||
|
||||
if( fields & TR_FR_RUN ) {
|
||||
uint8_t isPaused;
|
||||
if( !tr_ctorGetIsPaused( ctor, mode, &isPaused ) ) {
|
||||
if( !tr_ctorGetPaused( ctor, mode, &isPaused ) ) {
|
||||
tor->isRunning = !isPaused;
|
||||
ret |= TR_FR_RUN;
|
||||
}
|
||||
|
|
|
@ -34,9 +34,12 @@ struct tr_ctor
|
|||
{
|
||||
const tr_handle * handle;
|
||||
unsigned int saveInOurTorrentsDir : 1;
|
||||
unsigned int doDelete : 1;
|
||||
|
||||
unsigned int isSet_metainfo : 1;
|
||||
unsigned int isSet_delete : 1;
|
||||
benc_val_t metainfo;
|
||||
char * sourceFile;
|
||||
|
||||
struct optional_args optionalArgs[2];
|
||||
};
|
||||
|
@ -45,6 +48,13 @@ struct tr_ctor
|
|||
****
|
||||
***/
|
||||
|
||||
static void
|
||||
setSourceFile( tr_ctor * ctor, const char * sourceFile )
|
||||
{
|
||||
tr_free( ctor->sourceFile );
|
||||
ctor->sourceFile = tr_strdup( sourceFile );
|
||||
}
|
||||
|
||||
static void
|
||||
clearMetainfo( tr_ctor * ctor )
|
||||
{
|
||||
|
@ -52,6 +62,8 @@ clearMetainfo( tr_ctor * ctor )
|
|||
ctor->isSet_metainfo = 0;
|
||||
tr_bencFree( &ctor->metainfo );
|
||||
}
|
||||
|
||||
setSourceFile( ctor, NULL );
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -66,6 +78,12 @@ tr_ctorSetMetainfo( tr_ctor * ctor,
|
|||
return err;
|
||||
}
|
||||
|
||||
const char*
|
||||
tr_ctorGetSourceFile( const tr_ctor * ctor )
|
||||
{
|
||||
return ctor->sourceFile;
|
||||
}
|
||||
|
||||
int
|
||||
tr_ctorSetMetainfoFromFile( tr_ctor * ctor,
|
||||
const char * filename )
|
||||
|
@ -82,6 +100,8 @@ tr_ctorSetMetainfoFromFile( tr_ctor * ctor,
|
|||
err = 1;
|
||||
}
|
||||
|
||||
setSourceFile( ctor, filename );
|
||||
|
||||
/* if no `name' field was set, then set it from the filename */
|
||||
if( ctor->isSet_metainfo ) {
|
||||
benc_val_t * info = tr_bencDictFindType( &ctor->metainfo, "info", TYPE_DICT );
|
||||
|
@ -127,6 +147,32 @@ tr_ctorSetMetainfoFromHash( tr_ctor * ctor,
|
|||
****
|
||||
***/
|
||||
|
||||
void
|
||||
tr_ctorSetDeleteSource( tr_ctor * ctor,
|
||||
uint8_t deleteSource )
|
||||
{
|
||||
ctor->doDelete = deleteSource ? 1 : 0;
|
||||
ctor->isSet_delete = 1;
|
||||
}
|
||||
|
||||
int
|
||||
tr_ctorGetDeleteSource( const tr_ctor * ctor,
|
||||
uint8_t * setme )
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
if( !ctor->isSet_delete )
|
||||
err = 1;
|
||||
else if( setme )
|
||||
*setme = ctor->doDelete ? 1 : 0;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/***
|
||||
****
|
||||
***/
|
||||
|
||||
void
|
||||
tr_ctorSetSave( tr_ctor * ctor,
|
||||
int saveInOurTorrentsDir )
|
||||
|
@ -178,26 +224,26 @@ tr_ctorGetMaxConnectedPeers( const tr_ctor * ctor,
|
|||
int err = 0;
|
||||
const struct optional_args * args = &ctor->optionalArgs[mode];
|
||||
|
||||
if( args->isSet_connected )
|
||||
*setmeCount = args->maxConnectedPeers;
|
||||
else
|
||||
if( !args->isSet_connected )
|
||||
err = 1;
|
||||
else if( setmeCount )
|
||||
*setmeCount = args->maxConnectedPeers;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
tr_ctorGetIsPaused( const tr_ctor * ctor,
|
||||
tr_ctorMode mode,
|
||||
uint8_t * setmeIsPaused )
|
||||
tr_ctorGetPaused( const tr_ctor * ctor,
|
||||
tr_ctorMode mode,
|
||||
uint8_t * setmeIsPaused )
|
||||
{
|
||||
int err = 0;
|
||||
const struct optional_args * args = &ctor->optionalArgs[mode];
|
||||
|
||||
if( args->isSet_paused )
|
||||
*setmeIsPaused = args->isPaused ? 1 : 0;
|
||||
else
|
||||
if( !args->isSet_paused )
|
||||
err = 1;
|
||||
else if( setmeIsPaused )
|
||||
*setmeIsPaused = args->isPaused ? 1 : 0;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@ -210,10 +256,10 @@ tr_ctorGetDestination( const tr_ctor * ctor,
|
|||
int err = 0;
|
||||
const struct optional_args * args = &ctor->optionalArgs[mode];
|
||||
|
||||
if( args->isSet_destination )
|
||||
*setmeDestination = args->destination;
|
||||
else
|
||||
if( !args->isSet_destination )
|
||||
err = 1;
|
||||
else if( setmeDestination )
|
||||
*setmeDestination = args->destination;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@ -224,10 +270,10 @@ tr_ctorGetMetainfo( const tr_ctor * ctor,
|
|||
{
|
||||
int err = 0;
|
||||
|
||||
if( ctor->isSet_metainfo )
|
||||
*setme = &ctor->metainfo;
|
||||
else
|
||||
if( !ctor->isSet_metainfo )
|
||||
err = 1;
|
||||
else if( setme )
|
||||
*setme = &ctor->metainfo;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -354,6 +354,9 @@ void tr_ctorFree ( tr_ctor * ctor );
|
|||
void tr_ctorSetSave ( tr_ctor * ctor,
|
||||
int saveMetadataInOurTorrentsDir );
|
||||
|
||||
void tr_ctorSetDeleteSource ( tr_ctor * ctor,
|
||||
uint8_t doDelete );
|
||||
|
||||
int tr_ctorSetMetainfo ( tr_ctor * ctor,
|
||||
const uint8_t * metainfo,
|
||||
size_t len );
|
||||
|
@ -380,7 +383,7 @@ int tr_ctorGetMaxConnectedPeers ( const tr_ctor * ctor,
|
|||
tr_ctorMode mode,
|
||||
uint16_t * setmeCount );
|
||||
|
||||
int tr_ctorGetIsPaused ( const tr_ctor * ctor,
|
||||
int tr_ctorGetPaused ( const tr_ctor * ctor,
|
||||
tr_ctorMode mode,
|
||||
uint8_t * setmeIsPaused );
|
||||
|
||||
|
@ -392,6 +395,13 @@ int tr_ctorGetMetainfo ( const tr_ctor * ctor,
|
|||
const struct benc_val_s ** setme );
|
||||
|
||||
int tr_ctorGetSave ( const tr_ctor * ctor );
|
||||
|
||||
int tr_ctorGetDeleteSource ( const tr_ctor * ctor,
|
||||
uint8_t * setmeDoDelete );
|
||||
|
||||
/* returns NULL if tr_ctorSetMetainfoFromFile() wasn't used */
|
||||
const char* tr_ctorGetSourceFile ( const tr_ctor * ctor );
|
||||
|
||||
|
||||
typedef struct tr_info tr_info;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue