// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire-method.cc,v 1.25 2001/02/20 07:03:17 jgg Exp $
+// $Id: acquire-method.cc,v 1.27.2.1 2003/12/24 23:09:17 mdz Exp $
/* ######################################################################
Acquire Method
#include <apt-pkg/configuration.h>
#include <apt-pkg/strutl.h>
#include <apt-pkg/fileutl.h>
+#include <apt-pkg/hashes.h>
+#include <iostream>
#include <stdarg.h>
#include <stdio.h>
#include <unistd.h>
+#include <sys/signal.h>
/*}}}*/
+using namespace std;
+
// AcqMethod::pkgAcqMethod - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* This constructs the initialization text */
void pkgAcqMethod::Fail(string Err,bool Transient)
{
// Strip out junk from the error messages
- for (char *I = Err.begin(); I != Err.end(); I++)
+ for (string::iterator I = Err.begin(); I != Err.end(); I++)
{
if (*I == '\r')
*I = ' ';
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.GPGVOutput.size() > 0)
+ End += snprintf(End,sizeof(S)-50 - (End - S),"GPGVOutput:\n");
+ for (vector<string>::iterator I = Res.GPGVOutput.begin();
+ I != Res.GPGVOutput.end(); I++)
+ End += snprintf(End,sizeof(S)-50 - (End - S), " %s\n", (*I).c_str());
if (Res.ResumePoint != 0)
End += snprintf(End,sizeof(S)-50 - (End - S),"Resume-Point: %lu\n",
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");
MyMessages.erase(MyMessages.begin());
}
- return !StringToBool(LookupTag(Message,"Fail"),false);
+ return !StringToBool(LookupTag(Message,"Failed"),false);
}
Messages.push_back(Message);
{
::Configuration &Cnf = *_config;
- const char *I = Message.begin();
+ const char *I = Message.c_str();
+ const char *MsgEnd = I + Message.length();
unsigned int Length = strlen("Config-Item");
- for (; I + Length < Message.end(); I++)
+ for (; I + Length < MsgEnd; I++)
{
// Not a config item
if (I[Length] != ':' || stringcasecmp(I,I+Length,"Config-Item") != 0)
I += Length + 1;
- for (; I < Message.end() && *I == ' '; I++);
+ for (; I < MsgEnd && *I == ' '; I++);
const char *Equals = I;
- for (; Equals < Message.end() && *Equals != '='; Equals++);
+ for (; Equals < MsgEnd && *Equals != '='; Equals++);
const char *End = Equals;
- for (; End < Message.end() && *End != '\n'; End++);
+ for (; End < MsgEnd && *End != '\n'; End++);
if (End == Equals)
return false;
{
}
/*}}}*/
+// 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();
+}
+ /*}}}*/