]> granicus.if.org Git - transmission/commitdiff
more cleanup work:
authorCharles Kerr <charles@transmissionbt.com>
Thu, 22 May 2008 23:11:21 +0000 (23:11 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Thu, 22 May 2008 23:11:21 +0000 (23:11 +0000)
(1) kill the pointless "tr_tracker_stat" struct.
(2) kill the unused "tr_torrentRemoveSaved()" function.
(3) kill the redundant "nextManualAnnounceTime" variable.
(4) make the TR_ERROR_IS_* macros private.

gtk/details.c
libtransmission/rpc.c
libtransmission/session.h
libtransmission/torrent.c
libtransmission/tracker.c
libtransmission/tracker.h
libtransmission/transmission.h
macosx/Torrent.m

index e8afd24ecfe0a94b3f3fde409984f098ac1f1602..d181e360a31ddca2bbf7e55ca6fb9e68ebf9627c 100644 (file)
@@ -1213,29 +1213,29 @@ refresh_tracker( GtkWidget * w )
     const tr_stat * torStat = tr_torrent_stat( page->gtor );
 
     l = page->last_scrape_time_lb;
-    t = torStat->trackerStat.lastScrapeTime;
+    t = torStat->lastScrapeTime;
     refresh_time_lb( l, t );
 
     l = page->last_scrape_response_lb;
-    gtk_label_set_text( GTK_LABEL( l ), torStat->trackerStat.scrapeResponse );
+    gtk_label_set_text( GTK_LABEL( l ), torStat->scrapeResponse );
 
     l = page->next_scrape_countdown_lb;
-    t = torStat->trackerStat.nextScrapeTime;
+    t = torStat->nextScrapeTime;
     refresh_countdown_lb( l, t );
 
     l = page->last_announce_time_lb;
-    t = torStat->trackerStat.lastAnnounceTime;
+    t = torStat->lastAnnounceTime;
     refresh_time_lb( l, t );
 
     l = page->last_announce_response_lb;
-    gtk_label_set_text( GTK_LABEL( l ), torStat->trackerStat.announceResponse );
+    gtk_label_set_text( GTK_LABEL( l ), torStat->announceResponse );
 
     l = page->next_announce_countdown_lb;
-    t = torStat->trackerStat.nextAnnounceTime;
+    t = torStat->nextAnnounceTime;
     refresh_countdown_lb( l, t );
 
     l = page->manual_announce_countdown_lb;
-    t = torStat->trackerStat.nextManualAnnounceTime;
+    t = torStat->manualAnnounceTime;
     refresh_countdown_lb( l, t );
 }
 
index 03a796feb37ef9c4ce7d8331b6559bc4f0676323..e100d23521b0be88b02e83851d559b2e6be9838c 100644 (file)
@@ -166,11 +166,11 @@ torrentStatus( tr_handle * handle, tr_benc * args_in, tr_benc * args_out )
         tr_torrent * tor = torrents[i];
         const tr_stat * st = tr_torrentStat( tor );
         const int * f = st->peersFrom;
-        const struct tr_tracker_stat * s = &st->trackerStat;
-        tr_benc * d = tr_bencListAddDict( list, 35 );
+        tr_benc * d = tr_bencListAddDict( list, 40 );
         tr_benc * t;
 
         tr_bencDictAddInt( d, "activityDate", st->activityDate );
+        tr_bencDictAddStr( d, "announceResponse", st->announceResponse );
         tr_bencDictAddStr( d, "announceURL", st->announceURL );
         tr_bencDictAddInt( d, "completedFromTracker", st->completedFromTracker );
         tr_bencDictAddInt( d, "corruptEver", st->corruptEver );
@@ -182,9 +182,13 @@ torrentStatus( tr_handle * handle, tr_benc * args_in, tr_benc * args_out )
         tr_bencDictAddInt( d, "haveUnchecked", st->haveUnchecked );
         tr_bencDictAddInt( d, "haveValid", st->haveValid );
         tr_bencDictAddInt( d, "id", st->id );
