From 82b9cb31fd6bbddc5878cc5bbebdf04b7f2d5649 Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Fri, 16 Jan 2009 15:38:04 +0200 Subject: db: make fetching from other than first repository work --- src/database.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/database.c b/src/database.c index 92b87b7548..4366223fe8 100644 --- a/src/database.c +++ b/src/database.c @@ -1076,7 +1076,7 @@ int apk_db_install_pkg(struct apk_database *db, struct install_ctx ctx; csum_t csum; char file[256]; - int r; + int r, i; if (fchdir(db->root_fd) < 0) return errno; @@ -1097,9 +1097,20 @@ int apk_db_install_pkg(struct apk_database *db, /* Install the new stuff */ if (newpkg->filename == NULL) { + for (i = 0; i < APK_MAX_REPOS; i++) + if (newpkg->repos & BIT(i)) + break; + + if (i >= APK_MAX_REPOS) { + apk_error("%s-%s: not present in any repository", + newpkg->name->name, newpkg->version); + return -1; + } + snprintf(file, sizeof(file), "%s/%s-%s.apk", - db->repos[0].url, newpkg->name->name, newpkg->version); + db->repos[i].url, + newpkg->name->name, newpkg->version); bs = apk_bstream_from_url(file); } else bs = apk_bstream_from_file(newpkg->filename); -- cgit v1.2.3