|
|
@@ -1503,20 +1503,17 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
|
|
|
if (AuthPass == true)
|
|
|
{
|
|
|
// gpgv method failed, if we have a good signature
|
|
|
- string LastGoodSigFile = _config->FindDir("Dir::State::lists");
|
|
|
- if (DestFile == SigFile)
|
|
|
- LastGoodSigFile.append(URItoFileName(RealURI));
|
|
|
- else
|
|
|
- LastGoodSigFile.append("partial/").append(URItoFileName(RealURI)).append(".gpg.reverify");
|
|
|
+ string LastGoodSigFile = _config->FindDir("Dir::State::lists").append("partial/").append(URItoFileName(RealURI));
|
|
|
+ if (DestFile != SigFile)
|
|
|
+ LastGoodSigFile.append(".gpg");
|
|
|
+ LastGoodSigFile.append(".reverify");
|
|
|
|
|
|
if(FileExists(LastGoodSigFile))
|
|
|
{
|
|
|
+ string VerifiedSigFile = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
|
|
|
if (DestFile != SigFile)
|
|
|
- {
|
|
|
- string VerifiedSigFile = _config->FindDir("Dir::State::lists") +
|
|
|
- URItoFileName(RealURI) + ".gpg";
|
|
|
- Rename(LastGoodSigFile,VerifiedSigFile);
|
|
|
- }
|
|
|
+ VerifiedSigFile.append(".gpg");
|
|
|
+ Rename(LastGoodSigFile, VerifiedSigFile);
|
|
|
Status = StatTransientNetworkError;
|
|
|
_error->Warning(_("A error occurred during the signature "
|
|
|
"verification. The repository is not updated "
|
|
|
@@ -1577,6 +1574,15 @@ pkgAcqMetaClearSig::pkgAcqMetaClearSig(pkgAcquire *Owner, /*{{{*/
|
|
|
MetaSigURI(MetaSigURI), MetaSigURIDesc(MetaSigURIDesc), MetaSigShortDesc(MetaSigShortDesc)
|
|
|
{
|
|
|
SigFile = DestFile;
|
|
|
+
|
|
|
+ // keep the old InRelease around in case of transistent network errors
|
|
|
+ string const Final = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
|
|
|
+ struct stat Buf;
|
|
|
+ if (stat(Final.c_str(),&Buf) == 0)
|
|
|
+ {
|
|
|
+ string const LastGoodSig = DestFile + ".reverify";
|
|
|
+ Rename(Final,LastGoodSig);
|
|
|
+ }
|
|
|
}
|
|
|
/*}}}*/
|
|
|
// pkgAcqMetaClearSig::Custom600Headers - Insert custom request headers /*{{{*/
|