]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-method.cc
G++3 fixes from Randolph
[apt.git] / apt-pkg / acquire-method.cc
index 770c68a90b5e62a9d7ca7fb98814dde28027f1f4..0ecd8df934568d9cfb3810ca424ae766d588ee26 100644 (file)
@@ -1,12 +1,12 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire-method.cc,v 1.24 2000/01/17 07:11:49 jgg Exp $
+// $Id: acquire-method.cc,v 1.26 2001/03/13 06:51:46 jgg Exp $
 /* ######################################################################
 
    Acquire Method
 
    This is a skeleton class that implements most of the functionality
-   of a method and some usefull functions to make method implementation
+   of a method and some useful functions to make method implementation
    simpler. The methods all derive this and specialize it. The most
    complex implementation is the http method which needs to provide
    pipelining, it runs the message engine at the same time it is 
@@ -23,7 +23,8 @@
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/fileutl.h>
-
+#include <apt-pkg/hashes.h>
+    
 #include <stdarg.h>
 #include <stdio.h>
 #include <unistd.h>
@@ -97,7 +98,8 @@ void pkgAcqMethod::Fail(string Err,bool Transient)
    if (Queue != 0)
    {
       snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: %s\n"
-              "Message: %s\n",Queue->Uri.c_str(),Err.c_str());
+              "Message: %s %s\n",Queue->Uri.c_str(),Err.c_str(),
+              FailExtra.c_str());
 
       // Dequeue
       FetchItem *Tmp = Queue;
@@ -108,7 +110,8 @@ void pkgAcqMethod::Fail(string Err,bool Transient)
    }
    else
       snprintf(S,sizeof(S)-50,"400 URI Failure\nURI: <UNKNOWN>\n"
-              "Message: %s\n",Err.c_str());
+              "Message: %s %s\n",Err.c_str(),
+              FailExtra.c_str());
       
    // Set the transient flag 
    if (Transient == true)
@@ -173,6 +176,8 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
 
    if (Res.MD5Sum.empty() == false)
       End += snprintf(End,sizeof(S)-50 - (End - S),"MD5-Hash: %s\n",Res.MD5Sum.c_str());
+   if (Res.SHA1Sum.empty() == false)
+      End += snprintf(End,sizeof(S)-50 - (End - S),"SHA1-Hash: %s\n",Res.SHA1Sum.c_str());
 
    if (Res.ResumePoint != 0)
       End += snprintf(End,sizeof(S)-50 - (End - S),"Resume-Point: %lu\n",
@@ -197,6 +202,9 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
       if (Alt->MD5Sum.empty() == false)
         End += snprintf(End,sizeof(S)-50 - (End - S),"Alt-MD5-Hash: %s\n",
                         Alt->MD5Sum.c_str());
+      if (Alt->SHA1Sum.empty() == false)
+        End += snprintf(End,sizeof(S)-50 - (End - S),"Alt-SHA1-Hash: %s\n",
+                        Alt->SHA1Sum.c_str());
       
       if (Alt->IMSHit == true)
         strcat(End,"Alt-IMS-Hit: true\n");
@@ -432,3 +440,13 @@ pkgAcqMethod::FetchResult::FetchResult() : LastModified(0),
 {
 }
                                                                        /*}}}*/
+// AcqMethod::FetchResult::TakeHashes - Load hashes                    /*{{{*/
+// ---------------------------------------------------------------------
+/* This hides the number of hashes we are supporting from the caller. 
+   It just deals with the hash class. */
+void pkgAcqMethod::FetchResult::TakeHashes(Hashes &Hash)
+{
+   MD5Sum = Hash.MD5.Result();
+   SHA1Sum = Hash.SHA1.Result();
+}
+                                                                       /*}}}*/