+        tr_bencDictAddInt( d, "lastAnnounceTime", st->lastAnnounceTime );
+        tr_bencDictAddInt( d, "lastScrapeTime", st->lastScrapeTime );
         tr_bencDictAddInt( d, "leechers", st->leechers );
         tr_bencDictAddInt( d, "leftUntilDone", st->leftUntilDone );
         tr_bencDictAddInt( d, "manualAnnounceTime", st->manualAnnounceTime );
+        tr_bencDictAddInt( d, "nextAnnounceTime", st->nextAnnounceTime );
+        tr_bencDictAddInt( d, "nextScrapeTime", st->nextScrapeTime );
         tr_bencDictAddInt( d, "peersConnected", st->peersConnected );
         t = tr_bencDictAddDict( d, "peersFrom", 4 );
             tr_bencDictAddInt( t, "cache",    f[TR_PEER_FROM_CACHE] );
@@ -200,20 +204,13 @@ torrentStatus( tr_handle * handle, tr_benc * args_in, tr_benc * args_out )
         tr_bencDictAddDouble( d, "rateUpload", st->rateUpload );
         tr_bencDictAddDouble( d, "ratio", st->ratio );
         tr_bencDictAddDouble( d, "recheckProgress", st->recheckProgress );
+        tr_bencDictAddStr( d, "scrapeResponse", st->scrapeResponse );
         tr_bencDictAddStr( d, "scrapeURL", st->scrapeURL );
         tr_bencDictAddInt( d, "seeders", st->seeders );
         tr_bencDictAddInt( d, "sizeWhenDone", st->sizeWhenDone );
         tr_bencDictAddInt( d, "startDate", st->startDate );
         tr_bencDictAddInt( d, "status", st->status );
         tr_bencDictAddDouble( d, "swarmSpeed", st->swarmSpeed );
-        t = tr_bencDictAddDict( d, "trackerStat", 7 );
-            tr_bencDictAddStr( t, "announceResponse", s->announceResponse );
-            tr_bencDictAddInt( t, "lastAnnounceTime", s->lastAnnounceTime );
-            tr_bencDictAddInt( t, "lastScrapeTime", s->lastScrapeTime );
-            tr_bencDictAddInt( t, "nextAnnounceTime", s->nextAnnounceTime );
-            tr_bencDictAddInt( t, "nextScrapeTime", s->nextScrapeTime );
-            tr_bencDictAddInt( t, "nextScrapeTime", s->nextScrapeTime );
-            tr_bencDictAddStr( t, "scrapeResponse", s->scrapeResponse );
         tr_bencDictAddInt( d, "uploadedEver", st->uploadedEver );
     }
 
index 36e9a19c612aabf9453c4d741e154c3018dc037d..53ea8fccfacd6dd18985fe0109bb38173cdd1804 100644 (file)
@@ -106,4 +106,9 @@ void tr_globalLock       ( tr_session * );
 void tr_globalUnlock     ( tr_session * );
 int  tr_globalIsLocked   ( const tr_session * );
 
+
+#define TR_ERROR_IS_IO(e) (TR_ERROR_IO_PARENT<=(e) && (e)<=TR_ERROR_IO_OTHER)
+#define TR_ERROR_IS_TC(e) (TR_ERROR_TC_ERROR<=(e) && (e)<=TR_ERROR_TC_WARNING)
+
+
 #endif
index 4fcb1d22439b0c863b4a021dc184337999733e2b..861ed57f16178556d49bc8aa2024df8f56f7ad2a 100644 (file)
@@ -706,11 +706,10 @@ tr_torrentStat( tr_torrent * tor )
     ti = tr_trackerGetAddress( tor->tracker );
     s->announceURL = ti ? ti->announce : NULL;
     s->scrapeURL   = ti ? ti->scrape   : NULL;
-    tr_trackerStat( tc, &s->trackerStat );
+    tr_trackerStat( tc, s );
     tr_trackerGetCounts( tc, &s->completedFromTracker,
                              &s->leechers, 
                              &s->seeders );
-
     tr_peerMgrTorrentStats( tor->handle->peerMgr,
                             tor->info.hash,
                             &s->peersKnown,
@@ -719,8 +718,6 @@ tr_torrentStat( tr_torrent * tor )
                             &s->peersGettingFromUs,
                              s->peersFrom );
 
