diff options
author | Michael Vogt <mvo@ubuntu.com> | 2014-05-08 09:43:44 +0200 |
---|---|---|
committer | Michael Vogt <mvo@ubuntu.com> | 2014-05-08 09:43:44 +0200 |
commit | c6e9cc582c7093b08c7c057c1f7885eb07e06959 (patch) | |
tree | 5bce229b822a8b52b21aad64651df276cb31cec5 /apt-pkg/acquire.cc | |
parent | caa8a9f1e777f351b911dc8c30a858a5f026fca3 (diff) |
check for UnfetchedReleaseFiles when calculating the update percent value
Diffstat (limited to 'apt-pkg/acquire.cc')
-rw-r--r-- | apt-pkg/acquire.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 37964c943..57cbba169 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -822,7 +822,9 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) // Compute the total number of bytes to fetch unsigned int Unknown = 0; unsigned int Count = 0; - for (pkgAcquire::ItemCIterator I = Owner->ItemsBegin(); I != Owner->ItemsEnd(); + bool UnfetchedReleaseFiles = false; + for (pkgAcquire::ItemCIterator I = Owner->ItemsBegin(); + I != Owner->ItemsEnd(); ++I, ++Count) { TotalItems++; @@ -836,6 +838,10 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) // see if the method tells us to expect more TotalItems += (*I)->ExpectedAdditionalItems; + // check if there are unfetched Release files + if ((*I)->Complete == false && (*I)->ExpectedAdditionalItems > 0) + UnfetchedReleaseFiles = true; + TotalBytes += (*I)->FileSize; if ((*I)->Complete == true) CurrentBytes += (*I)->FileSize; @@ -895,9 +901,8 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) Time = NewTime; } - // calculate the percentage, if we have too little data assume 0% - // FIXME: the 5k is totally arbitrary - if (TotalBytes < 5*1024) + // calculate the percentage, if we have too little data assume 1% + if (TotalBytes > 0 && UnfetchedReleaseFiles) Percent = 0; else // use both files and bytes because bytes can be unreliable |