summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-01-06 00:13:21 +0000
committerMichael Vogt <michael.vogt@ubuntu.com>2006-01-06 00:13:21 +0000
commit6e6ded608e8250c22cefe03c6f9214401cb6de7c (patch)
tree9a7947bff875e32633b423c8d5a3448ef451e766 /apt-pkg
parentf381d68d3c1de8e96dfb2a2ebe36c8577729ec44 (diff)
parentce424cd4464ce46706046d581e05fbf292a54881 (diff)
* merged with mvo
Patches applied: * mvo@debian.org--2005/apt--debian-sid--0--base-0 tag of michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-71 * mvo@debian.org--2005/apt--debian-sid--0--patch-1 * merged with apt--mvo--0 * mvo@debian.org--2005/apt--debian-sid--0--patch-2 * merged with apt--mvo * mvo@debian.org--2005/apt--debian-sid--0--patch-3 * updated apt-all.pot * mvo@debian.org--2005/apt--debian-sid--0--patch-4 * merged with apt--mvo * mvo@debian.org--2005/apt--debian-sid--0--patch-5 * merge with apt--mvo--0 * mvo@debian.org--2005/apt--debian-sid--0--patch-6 * merge with apt--mvo * mvo@debian.org--2005/apt--debian-sid--0--patch-7 * applied patch from Petr Vandrovec to fix http download corruption * mvo@debian.org--2005/apt--debian-sid--0--patch-8 * merged with apt--mvo, regenerated the po files * mvo@debian.org--2005/apt--debian-sid--0--patch-9 * merged with apt--mvo * mvo@debian.org--2005/apt--debian-sid--0--patch-10 * merged with apt--mvo and corrected conflicts in po/ * mvo@debian.org--2005/apt--debian-sid--0--patch-11 * changelog updates * mvo@debian.org--2005/apt--debian-sid--0--patch-12 * apt--mvo merged * mvo@debian.org--2005/apt--debian-sid--0--patch-13 * merged with mvo * mvo@debian.org--2005/apt--debian-sid--0--patch-14 * merged with apt--mvo--0 * mvo@debian.org--2005/apt--debian-sid--0--patch-15 * support multiple signatures
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/acquire-item.cc22
-rw-r--r--apt-pkg/acquire-item.h5
2 files changed, 22 insertions, 5 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index b9fc74456..11a449e91 100644
--- a/apt-pkg/acquire-item.cc
+++ b/apt-pkg/acquire-item.cc
@@ -554,7 +554,7 @@ void pkgAcqMetaIndex::AuthDone(string Message)
return;
}
- if (!VerifyVendor())
+ if (!VerifyVendor(Message))
{
return;
}
@@ -612,7 +612,7 @@ void pkgAcqMetaIndex::QueueIndexes(bool verify)
}
}
-bool pkgAcqMetaIndex::VerifyVendor()
+bool pkgAcqMetaIndex::VerifyVendor(string Message)
{
// // Maybe this should be made available from above so we don't have
// // to read and parse it every time?
@@ -637,6 +637,22 @@ bool pkgAcqMetaIndex::VerifyVendor()
// break;
// }
// }
+ string::size_type pos;
+
+ // check for missing sigs (that where not fatal because otherwise we had
+ // bombed earlier)
+ string missingkeys;
+ string msg = _("There was no public key available for the "
+ "following key IDs:\n");
+ pos = Message.find("NO_PUBKEY ");
+ if (pos != std::string::npos)
+ {
+ string::size_type start = pos+strlen("NO_PUBKEY ");
+ string Fingerprint = Message.substr(start, Message.find("\n")-start);
+ missingkeys += (Fingerprint);
+ }
+ if(!missingkeys.empty())
+ _error->Warning("%s", string(msg+missingkeys).c_str());
string Transformed = MetaIndexParser->GetExpectedDist();
@@ -645,7 +661,7 @@ bool pkgAcqMetaIndex::VerifyVendor()
Transformed = "experimental";
}
- string::size_type pos = Transformed.rfind('/');
+ pos = Transformed.rfind('/');
if (pos != string::npos)
{
Transformed = Transformed.substr(0, pos);
diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h
index e6fc7fc47..da1bea801 100644
--- a/apt-pkg/acquire-item.h
+++ b/apt-pkg/acquire-item.h
@@ -151,9 +151,10 @@ class pkgAcqMetaIndex : public pkgAcquire::Item
const vector<struct IndexTarget*>* IndexTargets;
indexRecords* MetaIndexParser;
bool AuthPass;
- bool IMSHit; // required to fail gracefully on failures
+ // required to deal gracefully with problems caused by incorrect ims hits
+ bool IMSHit;
- bool VerifyVendor();
+ bool VerifyVendor(string Message);
void RetrievalDone(string Message);
void AuthDone(string Message);
void QueueIndexes(bool verify);