From: Michael Tremer Date: Sat, 13 Mar 2021 11:34:52 +0000 (+0000) Subject: repo: Try reading metadata on creation X-Git-Tag: 0.9.28~1285^2~542 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6ebbf80f625f4cc58325f62990c66a1f5b3365c1;p=pakfire.git repo: Try reading metadata on creation Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/repo.c b/src/libpakfire/repo.c index de2c0de80..f629109fc 100644 --- a/src/libpakfire/repo.c +++ b/src/libpakfire/repo.c @@ -56,6 +56,8 @@ struct pakfire_repo_appdata { char* baseurl; char* keyfile; + char* metadata; + // Database filename char database[NAME_MAX]; @@ -193,9 +195,29 @@ PAKFIRE_EXPORT PakfireRepo pakfire_repo_create(Pakfire pakfire, const char* name goto ERROR; } + // Skip remaining initialization for "virtual" repositories + if (*name == '@') + return repo; + + // Make path for metadata + repo->appdata->metadata = pakfire_make_cache_path( + repo->pakfire, "repodata/%s/repomd.json", pakfire_repo_get_name(repo)); + if (!repo->appdata->metadata) + goto ERROR; + // Make path to mirrorlist repo->appdata->mirrorlist = pakfire_make_cache_path( repo->pakfire, "repodata/%s/mirrorlist", pakfire_repo_get_name(repo)); + if (!repo->appdata->mirrorlist) + goto ERROR; + + // Try loading metadata + int r = pakfire_repo_read_metadata(repo, repo->appdata->metadata); + if (r) { + ERROR(repo->pakfire, "Could not initialize repository metadata: %s\n", + strerror(errno)); + goto ERROR; + } return repo;