source: packages/net/transmission/patches/010-opt_scrape_paused.patch @ 27020

Last change on this file since 27020 was 27020, checked in by obsy, 6 years ago

[packages] transmission: make scrape-paused-torrents optional

File size: 5.7 KB
  • libtransmission/announcer.c

    old new  
    14331433    tor = NULL; 
    14341434    while(( tor = tr_torrentNext( announcer->session, tor ))) { 
    14351435        struct tr_torrent_tiers * tt = tor->tiers; 
     1436        const bool paused = !tor->isRunning; 
     1437        const bool scrapePaused = tr_sessionGetScrapePaused( announcer->session ); 
    14361438        for( i=0; tt && i<tt->tier_count; ++i ) { 
    14371439            tr_tier * tier = &tt->tiers[i]; 
    14381440            if( tierNeedsToAnnounce( tier, now ) ) 
    14391441                tr_ptrArrayAppend( &announceMe, tier ); 
    1440             else if( tierNeedsToScrape( tier, now ) ) 
     1442            else if( tierNeedsToScrape( tier, now ) && ( !paused || scrapePaused ) ) 
    14411443                tr_ptrArrayAppend( &scrapeMe, tier ); 
    14421444        } 
    14431445    } 
     
    15051507    tr_tracker_stat * ret; 
    15061508    struct tr_torrent_tiers * tt; 
    15071509    const time_t now = tr_time( ); 
     1510    bool scrapePaused; 
    15081511 
    15091512    assert( tr_isTorrent( torrent ) ); 
    15101513    assert( tr_torrentIsLocked( torrent ) ); 
     
    15151518    *setmeTrackerCount = tt->tracker_count; 
    15161519    ret = tr_new0( tr_tracker_stat, tt->tracker_count ); 
    15171520 
     1521    scrapePaused = tr_sessionGetScrapePaused( torrent->session ); 
     1522 
    15181523    /* populate the stats */ 
    15191524    for( i=0; i<tt->tier_count; ++i ) 
    15201525    { 
     
    15591564 
    15601565                if( tier->isScraping ) 
    15611566                    st->scrapeState = TR_TRACKER_ACTIVE; 
    1562                 else if( !tier->scrapeAt ) 
     1567                else if( !tier->scrapeAt || ( !torrent->isRunning && !scrapePaused ) ) 
    15631568                    st->scrapeState = TR_TRACKER_INACTIVE; 
    15641569                else if( tier->scrapeAt > now ) 
    15651570                { 
  • libtransmission/session.c

    old new  
    359359    tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV4,        TR_DEFAULT_BIND_ADDRESS_IPV4 ); 
    360360    tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV6,        TR_DEFAULT_BIND_ADDRESS_IPV6 ); 
    361361    tr_bencDictAddBool( d, TR_PREFS_KEY_START,                    true ); 
     362    tr_bencDictAddBool( d, TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS,   true ); 
    362363    tr_bencDictAddBool( d, TR_PREFS_KEY_TRASH_ORIGINAL,           false ); 
    363364} 
    364365 
     
    424425    tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV4,        tr_address_to_string( &s->public_ipv4->addr ) ); 
    425426    tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV6,        tr_address_to_string( &s->public_ipv6->addr ) ); 
    426427    tr_bencDictAddBool( d, TR_PREFS_KEY_START,                    !tr_sessionGetPaused( s ) ); 
     428    tr_bencDictAddBool( d, TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS,   tr_sessionGetScrapePaused( s ) ); 
    427429    tr_bencDictAddBool( d, TR_PREFS_KEY_TRASH_ORIGINAL,           tr_sessionGetDeleteSource( s ) ); 
    428430} 
    429431 
     
    776778        tr_blocklistSetURL( session, str ); 
    777779    if( tr_bencDictFindBool( settings, TR_PREFS_KEY_START, &boolVal ) ) 
    778780        tr_sessionSetPaused( session, !boolVal ); 
     781    if( tr_bencDictFindBool( settings, TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS, &boolVal ) ) 
     782        tr_sessionSetScrapePaused( session, boolVal ); 
    779783    if( tr_bencDictFindBool( settings, TR_PREFS_KEY_TRASH_ORIGINAL, &boolVal) ) 
    780784        tr_sessionSetDeleteSource( session, boolVal ); 
    781785 
     
    16361640} 
    16371641 
    16381642void 
     1643tr_sessionSetScrapePaused( tr_session * session, bool enable ) 
     1644{ 
     1645    assert( tr_isSession( session ) ); 
     1646 
     1647    session->scrapePausedTorrents = enable; 
     1648} 
     1649 
     1650bool 
     1651tr_sessionGetScrapePaused( const tr_session * session ) 
     1652{ 
     1653    assert( tr_isSession( session ) ); 
     1654 
     1655    return session->scrapePausedTorrents; 
     1656} 
     1657 
     1658void 
    16391659tr_sessionSetDeleteSource( tr_session * session, bool deleteSource ) 
    16401660{ 
    16411661    assert( tr_isSession( session ) ); 
  • libtransmission/session.h

    old new  
    106106    bool                         isIdleLimited; 
    107107    bool                         isIncompleteDirEnabled; 
    108108    bool                         pauseAddedTorrent; 
     109    bool                         scrapePausedTorrents; 
    109110    bool                         deleteSourceTorrent; 
    110111 
    111112    tr_benc                      removedTorrents; 
  • libtransmission/transmission.h

    old new  
    213213#define TR_PREFS_KEY_UMASK                        "umask" 
    214214#define TR_PREFS_KEY_UPLOAD_SLOTS_PER_TORRENT     "upload-slots-per-torrent" 
    215215#define TR_PREFS_KEY_START                        "start-added-torrents" 
     216#define TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS       "scrape-paused-torrents" 
    216217#define TR_PREFS_KEY_TRASH_ORIGINAL               "trash-original-torrent-files" 
    217218 
    218219 
     
    731732void       tr_sessionSetPaused        ( tr_session *, bool isPaused ); 
    732733bool       tr_sessionGetPaused        ( const tr_session * ); 
    733734 
     735void       tr_sessionSetScrapePaused  ( tr_session *, bool enable ); 
     736bool       tr_sessionGetScrapePaused  ( const tr_session * ); 
     737 
    734738void       tr_sessionSetDeleteSource  ( tr_session *, bool deleteSource ); 
    735739bool       tr_sessionGetDeleteSource  ( const tr_session * ); 
    736740 
Note: See TracBrowser for help on using the repository browser.