diff options
-rw-r--r-- | apt-pkg/acquire-item.cc | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index c58d43a3f..5c1e63af7 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -107,6 +107,18 @@ static std::string GetCompressedFileName(std::string const &URI, std::string con return Name; } /*}}}*/ +static bool AllowInsecureRepositories(indexRecords const * const MetaIndexParser, pkgAcqMetaBase * const TransactionManager, pkgAcquire::Item * const I) /*{{{*/ +{ + if(MetaIndexParser->IsAlwaysTrusted() || _config->FindB("Acquire::AllowInsecureRepositories") == true) + return true; + + _error->Error(_("Use --allow-insecure-repositories to force the update")); + TransactionManager->AbortTransaction(); + I->Status = pkgAcquire::Item::StatError; + return false; +} + /*}}}*/ + // Acquire::Item::Item - Constructor /*{{{*/ #if __GNUC__ >= 4 @@ -1784,16 +1796,12 @@ void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf)/*{{{*/ TransactionManager->TransactionStageRemoval(this, DestFile); // only allow going further if the users explicitely wants it - if(MetaIndexParser->IsAlwaysTrusted() || _config->FindB("Acquire::AllowInsecureRepositories") == true) + if(AllowInsecureRepositories(MetaIndexParser, TransactionManager, this) == true) { // we parse the indexes here because at this point the user wanted // a repository that may potentially harm him MetaIndexParser->Load(MetaIndexFile); QueueIndexes(true); - } - else - { - _error->Error("Use --allow-insecure-repositories to force the update"); } Item::Failed(Message,Cnf); @@ -2162,7 +2170,7 @@ void pkgAcqMetaIndex::Failed(string Message, // No Release file was present so fall // back to queueing Packages files without verification // only allow going further if the users explicitely wants it - if(MetaIndexParser->IsAlwaysTrusted() || _config->FindB("Acquire::AllowInsecureRepositories") == true) + if(AllowInsecureRepositories(MetaIndexParser, TransactionManager, this) == true) { // Done, queue for rename on transaction finished if (FileExists(DestFile)) @@ -2170,12 +2178,6 @@ void pkgAcqMetaIndex::Failed(string Message, // queue without any kind of hashsum support QueueIndexes(false); - } else { - // warn if the repository is unsinged - _error->Error("Use --allow-insecure-repositories to force the update"); - TransactionManager->AbortTransaction(); - Status = StatError; - return; } } /*}}}*/ @@ -2286,7 +2288,7 @@ void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /* // No Release file was present, or verification failed, so fall // back to queueing Packages files without verification // only allow going further if the users explicitely wants it - if(MetaIndexParser->IsAlwaysTrusted() || _config->FindB("Acquire::AllowInsecureRepositories") == true) + if(AllowInsecureRepositories(MetaIndexParser, TransactionManager, this) == true) { Status = StatDone; @@ -2307,11 +2309,6 @@ void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /* TransactionManager->TransactionStageCopy(this, DestFile, FinalFile); } QueueIndexes(false); - } else { - // warn if the repository is unsigned - _error->Error("Use --allow-insecure-repositories to force the update"); - TransactionManager->AbortTransaction(); - Status = StatError; } } } |