-    s->manualAnnounceTime = tr_trackerGetManualAnnounceTime( tor->tracker );
-
     s->percentComplete = tr_cpPercentComplete ( tor->completion );
 
     s->percentDone = tr_cpPercentDone( tor->completion );
@@ -913,14 +910,6 @@ tr_torrentSetHasPiece( tr_torrent * tor, tr_piece_index_t pieceIndex, int has )
     tr_torrentUnlock( tor );
 }
 
-void
-tr_torrentRemoveSaved( tr_torrent * tor )
-{
-    tr_metainfoRemoveSaved( tor->handle, &tor->info );
-
-    tr_torrentRemoveResume( tor );
-}
-
 /***
 ****
 ***/
@@ -1113,8 +1102,10 @@ closeTorrent( void * vtor )
     tr_torrentSaveResume( tor );
     tor->isRunning = 0;
     stopTorrent( tor );
-    if( tor->isDeleting )
-        tr_torrentRemoveSaved( tor );
+    if( tor->isDeleting ) {
+        tr_metainfoRemoveSaved( tor->handle, &tor->info );
+        tr_torrentRemoveResume( tor );
+    }
     freeTorrent( tor );
 }
 
index d6799b824e5c50eeda94fcd15f57877179facaac..ced5b9ab5502add854c02a697eecf708e5978000 100644 (file)
@@ -986,8 +986,8 @@ tr_trackerChangeMyPort( tr_tracker * t )
 }
 
 void
