summaryrefslogtreecommitdiff
path: root/apt-pkg/indexrecords.cc
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2007-08-03 12:18:12 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2007-08-03 12:18:12 +0200
commitf060e833f53ba3ed0024f8a2bebfc78e8aa552f2 (patch)
treeccf327402d9e02f24fdf95065c06c7a5dd2fa650 /apt-pkg/indexrecords.cc
parent3e8bdb6fe22d6feeca07d47e07c9b79ddd882c59 (diff)
parentc3279b9d100fb62f412267512458b58dda40f95b (diff)
* apt-inst/contrib/extracttar.cc:
- fix fd leak for zero size files (thanks to Bill Broadley for reporting this bug) * apt-pkg/acquire-item.cc: - remove zero size files on I-M-S hit * methods/https.cc: - only send LastModified if we actually have one - send range request with if-range - delete failed downloads * apt-pkg/deb/dpkgpm.{cc,h}: - merged dpkg-log branch, this lets you specify a Dir::Log::Terminal file to log dpkg output to (ABI break) * merged apt--sha256 branch to fully support the new sha256 checksums in the Packages and Release files (ABI break) * Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong directory downloading on non-linux architectures (closes: #435597) * Applied patch from Guillem Jover <guillem@debian.org> to use * Applied patch from Guillem Jover <guillem@debian.org> to add support to add lzma support (closes: #408201) * methods/makefile: - install lzma symlink method (for full lzma support) * debian/control: - suggest "lzma" * Simplified HttpMethod::Fetch on http.cc removing Tail variable; * Fix pipeline handling on http.cc (closes: #413324) * Fix building to properly support binNMUs. Thanks to Daniel Schepler <schepler@math.unipd.it> by the patch (closes: #359634) * Fix example for Install-{Recommends,Suggests} options on configure-index example file. Thanks to Peter Eisentraut <peter_e@gmx.net> by the patch (closes: #432223) * fixed compile errors with g++ 4.3 (thanks to Daniel Burrows, closes: #429378) * fixes in the auto-mark code (thanks to Daniel Burrows) * fix FTFBFS by changing build-depends to libcurl4-gnutls-dev (closes: #428363) * cmdline/apt-get.cc: - fix InstallTask code when a pkgRecord ends with a single '\n' (thanks to Soren Hansen for reporting) * merged from Christian Perrier: * vi.po: completed to 532t, again. Closes: #429899 * gl.po: completed to 532t. Closes: #429506 * vi.po: completed to 532t. Closes: #428672 * Update all PO and the POT. Gives 514t14f4u for formerly complete translations * fr.po: completed to 532t * ku.po, uk.po, LINGUAS: reintegrate those translations which disappeared from the BZR repositories
Diffstat (limited to 'apt-pkg/indexrecords.cc')
-rw-r--r--apt-pkg/indexrecords.cc48
1 files changed, 27 insertions, 21 deletions
diff --git a/apt-pkg/indexrecords.cc b/apt-pkg/indexrecords.cc
index 396e1591f..502f454a8 100644
--- a/apt-pkg/indexrecords.cc
+++ b/apt-pkg/indexrecords.cc
@@ -50,32 +50,38 @@ bool indexRecords::Load(const string Filename)
const char *Start, *End;
Section.Get (Start, End, 0);
+
Suite = Section.FindS("Suite");
Dist = Section.FindS("Codename");
-// if (Dist.empty())
-// {
-// ErrorText = _(("No Codename entry in Release file " + Filename).c_str());
-// return false;
-// }
- if (!Section.Find("MD5Sum", Start, End))
+
+ int i;
+ for (i=0;HashString::SupportedHashes()[i] != NULL; i++)
{
- ErrorText = _(("No MD5Sum entry in Release file " + Filename).c_str());
- return false;
+ if (!Section.Find(HashString::SupportedHashes()[i], Start, End))
+ continue;
+
+ string Name;
+ string Hash;
+ size_t Size;
+ while (Start < End)
+ {
+ if (!parseSumData(Start, End, Name, Hash, Size))
+ return false;
+ indexRecords::checkSum *Sum = new indexRecords::checkSum;
+ Sum->MetaKeyFilename = Name;
+ Sum->Hash = HashString(HashString::SupportedHashes()[i],Hash);
+ Sum->Size = Size;
+ Entries[Name] = Sum;
+ }
+ break;
}
- string Name;
- string MD5Hash;
- size_t Size;
- while (Start < End)
+
+ if(HashString::SupportedHashes()[i] == NULL)
{
- if (!parseSumData(Start, End, Name, MD5Hash, Size))
- return false;
- indexRecords::checkSum *Sum = new indexRecords::checkSum;
- Sum->MetaKeyFilename = Name;
- Sum->MD5Hash = MD5Hash;
- Sum->Size = Size;
- Entries[Name] = Sum;
- }
-
+ ErrorText = _(("No Hash entry in Release file " + Filename).c_str());
+ return false;
+ }
+
string Strdate = Section.FindS("Date"); // FIXME: verify this somehow?
return true;
}