diff options
-rw-r--r-- | apt-pkg/acquire-worker.cc | 24 | ||||
-rw-r--r-- | apt-pkg/acquire.cc | 6 | ||||
-rw-r--r-- | apt-pkg/deb/dpkginit.cc | 4 | ||||
-rw-r--r-- | methods/gzip.cc | 6 |
4 files changed, 31 insertions, 9 deletions
diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc index 6d70e79d8..166055bfc 100644 --- a/apt-pkg/acquire-worker.cc +++ b/apt-pkg/acquire-worker.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-worker.cc,v 1.23 1999/07/26 17:46:07 jgg Exp $ +// $Id: acquire-worker.cc,v 1.24 1999/07/30 05:36:52 jgg Exp $ /* ###################################################################### Acquire Worker @@ -40,7 +40,9 @@ pkgAcquire::Worker::Worker(Queue *Q,MethodConfig *Cnf, Config = Cnf; Access = Cnf->Access; CurrentItem = 0; - + TotalSize = 0; + CurrentSize = 0; + Construct(); } /*}}}*/ @@ -53,6 +55,8 @@ pkgAcquire::Worker::Worker(MethodConfig *Cnf) Config = Cnf; Access = Cnf->Access; CurrentItem = 0; + TotalSize = 0; + CurrentSize = 0; Construct(); } @@ -244,8 +248,14 @@ bool pkgAcquire::Worker::RunMessages() pkgAcquire::Item *Owner = Itm->Owner; pkgAcquire::ItemDesc Desc = *Itm; OwnerQ->ItemDone(Itm); - Owner->Done(Message,atoi(LookupTag(Message,"Size","0").c_str()), - LookupTag(Message,"MD5-Hash")); + Pulse(); + if (TotalSize != 0 && + atoi(LookupTag(Message,"Size","0").c_str()) != TotalSize) + _error->Warning("Bizzar Error - File size is not what the server reported %s %u", + LookupTag(Message,"Size","0").c_str(),TotalSize); + + Owner->Done(Message,CurrentSize, + LookupTag(Message,"MD5-Hash")); ItemDone(); // Log that we are done @@ -261,7 +271,7 @@ bool pkgAcquire::Worker::RunMessages() } else Log->Done(Desc); - } + } break; } @@ -495,6 +505,10 @@ void pkgAcquire::Worker::Pulse() if (stat(CurrentItem->Owner->DestFile.c_str(),&Buf) != 0) return; CurrentSize = Buf.st_size; + + // Hmm? Should not happen... + if (CurrentSize > TotalSize && TotalSize != 0) + TotalSize = CurrentSize; } /*}}}*/ // Worker::ItemDone - Called when the current item is finished /*{{{*/ diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 6ea1e3526..842f2e31a 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.37 1999/07/03 03:10:35 jgg Exp $ +// $Id: acquire.cc,v 1.38 1999/07/30 05:36:52 jgg Exp $ /* ###################################################################### Acquire - File Acquiration @@ -740,6 +740,10 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) TotalBytes = 1; if (Unknown == Count) TotalBytes = Unknown; + + // Wha?! Is not supposed to happen. + if (CurrentBytes > TotalBytes) + CurrentBytes = TotalBytes; // Compute the CPS struct timeval NewTime; diff --git a/apt-pkg/deb/dpkginit.cc b/apt-pkg/deb/dpkginit.cc index 5327de0e1..6ea7f04af 100644 --- a/apt-pkg/deb/dpkginit.cc +++ b/apt-pkg/deb/dpkginit.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: dpkginit.cc,v 1.3 1999/07/26 17:46:08 jgg Exp $ +// $Id: dpkginit.cc,v 1.4 1999/07/30 05:36:52 jgg Exp $ /* ###################################################################### DPKG init - Initialize the dpkg stuff @@ -62,7 +62,7 @@ bool pkgDpkgLock::GetLock(bool WithUpdates) "are you root?"); // See if we need to abort with a dirty journal - if (WithUpdates == true && CheckUpdates() == false) + if (WithUpdates == true && CheckUpdates() == true) { Close(); return _error->Error("dpkg was interrupted, you must manually " diff --git a/methods/gzip.cc b/methods/gzip.cc index b9808b30e..f1bf60ce6 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: gzip.cc,v 1.7 1999/01/27 02:48:53 jgg Exp $ +// $Id: gzip.cc,v 1.8 1999/07/30 05:37:00 jgg Exp $ /* ###################################################################### GZip method - Take a file URI in and decompress it into the target @@ -99,8 +99,12 @@ bool GzipMethod::Fetch(FetchItem *Itm) if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) return _error->Errno("utime","Failed to set modification time"); + if (stat(Itm->DestFile.c_str(),&Buf) != 0) + return _error->Errno("stat","Failed to stat"); + // Return a Done response Res.LastModified = Buf.st_mtime; + Res.Size = Buf.st_size; URIDone(Res); return true; |