From f02f326238fd1e6424bf914e102ce265e7c156ec Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Thu, 6 Aug 2009 16:00:20 +0300 Subject: db: prefer local repositories, and implement --no-network this helps boots sequence when network is not available. --- src/cache.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'src/cache.c') diff --git a/src/cache.c b/src/cache.c index d4509e1..f9bcb6f 100644 --- a/src/cache.c +++ b/src/cache.c @@ -28,6 +28,7 @@ static int cache_download(struct apk_database *db) struct apk_state *state; struct apk_change *change; struct apk_package *pkg; + struct apk_repository *repo; char item[PATH_MAX], cacheitem[PATH_MAX]; int i, r = 0; @@ -54,17 +55,13 @@ static int cache_download(struct apk_database *db) if (faccessat(db->cache_fd, cacheitem, R_OK, 0) == 0) continue; - for (i = 0; i < db->num_repos; i++) { - if (!(pkg->repos & BIT(i))) - continue; + repo = apk_db_select_repo(db, pkg); + if (repo == NULL) + continue; - apk_pkg_format_plain(pkg, APK_BLOB_BUF(item)); - r = apk_cache_download(db, db->repos[i].url, - item, cacheitem, - APK_SIGN_VERIFY_IDENTITY); - if (r != 0) - return r; - } + apk_pkg_format_plain(pkg, APK_BLOB_BUF(item)); + apk_cache_download(db, repo->url, item, cacheitem, + APK_SIGN_VERIFY_IDENTITY); } err: -- cgit v1.2.3-70-g09d2