소스 검색

correct 'apt update' download summary line

Fetched() was reported for mostly nothing, while we should be calling it
for files worked with from non-local sources (e.g. http, but not file or
xz). Previously this was called from an acquire item, but got moved to
the acquire worker instead to avoid having it (re)implemented in all
items, but the checks were faulty.
David Kalnischkies 11 년 전
부모
커밋
b6a0018e1c
1개의 변경된 파일6개의 추가작업 그리고 5개의 파일을 삭제
  1. 6 5
      apt-pkg/acquire-worker.cc

+ 6 - 5
apt-pkg/acquire-worker.cc

@@ -335,9 +335,10 @@ bool pkgAcquire::Worker::RunMessages()
 	       for (pkgAcquire::Queue::QItem::owner_iterator O = Itm->Owners.begin(); O != Itm->Owners.end(); ++O)
 		  Log->Pulse((*O)->GetOwner());
 
-	    std::string const filename = LookupTag(Message, "Filename", Itm->Owner->DestFile.c_str());
 	    HashStringList ReceivedHashes;
 	    {
+	       std::string const givenfilename = LookupTag(Message, "Filename");
+	       std::string const filename = givenfilename.empty() ? Itm->Owner->DestFile : givenfilename;
 	       // see if we got hashes to verify
 	       for (char const * const * type = HashString::SupportedHashes(); *type != NULL; ++type)
 	       {
@@ -358,11 +359,11 @@ bool pkgAcquire::Worker::RunMessages()
 		     ReceivedHashes = calc.GetHashStringList();
 		  }
 	       }
-	    }
 
-	    // only local files can refer other filenames and counting them as fetched would be unfair
-	    if (Log !=  NULL && filename != Itm->Owner->DestFile)
-	       Log->Fetched(ReceivedHashes.FileSize(),atoi(LookupTag(Message,"Resume-Point","0").c_str()));
+	       // only local files can refer other filenames and counting them as fetched would be unfair
+	       if (Log != NULL && Itm->Owner->Complete == false && Itm->Owner->Local == false && givenfilename == filename)
+		  Log->Fetched(ReceivedHashes.FileSize(),atoi(LookupTag(Message,"Resume-Point","0").c_str()));
+	    }
 
 	    std::vector<Item*> const ItmOwners = Itm->Owners;
 	    OwnerQ->ItemDone(Itm);