summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/acquire-item.cc5
-rw-r--r--apt-pkg/acquire.cc19
2 files changed, 18 insertions, 6 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index 42e9f25ae..5863fcfb4 100644
--- a/apt-pkg/acquire-item.cc
+++ b/apt-pkg/acquire-item.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire-item.cc,v 1.31 1999/06/05 04:33:29 jgg Exp $
+// $Id: acquire-item.cc,v 1.32 1999/06/06 06:58:36 jgg Exp $
/* ######################################################################
Acquire Item - Item to acquire
@@ -97,6 +97,9 @@ void pkgAcquire::Item::Done(string Message,unsigned long Size,string)
if (Owner->Log != 0)
Owner->Log->Fetched(Size,atoi(LookupTag(Message,"Resume-Point","0").c_str()));
}
+
+ if (FileSize == 0)
+ FileSize= Size;
Status = StatDone;
ErrorText = string();
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 306512436..e197037db 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire.cc,v 1.34 1999/05/24 03:39:37 jgg Exp $
+// $Id: acquire.cc,v 1.35 1999/06/06 06:58:36 jgg Exp $
/* ######################################################################
Acquire - File Acquiration
@@ -704,11 +704,20 @@ void pkgAcquireStatus::Pulse(pkgAcquire *Owner)
}
// Compute the current completion
+ unsigned long ResumeSize = 0;
for (pkgAcquire::Worker *I = Owner->WorkersBegin(); I != 0;
I = Owner->WorkerStep(I))
if (I->CurrentItem != 0 && I->CurrentItem->Owner->Complete == false)
- CurrentBytes += I->CurrentSize - I->ResumePoint;
-
+ {
+ CurrentBytes += I->CurrentSize;
+ ResumeSize += I->ResumePoint;
+
+ // Files with unknown size always have 100% completion
+ if (I->CurrentItem->Owner->FileSize == 0 &&
+ I->CurrentItem->Owner->Complete == false)
+ TotalBytes += I->CurrentSize;
+ }
+
// Normalize the figures and account for unknown size downloads
if (TotalBytes <= 0)
TotalBytes = 1;
@@ -728,8 +737,8 @@ void pkgAcquireStatus::Pulse(pkgAcquire *Owner)
if (Delta < 0.01)
CurrentCPS = 0;
else
- CurrentCPS = (CurrentBytes - LastBytes)/Delta;
- LastBytes = CurrentBytes;
+ CurrentCPS = ((CurrentBytes - ResumeSize) - LastBytes)/Delta;
+ LastBytes = CurrentBytes - ResumeSize;
ElapsedTime = (unsigned long)Delta;
Time = NewTime;
}