]> git.saurik.com Git - apt.git/blobdiff - ftparchive/multicompress.cc
do not crash on SIGPIPE in pkgDPkgPM::RunScriptsWithPkgs()
[apt.git] / ftparchive / multicompress.cc
index 1fea589e25667380326387c83a23695356bcd60d..f35d5304a1edc7d0b45050498cb809a981c8f75e 100644 (file)
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/md5.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/md5.h>
+#include <apt-pkg/aptconfiguration.h>
+#include <apt-pkg/hashsum_template.h>
 
 
+#include <ctype.h>
+#include <vector>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <utime.h>
+#include <sys/time.h>
 #include <unistd.h>
 #include <unistd.h>
-#include <iostream>
 
 #include "multicompress.h"
 #include <apti18n.h>
 
 #include "multicompress.h"
 #include <apti18n.h>
@@ -234,14 +237,12 @@ bool MultiCompress::Finalize(unsigned long long &OutSize)
       else
       {
         // Update the mtime if necessary
       else
       {
         // Update the mtime if necessary
-        if (UpdateMTime > 0 && 
+        if (UpdateMTime > 0 &&
             (Now - St.st_mtime > (signed)UpdateMTime || St.st_mtime > Now))
         {
             (Now - St.st_mtime > (signed)UpdateMTime || St.st_mtime > Now))
         {
-           struct utimbuf Buf;
-           Buf.actime = Buf.modtime = Now;
-           utime(I->Output.c_str(),&Buf);
+           utimes(I->Output.c_str(), NULL);
            Changed = true;
            Changed = true;
-        }           
+        }
       }
       
       // Force the file permissions
       }
       
       // Force the file permissions
@@ -367,7 +368,7 @@ bool MultiCompress::Child(int const &FD)
    for (Files *I = Outputs; I != 0; I = I->Next)
    {
       // Set the correct file modes
    for (Files *I = Outputs; I != 0; I = I->Next)
    {
       // Set the correct file modes
-      fchmod(I->TmpFile.Fd(),Permissions);
+      chmod(I->TmpFile.Name().c_str(),Permissions);
       
       if (rename(I->TmpFile.Name().c_str(),I->Output.c_str()) != 0)
         _error->Errno("rename",_("Failed to rename %s to %s"),
       
       if (rename(I->TmpFile.Name().c_str(),I->Output.c_str()) != 0)
         _error->Errno("rename",_("Failed to rename %s to %s"),