]> granicus.if.org Git - transmission/commitdiff
Fix setting the ETA timestamps
authorgeertjan <gjalsem@gmail.com>
Mon, 19 Feb 2018 20:06:34 +0000 (21:06 +0100)
committergeertjan <gjalsem@gmail.com>
Mon, 19 Feb 2018 20:06:34 +0000 (21:06 +0100)
Field etaDLSpeedCalculatedAt was set too early, causing the condition
following it to always be false. The same for etaULSpeedCalculatedAt.

libtransmission/torrent.c

index b0f43f7731e2b8ffe2bb50f746d7e0c5a5a69ed5..23a0e9b22e27e6cf8ad3b9b4fd473e9348b72f63 100644 (file)
@@ -1429,10 +1429,10 @@ tr_stat const* tr_torrentStat(tr_torrent* tor)
     case TR_STATUS_DOWNLOAD:
         if (tor->etaDLSpeedCalculatedAt + 800 < now)
         {
-            tor->etaDLSpeedCalculatedAt = now;
             tor->etaDLSpeed_Bps = tor->etaDLSpeedCalculatedAt + 4000 < now ?
                 pieceDownloadSpeed_Bps : /* if no recent previous speed, no need to smooth */
                 (tor->etaDLSpeed_Bps * 4.0 + pieceDownloadSpeed_Bps) / 5.0; /* smooth across 5 readings */
+            tor->etaDLSpeedCalculatedAt = now;
         }
 
         if (s->leftUntilDone > s->desiredAvailable && tor->info.webseedCount < 1)
@@ -1460,10 +1460,10 @@ tr_stat const* tr_torrentStat(tr_torrent* tor)
         {
             if (tor->etaULSpeedCalculatedAt + 800 < now)
             {
-                tor->etaULSpeedCalculatedAt = now;
                 tor->etaULSpeed_Bps = tor->etaULSpeedCalculatedAt + 4000 < now ?
                     pieceUploadSpeed_Bps : /* if no recent previous speed, no need to smooth */
                     (tor->etaULSpeed_Bps * 4.0 + pieceUploadSpeed_Bps) / 5.0; /* smooth across 5 readings */
+                tor->etaULSpeedCalculatedAt = now;
             }
 
             if (tor->etaULSpeed_Bps == 0)