summaryrefslogtreecommitdiff
path: root/methods/gzip.cc
diff options
context:
space:
mode:
authorMichael Vogt <egon@tas>2006-12-07 11:45:13 +0100
committerMichael Vogt <egon@tas>2006-12-07 11:45:13 +0100
commit207825063be51d68768e242f06b26ee6fccd3aaf (patch)
tree4c755597279d2574e787460c5d0f3bc34d132a64 /methods/gzip.cc
parent7106240056767caad5a55fe9c542842065cb5829 (diff)
parent1c05ebd6da9491d316997a98db1451f7b0526603 (diff)
merged with apt--mvo
Diffstat (limited to 'methods/gzip.cc')
-rw-r--r--methods/gzip.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/methods/gzip.cc b/methods/gzip.cc
index 809afc0fc..f732c0b86 100644
--- a/methods/gzip.cc
+++ b/methods/gzip.cc
@@ -52,6 +52,13 @@ bool GzipMethod::Fetch(FetchItem *Itm)
// Open the source and destination files
FileFd From(Path,FileFd::ReadOnly);
+ // if the file is empty, just rename it and return
+ if(From.Size() == 0)
+ {
+ rename(Path.c_str(), Itm->DestFile.c_str());
+ return true;
+ }
+
int GzOut[2];
if (pipe(GzOut) < 0)
return _error->Errno("pipe",_("Couldn't open pipe for %s"),Prog);
@@ -111,6 +118,7 @@ bool GzipMethod::Fetch(FetchItem *Itm)
if (To.Write(Buffer,Count) == false)
{
Failed = true;
+ FromGz.Close();
break;
}
}