1 Index: transmission-2.31/libtransmission/announcer.c
2 ===================================================================
3 --- transmission-2.31.orig/libtransmission/announcer.c 2011-05-23 13:34:54.000000000 +0200
4 +++ transmission-2.31/libtransmission/announcer.c 2011-05-23 13:48:03.000000000 +0200
5 @@ -1433,11 +1433,13 @@
7 while(( tor = tr_torrentNext( announcer->session, tor ))) {
8 struct tr_torrent_tiers * tt = tor->tiers;
9 + const bool paused = !tor->isRunning;
10 + const bool scrapePaused = tr_sessionGetScrapePaused( announcer->session );
11 for( i=0; tt && i<tt->tier_count; ++i ) {
12 tr_tier * tier = &tt->tiers[i];
13 if( tierNeedsToAnnounce( tier, now ) )
14 tr_ptrArrayAppend( &announceMe, tier );
15 - else if( tierNeedsToScrape( tier, now ) )
16 + else if( tierNeedsToScrape( tier, now ) && ( !paused || scrapePaused ) )
17 tr_ptrArrayAppend( &scrapeMe, tier );
21 tr_tracker_stat * ret;
22 struct tr_torrent_tiers * tt;
23 const time_t now = tr_time( );
26 assert( tr_isTorrent( torrent ) );
27 assert( tr_torrentIsLocked( torrent ) );
29 *setmeTrackerCount = tt->tracker_count;
30 ret = tr_new0( tr_tracker_stat, tt->tracker_count );
32 + scrapePaused = tr_sessionGetScrapePaused( torrent->session );
34 /* populate the stats */
35 for( i=0; i<tt->tier_count; ++i )
39 if( tier->isScraping )
40 st->scrapeState = TR_TRACKER_ACTIVE;
41 - else if( !tier->scrapeAt )
42 + else if( !tier->scrapeAt || ( !torrent->isRunning && !scrapePaused ) )
43 st->scrapeState = TR_TRACKER_INACTIVE;
44 else if( tier->scrapeAt > now )
46 Index: transmission-2.31/libtransmission/session.c
47 ===================================================================
48 --- transmission-2.31.orig/libtransmission/session.c 2011-05-23 13:41:05.000000000 +0200
49 +++ transmission-2.31/libtransmission/session.c 2011-05-23 13:50:23.000000000 +0200
51 tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV4, TR_DEFAULT_BIND_ADDRESS_IPV4 );
52 tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV6, TR_DEFAULT_BIND_ADDRESS_IPV6 );
53 tr_bencDictAddBool( d, TR_PREFS_KEY_START, true );
54 + tr_bencDictAddBool( d, TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS, true );
55 tr_bencDictAddBool( d, TR_PREFS_KEY_TRASH_ORIGINAL, false );
59 tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV4, tr_address_to_string( &s->public_ipv4->addr ) );
60 tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV6, tr_address_to_string( &s->public_ipv6->addr ) );
61 tr_bencDictAddBool( d, TR_PREFS_KEY_START, !tr_sessionGetPaused( s ) );
62 + tr_bencDictAddBool( d, TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS, tr_sessionGetScrapePaused( s ) );
63 tr_bencDictAddBool( d, TR_PREFS_KEY_TRASH_ORIGINAL, tr_sessionGetDeleteSource( s ) );
67 tr_blocklistSetURL( session, str );
68 if( tr_bencDictFindBool( settings, TR_PREFS_KEY_START, &boolVal ) )
69 tr_sessionSetPaused( session, !boolVal );
70 + if( tr_bencDictFindBool( settings, TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS, &boolVal ) )
71 + tr_sessionSetScrapePaused( session, boolVal );
72 if( tr_bencDictFindBool( settings, TR_PREFS_KEY_TRASH_ORIGINAL, &boolVal) )
73 tr_sessionSetDeleteSource( session, boolVal );
75 @@ -1636,6 +1640,22 @@
79 +tr_sessionSetScrapePaused( tr_session * session, bool enable )
81 + assert( tr_isSession( session ) );
83 + session->scrapePausedTorrents = enable;
87 +tr_sessionGetScrapePaused( const tr_session * session )
89 + assert( tr_isSession( session ) );
91 + return session->scrapePausedTorrents;
95 tr_sessionSetDeleteSource( tr_session * session, bool deleteSource )
97 assert( tr_isSession( session ) );
98 Index: transmission-2.31/libtransmission/session.h
99 ===================================================================
100 --- transmission-2.31.orig/libtransmission/session.h 2011-05-23 13:45:30.000000000 +0200
101 +++ transmission-2.31/libtransmission/session.h 2011-05-23 13:46:12.000000000 +0200
104 bool isIncompleteDirEnabled;
105 bool pauseAddedTorrent;
106 + bool scrapePausedTorrents;
107 bool deleteSourceTorrent;
109 tr_benc removedTorrents;
110 Index: transmission-2.31/libtransmission/transmission.h
111 ===================================================================
112 --- transmission-2.31.orig/libtransmission/transmission.h 2011-05-23 13:48:11.000000000 +0200
113 +++ transmission-2.31/libtransmission/transmission.h 2011-05-23 13:49:15.000000000 +0200
115 #define TR_PREFS_KEY_UMASK "umask"
116 #define TR_PREFS_KEY_UPLOAD_SLOTS_PER_TORRENT "upload-slots-per-torrent"
117 #define TR_PREFS_KEY_START "start-added-torrents"
118 +#define TR_PREFS_KEY_SCRAPE_PAUSED_TORRENTS "scrape-paused-torrents"
119 #define TR_PREFS_KEY_TRASH_ORIGINAL "trash-original-torrent-files"
123 void tr_sessionSetPaused ( tr_session *, bool isPaused );
124 bool tr_sessionGetPaused ( const tr_session * );
126 +void tr_sessionSetScrapePaused ( tr_session *, bool enable );
127 +bool tr_sessionGetScrapePaused ( const tr_session * );
129 void tr_sessionSetDeleteSource ( tr_session *, bool deleteSource );
130 bool tr_sessionGetDeleteSource ( const tr_session * );