X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/0efb29eb36184bbe6de7b1013d1898796d94b171..124e6916b7b02984803ff8217e8163947aae2882:/apt-pkg/update.cc?ds=sidebyside diff --git a/apt-pkg/update.cc b/apt-pkg/update.cc index 6e65c387c..0d901eab1 100644 --- a/apt-pkg/update.cc +++ b/apt-pkg/update.cc @@ -11,7 +11,6 @@ #include #include -#include #include /*}}}*/ @@ -62,11 +61,14 @@ bool AcquireUpdate(pkgAcquire &Fetcher, int const PulseInterval, bool Failed = false; bool TransientNetworkFailure = false; + bool AllFailed = true; for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I) { - if ((*I)->Status == pkgAcquire::Item::StatDone) + if ((*I)->Status == pkgAcquire::Item::StatDone) { + AllFailed = false; continue; + } (*I)->Finished(); @@ -74,9 +76,13 @@ bool AcquireUpdate(pkgAcquire &Fetcher, int const PulseInterval, uri.User.clear(); uri.Password.clear(); string descUri = string(uri); - _error->Warning(_("Failed to fetch %s %s"), descUri.c_str(), - (*I)->ErrorText.c_str()); - + // Show an error for non-transient failures, otherwise only warn + if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError) + _error->Warning(_("Failed to fetch %s %s"), descUri.c_str(), + (*I)->ErrorText.c_str()); + else + _error->Error(_("Failed to fetch %s %s"), descUri.c_str(), + (*I)->ErrorText.c_str()); if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError) { TransientNetworkFailure = true; @@ -98,22 +104,24 @@ bool AcquireUpdate(pkgAcquire &Fetcher, int const PulseInterval, // something went wrong with the clean return false; } + + bool Res = true; if (TransientNetworkFailure == true) - _error->Warning(_("Some index files failed to download. They have been ignored, or old ones used instead.")); + Res = _error->Warning(_("Some index files failed to download. They have been ignored, or old ones used instead.")); else if (Failed == true) - return _error->Error(_("Some index files failed to download. They have been ignored, or old ones used instead.")); + Res = _error->Error(_("Some index files failed to download. They have been ignored, or old ones used instead.")); // Run the success scripts if all was fine if (RunUpdateScripts == true) { - if(!TransientNetworkFailure && !Failed) + if(AllFailed == false) RunScripts("APT::Update::Post-Invoke-Success"); // Run the other scripts RunScripts("APT::Update::Post-Invoke"); } - return true; + return Res; } /*}}}*/