diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2006-02-21 16:39:25 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2006-02-21 16:39:25 +0000 |
commit | 7e5f33eb8a0f224b938f17236f684ba5cadb9c7f (patch) | |
tree | f4fbf6f92bab6850763c01940b5aedbe4438e7a8 /cmdline/apt-get.cc | |
parent | a791a45008c6fb5d85061da5f7c90b9ef7d28f81 (diff) |
* more work for the DefaultAptSources spec
apt-pkg/acquire-item.h:
- add new pkgAcquire::Item::StatTransientNetworkError status
apt-pkg/acquire-item.cc:
- if we get a StatTransientNetworkError use old sigfile and indexfiles
apt-pkg/acquire-worker.cc:
- set StatTransientNetworkError on "Timeout", "TmpResolveFailure", "ConnectionRefused"
cmdline/apt-get.cc:
- handle a StatTransientNetworkError different than a normal error (warning instead of error)
Diffstat (limited to 'cmdline/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 99a51c9b8..e98d4fec5 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1355,20 +1355,29 @@ bool DoUpdate(CommandLine &CmdL) return false; bool Failed = false; + bool TransientNetworkFailure = false; for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++) { if ((*I)->Status == pkgAcquire::Item::StatDone) continue; (*I)->Finished(); - + fprintf(stderr,_("Failed to fetch %s %s\n"),(*I)->DescURI().c_str(), (*I)->ErrorText.c_str()); + + if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError) + { + TransientNetworkFailure = true; + continue; + } + Failed = true; } // Clean out any old list files - if (!Failed && _config->FindB("APT::Get::List-Cleanup",true) == true) + if (!TransientNetworkFailure && + _config->FindB("APT::Get::List-Cleanup",true) == true) { if (Fetcher.Clean(_config->FindDir("Dir::State::lists")) == false || Fetcher.Clean(_config->FindDir("Dir::State::lists") + "partial/") == false) @@ -1380,9 +1389,11 @@ bool DoUpdate(CommandLine &CmdL) if (Cache.BuildCaches() == false) return false; - if (Failed == true) + if (TransientNetworkFailure == true) _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.")); + return true; } /*}}}*/ |