[maemo-commits] [maemo-commits] r8184 - projects/haf/trunk/osso-application-installer/src
From: marivoll at stage.maemo.org marivoll at stage.maemo.orgDate: Mon Nov 20 19:01:30 EET 2006
- Next message: [maemo-commits] r8185 - in projects/haf/trunk/osso-application-installer: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2006-11-20 19:01:29 +0200 (Mon, 20 Nov 2006) New Revision: 8184 Modified: projects/haf/trunk/osso-application-installer/src/apt-worker.cc Log: * src/apt-worker.cc (handle_request): Dump errors after calling cache_init. (ensure_cache): New, to retry creating the cache when needed. Use it everywhere instead of testing package_cache for NULLness. Modified: projects/haf/trunk/osso-application-installer/src/apt-worker.cc =================================================================== --- projects/haf/trunk/osso-application-installer/src/apt-worker.cc 2006-11-20 15:47:15 UTC (rev 8183) +++ projects/haf/trunk/osso-application-installer/src/apt-worker.cc 2006-11-20 17:01:29 UTC (rev 8184) @@ -524,7 +524,10 @@ free_buf (reqbuf, stack_reqbuf); if (init_cache_after_request) - cache_init (false); + { + cache_init (false); + _error->DumpErrors (); + } } void read_certified_conf (); @@ -597,6 +600,16 @@ /var/lib/dpkg/status and the various Packages file from the repositories. + - ensure_cache + + This function tries to make sure that there is a valid + PACKAGE_CACHE to work with. It returns true when it succeeds and + PACKAGE_CACHE is non-NULL then. The idea is that if the cache + couldn't be created in the past because of some transient error, + it might be able to create it now. Thus, every command handler + that needs a cache should call ensure_cache. When ensure_cache + actually does some work, it will send STATUS messages. + - cache_reset () This function resets the 'desired' state of the cache to be @@ -974,6 +987,15 @@ cache_reset (); } +bool +ensure_cache () +{ + if (package_cache == NULL) + cache_init (true); + + return package_cache != NULL; +} + /* Determine whether a package was installed automatically to satisfy a dependency. */ @@ -1269,7 +1291,7 @@ const char *pattern = request.decode_string_in_place (); bool show_magic_sys = request.decode_int (); - if (package_cache == NULL) + if (!ensure_cache ()) { response.encode_int (0); return; @@ -1486,7 +1508,7 @@ info.removable_status = status_unknown; info.remove_user_size_delta = 0; - if (package_cache) + if (ensure_cache ()) { pkgDepCache &cache = *package_cache; pkgCache::PkgIterator pkg = cache.FindPkg (package); @@ -1954,7 +1976,7 @@ const char *package = request.decode_string_in_place (); int result_code = rescode_failure; - if (package_cache) + if (ensure_cache ()) { mark_named_package_for_install (package); result_code = operation (true); @@ -1984,7 +2006,7 @@ DBG ("https_proxy: %s", https_proxy); } - if (package_cache) + if (ensure_cache ()) { mark_named_package_for_install (package); result_code = operation (false); @@ -1999,7 +2021,7 @@ { const char *package = request.decode_string_in_place (); - if (package_cache) + if (ensure_cache ()) { pkgDepCache &cache = *package_cache; pkgCache::PkgIterator pkg = cache.FindPkg (package); @@ -2029,7 +2051,7 @@ const char *package = request.decode_string_in_place (); int result_code = rescode_failure; - if (package_cache) + if (ensure_cache ()) { pkgDepCache &cache = *package_cache; pkgCache::PkgIterator pkg = cache.FindPkg (package); @@ -2135,7 +2157,7 @@ static void encode_upgrades () { - if (package_cache) + if (ensure_cache ()) { pkgDepCache &cache = *package_cache; @@ -2429,7 +2451,8 @@ // As a special case, we try to init the cache again. Chances are // good that it will now succeed because there might be more space - // available now. + // available now. We don't use ensure_cache for this since we want + // it to happen silently. if (package_cache == NULL) need_cache_init (); @@ -2525,7 +2548,7 @@ static bool check_dependency (string &package, string &version, unsigned int op) { - if (package_cache == NULL) + if (!ensure_cache ()) return false; pkgDepCache &cache = (*package_cache); @@ -2759,7 +2782,7 @@ const char *installed_version = NULL; int installed_size = 0; - if (package_cache) + if (ensure_cache ()) { pkgDepCache &cache = *package_cache; pkgCache::PkgIterator pkg = cache.FindPkg (section.FindS ("Package"));
- Next message: [maemo-commits] r8185 - in projects/haf/trunk/osso-application-installer: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]