-tr_trackerStat( const tr_tracker       * t,
-                struct tr_tracker_stat * setme)
+tr_trackerStat( const tr_tracker * t,
+                struct tr_stat   * setme)
 {
     assert( t );
     assert( setme );
@@ -996,7 +996,7 @@ tr_trackerStat( const tr_tracker       * t,
     setme->nextScrapeTime = t->scrapeAt;
     setme->lastAnnounceTime = t->lastAnnounceTime;
     setme->nextAnnounceTime = t->reannounceAt;
-    setme->nextManualAnnounceTime = t->manualAnnounceAllowedAt;
+    setme->manualAnnounceTime = t->manualAnnounceAllowedAt;
 
     if( t->lastScrapeResponse == -1 ) /* never been scraped */
         *setme->scrapeResponse = '\0';
index 94d1d502582230ae6c735595ff4e419a03786e32..3bf7a666f60d9315e92c876482aa25f804383591 100644 (file)
@@ -72,7 +72,7 @@ void              tr_trackerUnsubscribe     ( struct tr_tracker * tracker,
 ***/
 
 void tr_trackerStat                         ( const tr_tracker       * tracker,
-                                              struct tr_tracker_stat * setme);
+                                              struct tr_stat         * setme);
 
 void tr_trackerStart                        ( struct tr_tracker * );
 
index 2aa044a3986a8adef04096cc791a2406e39a246f..2a56830a9f1be3e3dbecb9ab2143f9958070d720 100644 (file)
@@ -88,29 +88,32 @@ typedef struct tr_ctor tr_ctor;
  *                  subdirectories will be found, such as "torrents",
  *                  "resume", and "blocklists".
  *                  TR_DEFAULT_CONFIG_DIR can be used as a default.
- * @param downloadDir the default directory to save torrents that are added.
- *                    This can be changed per-session with tr_sessionSetDownloadDir()
- *                    and per-torrent with tr_ctorSetDownloadDir().
- * @param tag currently only used for locating legacy versions of
- *            fastresume files.  valid tags: beos, cli, daemon, gtk, macos, wx
+ * @param downloadDir The default directory to save added torrents.
+ *                    This can be changed per-session with
+ *                    tr_sessionSetDownloadDir() and per-torrent with
+ *                    tr_ctorSetDownloadDir().
+ * @param tag   Obsolete.  Only used now for locating legacy fastresume files.
+ *              Valid tags: beos, cli, daemon, gtk, macos, wx
  * @param isPexEnabled whether or not PEX is allowed for non-private torrents.
- *                     This can be changed per-session  with tr_sessionSetPexEnabled().
- *                     TR_DEFAULT_PEX_ENABLED can be used as a default.
- * @param isPortForwardingEnabled If true, libtransmission will attempt to find a local
- *                                UPnP-enabled or NATPMP-enabled router and forward a
- *                                port from there to the local machine.  This is so that
- *                                remote peers can initiate connections with us.
- *                                TR_DEFAULT_PORT_FORWARDING_ENABLED can be used as a default.
- * @param publicPort Port number to open for listening to incoming peer connections.
- *                   TR_DEFAULT_PORT can be used as a default.
+ *                     This can be changed per-session with
+ *                     tr_sessionSetPexEnabled().
+ *                     TR_DEFAULT_PEX_ENABLED is the default.
+ * @param isPortForwardingEnabled If true, libtransmission will attempt
+ *                       to find a local UPnP-enabled or NATPMP-enabled
+ *                       router and forward a port from there to the local
+ *                       machine.  This is so remote peers can initiate
+ *                       connections with us.
+ *                       TR_DEFAULT_PORT_FORWARDING_ENABLED is the default.
+ * @param publicPort Port number to open for incoming peer connections.
+ *                   TR_DEFAULT_PORT is the default.
  * @param encryptionMode must be one of TR_PLAINTEXT_PREFERRED,
  *                       TR_ENCRYPTION_PREFERRED, or TR_ENCRYPTION_REQUIRED.
  * @param isUploadLimitEnabled If true, libtransmission will limit the entire
- *                             session's upload speed based on `uploadLimit'.
+ *                             session's upload speed from `uploadLimit'.
  * @param uploadLimit The speed limit to use for the entire session when
  *                    isUploadLimitEnabled is true.
  * @param isDownloadLimitEnabled If true, libtransmission will limit the entire
- *                               session's download speed based on `downloadLimit'.
+ *                               session's download speed from `downloadLimit'.
  * @param downloadLimit The speed limit to use for the entire session when
  *                      isDownloadLimitEnabled is true.
  * @param peerLimit The maximum number of peer connections allowed in a session.
@@ -155,7 +158,14 @@ tr_handle * tr_sessionInit( const char * configDir,
 void tr_sessionClose( tr_handle * );
 
 /**
- * Set the per-session default download folder for torrents that haven't been added yet.
+ * Returns the configuration directory passed into tr_sessionInitFull().
+ * This is where transmission stores its .torrent files, .resume files,
+ * blocklists, etc.
+ */
+const char * tr_sessionGetConfigDir( const tr_handle * );
+
+/**
+ * Set the per-session default download folder for new torrents.
  * @see tr_sessionInitFull()
  * @see tr_ctorSetDownloadDir()
  */
@@ -173,10 +183,10 @@ int tr_sessionGetRPCPort( const tr_handle * );
 
 /**
  * Specify access control list (ACL). ACL is a comma separated list
- * of IP subnets, each subnet is prepended by ’-’ or ’+’ sign. Plus
- * means allow, minus means deny. If subnet mask is omitted, like
- * "-1.2.3.4", then it means single IP address. Mask may vary from 0
- * to 32 inclusive.
+ * of IP subnets, each subnet is prepended by a '-' or '+' sign.
+ * Plus means allow, minus means deny. If the subnet mask is omitted,
+ * like * "-1.2.3.4", it means a single IP address. The mask may vary
+ * from 0 to 32 inclusive.
  *
  * The default string is "+127.0.0.1"
  *
@@ -258,14 +268,6 @@ tr_encryption_mode tr_sessionGetEncryption( tr_handle * handle );
 
 void tr_sessionSetEncryption( tr_handle * handle, tr_encryption_mode mode );
 
-/***********************************************************************
- * tr_getPrefsDirectory
- ***********************************************************************
- * Returns the full path to a directory which can be used to store
- * preferences. The string belongs to libtransmission, do not free it.
- **********************************************************************/
-const char * tr_sessionGetConfigDir( const tr_handle * );
-
 
 /***********************************************************************
 ** Incoming Peer Connections Port
@@ -485,26 +487,39 @@ enum
 
 typedef int8_t tr_priority_t;
 
-/* set a batch of files to a particular priority.
- * priority must be one of TR_PRI_NORMAL, _HIGH, or _LOW */
+/**
+ * Set a batch of files to a particular priority.
+ * Priority must be one of TR_PRI_NORMAL, _HIGH, or _LOW
+ */
 void tr_torrentSetFilePriorities( tr_torrent        * tor,
                                   tr_file_index_t   * files,
                                   tr_file_index_t     fileCount,
                                   tr_priority_t       priority );
 
-/* returns a malloc()ed array of tor->info.fileCount items,
- * each holding a value of TR_PRI_NORMAL, _HIGH, or _LOW.
-   free the array when done. */
+/**
+ * Get this torrent's file priorities.
+ *
+ * @return A malloc()ed array of tor->info.fileCount items,
+ *         each holding a value of TR_PRI_NORMAL, _HIGH, or _LOW.
+ *         The caller must free() the array when done.
+ */
 tr_priority_t* tr_torrentGetFilePriorities( const tr_torrent * );
 
-/* single-file form of tr_torrentGetFilePriorities.
- * returns one of TR_PRI_NORMAL, _HIGH, or _LOW. */
-tr_priority_t tr_torrentGetFilePriority( const tr_torrent *, tr_file_index_t file );
+/**
+ * Single-file form of tr_torrentGetFilePriorities.
+ * returns one of TR_PRI_NORMAL, _HIGH, or _LOW.
+ */
+tr_priority_t tr_torrentGetFilePriority( const tr_torrent *,
+                                         tr_file_index_t file );
 
-/* returns true if the file's `download' flag is set */
+/**
+ * Returns true if the file's `download' flag is set.
+ */
 int tr_torrentGetFileDL( const tr_torrent *, tr_file_index_t file );
 
-/* set a batch of files to be downloaded or not. */
+/**
+ * Set a batch of files to be downloaded or not.
+ */
 void tr_torrentSetFileDLs ( tr_torrent      * tor,
                             tr_file_index_t * files,
                             tr_file_index_t   fileCount,
@@ -773,14 +788,6 @@ void tr_torrentAvailability( const tr_torrent *, int8_t * tab, int size );
 
 void tr_torrentAmountFinished( const tr_torrent * tor, float * tab, int size );
 
-/***********************************************************************
- * tr_torrentRemoveSaved
- ***********************************************************************
- * delete's Transmission's copy of the torrent's metadata from
- * tr_getTorrentDir().
- **********************************************************************/
-void tr_torrentRemoveSaved( tr_torrent * );
-
 void tr_torrentVerify( tr_torrent * );
 
 /**
@@ -904,47 +911,6 @@ typedef enum tr_errno
 }
 tr_errno;
 
-#define TR_ERROR_IS_IO(e) (TR_ERROR_IO_PARENT<=(e) && (e)<=TR_ERROR_IO_OTHER)
-#define TR_ERROR_IS_TC(e) (TR_ERROR_TC_ERROR<=(e) && (e)<=TR_ERROR_TC_WARNING)
-
-struct tr_tracker_stat
-{
-    /* This is the unmodified string returned by the tracker in response
-     * to the torrent's most recent scrape request.  If no request was
-     * sent or there was no response, this string is empty. */
-    char scrapeResponse[256];
-
-    /* The unmodified string returned by the tracker in response
-     * to the torrent's most recent scrape request.  If no request was
-     * sent or there was no response, this string is empty. */
-    char announceResponse[256];
-
-    /* Time the most recent scrape request was sent,
-     * or zero if one hasn't been sent yet. */
-    time_t lastScrapeTime;
-
-    /* Time when the next scrape request will be sent.
-     * This value is always a valid time. */
-    time_t nextScrapeTime;
-
-    /* Time the most recent announce request was sent,
-     * or zero if one hasn't been sent yet. */
-    time_t lastAnnounceTime;
-
-    /* Time when the next reannounce request will be sent,
-     * or zero if the torrent is stopped. */
-    time_t nextAnnounceTime;
-
-    /* When the tracker will allow a human-driven "manual" announce to be sent,
-     * derived from the "min interval" field given by the tracker.
-     * This value is 0 when the torrent is stopped.
-     * This value is ~(time_t)0 if the tracker returned a serious error.
-     * Otherwise, the value is a valid time.
-     * @see tr_torrentManualUpdate( tr_torrent * );
-     * @see tr_torrentCanManualUpdate( const tr_torrent * ); */
-    time_t nextManualAnnounceTime;
-};
-
 tr_torrent_status tr_torrentGetStatus( tr_torrent * );
 
 enum
@@ -962,8 +928,6 @@ struct tr_stat
 
     tr_torrent_status status;
 
-    struct tr_tracker_stat trackerStat;
-
     char * announceURL;
     char * scrapeURL;
 
@@ -999,11 +963,6 @@ struct tr_stat
     int leechers;
     int completedFromTracker;
 
-    /* if the torrent is running, this is the time at which
-     * the client can manually ask the torrent's tracker
-     * for more peers.  otherwise, the value is zero. */
-    time_t manualAnnounceTime;
-
     /* Byte count of all the piece data we'll have downloaded when we're done.
      * whether or not we have it yet. [0...tr_info.totalSize] */
     uint64_t sizeWhenDone;
@@ -1038,6 +997,37 @@ struct tr_stat
      * moved to `corrupt' or `haveValid'. */
     uint64_t haveUnchecked;
 
+    /* This is the unmodified string returned by the tracker in response
+     * to the torrent's most recent scrape request.  If no request was
+     * sent or there was no response, this string is empty. */
+    char scrapeResponse[256];
+
+    /* The unmodified string returned by the tracker in response
+     * to the torrent's most recent scrape request.  If no request was
+     * sent or there was no response, this string is empty. */
+    char announceResponse[256];
+
+    /* Time the most recent scrape request was sent,
+     * or zero if one hasn't been sent yet. */
+    time_t lastScrapeTime;
+
+    /* Time when the next scrape request will be sent.
+     * This value is always a valid time. */
+    time_t nextScrapeTime;
+
+    /* Time the most recent announce request was sent,
+     * or zero if one hasn't been sent yet. */
+    time_t lastAnnounceTime;
+
+    /* Time when the next reannounce request will be sent,
+     * or zero if the torrent is stopped. */
+    time_t nextAnnounceTime;
+
+    /* if the torrent is running, this is the time at which
+     * the client can manually ask the torrent's tracker
+     * for more peers.  otherwise, the value is zero. */
+    time_t manualAnnounceTime;
+
     float swarmSpeed;
 
 #define TR_RATIO_NA  -1
index c1cd388cfd7525d056269d505458808116cbf5a2..05c32ca15844cca844f45039b28dabeec29173d6 100644 (file)
@@ -728,13 +728,13 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void *
 
 - (NSDate *) lastAnnounceTime
 {
-    int date = fStat->trackerStat.lastAnnounceTime;
+    int date = fStat->lastAnnounceTime;
     return date > 0 ? [NSDate dateWithTimeIntervalSince1970: date] : nil;
 }
 
 - (int) nextAnnounceTime
 {
-    int date = fStat->trackerStat.nextAnnounceTime;
+    int date = fStat->nextAnnounceTime;
     if (date <= 0)
         return -1;
     
@@ -744,7 +744,7 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void *
 
 - (NSString *) announceResponse
 {
-    return [NSString stringWithUTF8String: fStat->trackerStat.announceResponse];
+    return [NSString stringWithUTF8String: fStat->announceResponse];
 }
 
 - (NSString *) trackerAddressScrape
@@ -754,13 +754,13 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void *
 
 - (NSDate *) lastScrapeTime
 {
-    int date = fStat->trackerStat.lastScrapeTime;
+    int date = fStat->lastScrapeTime;
     return date > 0 ? [NSDate dateWithTimeIntervalSince1970: date] : nil;
 }
 
 - (int) nextScrapeTime
 {
-    int date = fStat->trackerStat.nextScrapeTime;
+    int date = fStat->nextScrapeTime;
     if (date <= 0)
         return -1;
     
@@ -770,7 +770,7 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void *
 
 - (NSString *) scrapeResponse
 {
-    return [NSString stringWithUTF8String: fStat->trackerStat.scrapeResponse];
+    return [NSString stringWithUTF8String: fStat->scrapeResponse];
 }
 
 - (NSArray *) allTrackers: (BOOL) separators