return;
}
}
-
- // Queue Packages file (either diff or full packages files, depending
- // on the users option)
- if(_config->FindB("Acquire::PDiffs",true) == true)
+
+ /* Queue Packages file (either diff or full packages files, depending
+ on the users option) - we also check if the PDiff Index file is listed
+ in the Meta-Index file. Ideal would be if pkgAcqDiffIndex would test this
+ instead, but passing the required info to it is to much hassle */
+ if(_config->FindB("Acquire::PDiffs",true) == true && (verify == false ||
+ MetaIndexParser->Exists(string((*Target)->MetaKey).append(".diff/Index")) == true))
new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description,
(*Target)->ShortDesc, ExpectedIndexHash);
- else
+ else
new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description,
(*Target)->ShortDesc, ExpectedIndexHash);
}
return Entries[MetaKey];
}
+bool indexRecords::Exists(string const &MetaKey) const
+{
+ return Entries.count(MetaKey) == 1;
+}
+
bool indexRecords::Load(const string Filename) /*{{{*/
{
FileFd Fd(Filename, FileFd::ReadOnly);
// Lookup function
virtual const checkSum *Lookup(const string MetaKey);
+ /** \brief tests if a checksum for this file is available */
+ bool Exists(string const &MetaKey) const;
std::vector<std::string> MetaKeys();
virtual bool Load(string Filename);
- try harder to find the other pseudo versions for autoremove multiarch
* apt-pkg/aptconfiguration.cc:
- remove duplicate architectures in getArchitectures()
+ * apt-pkg/indexrecords.{cc,h}:
+ - add a constant Exists check for MetaKeys
+ * apt-pkg/acquire-item.cc:
+ - do not try PDiff if it is not listed in the Meta file
- -- David Kalnischkies <kalnischkies@gmail.com> Fri, 28 May 2010 19:03:30 +0200
+ -- David Kalnischkies <kalnischkies@gmail.com> Sat, 29 May 2010 12:03:20 +0200
apt (0.7.26~exp5) experimental; urgency=low