]> git.saurik.com Git - apt.git/blobdiff - methods/rsh.cc
Send "Fail-Reason: MaximumSizeExceeded" from the method
[apt.git] / methods / rsh.cc
index a441220bfe0d211a4b75d38d16b6127a70388035..bd46d25159244eeaa813b366f1a72338e2f6c00d 100644 (file)
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/hashes.h>
 #include <apt-pkg/configuration.h>
+#include <apt-pkg/acquire-method.h>
+#include <apt-pkg/strutl.h>
 
+#include <stdlib.h>
+#include <string.h>
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <unistd.h>
@@ -255,7 +259,7 @@ bool RSHConn::WriteMsg(std::string &Text,bool Sync,const char *Fmt,...)
                                                                        /*}}}*/
 // RSHConn::Size - Return the size of the file                         /*{{{*/
 // ---------------------------------------------------------------------
-/* Right now for successfull transfer the file size must be known in 
+/* Right now for successful transfer the file size must be known in
    advance. */
 bool RSHConn::Size(const char *Path,unsigned long long &Size)
 {
@@ -368,7 +372,7 @@ RSHMethod::RSHMethod() : pkgAcqMethod("1.0",SendConfig)
    signal(SIGINT,SigTerm);
    Server = 0;
    FailFd = -1;
-};
+}
                                                                        /*}}}*/
 // RSHMethod::Configuration - Handle a configuration message           /*{{{*/
 // ---------------------------------------------------------------------
@@ -390,17 +394,17 @@ bool RSHMethod::Configuration(std::string Message)
 // RSHMethod::SigTerm - Clean up and timestamp the files on exit       /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void RSHMethod::SigTerm(int sig)
+void RSHMethod::SigTerm(int)
 {
    if (FailFd == -1)
       _exit(100);
 
    // Transfer the modification times
-   struct timespec times[2];
+   struct timeval times[2];
    times[0].tv_sec = FailTime;
    times[1].tv_sec = FailTime;
-   times[0].tv_nsec = times[1].tv_nsec = 0;
-   futimens(FailFd, times);
+   times[0].tv_usec = times[1].tv_usec = 0;
+   utimes(FailFile.c_str(), times);
    close(FailFd);
 
    _exit(100);
@@ -488,11 +492,11 @@ bool RSHMethod::Fetch(FetchItem *Itm)
         Fd.Close();
 
         // Timestamp
-        struct timespec times[2];
+        struct timeval times[2];
         times[0].tv_sec = FailTime;
         times[1].tv_sec = FailTime;
-        times[0].tv_nsec = times[1].tv_nsec = 0;
-        futimens(FailFd, times);
+        times[0].tv_usec = times[1].tv_usec = 0;
+        utimes(FailFile.c_str(), times);
 
         // If the file is missing we hard fail otherwise transient fail
         if (Missing == true)
@@ -502,11 +506,11 @@ bool RSHMethod::Fetch(FetchItem *Itm)
       }
 
       Res.Size = Fd.Size();
-      struct timespec times[2];
+      struct timeval times[2];
       times[0].tv_sec = FailTime;
       times[1].tv_sec = FailTime;
-      times[0].tv_nsec = times[1].tv_nsec = 0;
-      futimens(Fd.Fd(), times);
+      times[0].tv_usec = times[1].tv_usec = 0;
+      utimes(Fd.Name().c_str(), times);
       FailFd = -1;
    }
 
@@ -519,7 +523,7 @@ bool RSHMethod::Fetch(FetchItem *Itm)
 }
                                                                        /*}}}*/
 
-int main(int argc, const char *argv[])
+int main(int, const char *argv[])
 {
    setlocale(LC_ALL, "");