int nrefs;
struct pakfire_mirrorlist* mirrorlist;
- struct pakfire_downloader* downloader;
};
int pakfire_repo_import(Pakfire pakfire, struct pakfire_config* config) {
return repo_add_solvable(repo->repo);
}
-static struct pakfire_downloader* pakfire_repo_downloader(PakfireRepo repo) {
- if (!repo->downloader) {
- int r = pakfire_downloader_create(&repo->downloader, repo->pakfire);
- if (r)
- return NULL;
- }
-
- return pakfire_downloader_ref(repo->downloader);
-}
-
struct pakfire_mirrorlist* pakfire_repo_get_mirrorlist(PakfireRepo repo) {
if (!repo->mirrorlist) {
// No cache path set
}
static int pakfire_repo_retrieve(PakfireRepo repo, const char* url, const char* path) {
- struct pakfire_downloader* downloader = NULL;
struct pakfire_mirrorlist* mirrorlist = NULL;
- int r = 1;
- // Fetch downloader
- downloader = pakfire_repo_downloader(repo);
- if (!downloader)
- goto ERROR;
+ struct pakfire_downloader* downloader;
+ int r = pakfire_downloader_create(&downloader, repo->pakfire);
+ if (r)
+ return r;
// Fetch mirrorlist
mirrorlist = pakfire_repo_get_mirrorlist(repo);
// Retrieve the database file
r = pakfire_downloader_retrieve(downloader, repo->appdata->baseurl, mirrorlist, url, path);
-ERROR:
- if (downloader)
- pakfire_downloader_unref(downloader);
if (mirrorlist)
pakfire_mirrorlist_unref(mirrorlist);
+ pakfire_downloader_unref(downloader);
return r;
}
repo_free(repo->repo, 0);
}
- if (repo->downloader)
- pakfire_downloader_unref(repo->downloader);
if (repo->mirrorlist)
pakfire_mirrorlist_unref(repo->mirrorlist);
pakfire_unref(repo->pakfire);