]> git.ipfire.org Git - pakfire.git/commitdiff
repo: Do not bail when no mirrorlist is set
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 19 Apr 2021 14:12:36 +0000 (14:12 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 19 Apr 2021 14:12:36 +0000 (14:12 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/downloader.c
src/libpakfire/repo.c

index 01e1493b9007bd28d8f2c59f1c34f5af49baf49e..5eb726090ca0126a428197772906a5bbbfa796b9 100644 (file)
@@ -815,6 +815,11 @@ ERROR:
 }
 
 int pakfire_mirrorlist_read(struct pakfire_mirrorlist* ml, const char* path) {
+       if (!path || !*path) {
+               errno = EINVAL;
+               return 1;
+       }
+
        DEBUG(ml->pakfire, "Reading mirrorlist from %s\n", path);
 
        struct json_object* json = pakfire_json_parse_from_file(ml->pakfire, path);
index 27bbb2411940d43c586878e89931c6c2704696b7..cef176a7fc15957042b1239efe2d954746eb200f 100644 (file)
@@ -162,6 +162,10 @@ static struct pakfire_downloader* pakfire_repo_downloader(PakfireRepo repo) {
 
 struct pakfire_mirrorlist* pakfire_repo_get_mirrorlist(PakfireRepo repo) {
        if (!repo->mirrorlist) {
+               // No cache path set
+               if (!*repo->appdata->mirrorlist)
+                       return NULL;
+
                int r = pakfire_mirrorlist_create(&repo->mirrorlist, repo->pakfire);
                if (r) {
                        ERROR(repo->pakfire, "Could not create mirrorlist: %s\n", strerror(errno));
@@ -194,8 +198,6 @@ static int pakfire_repo_retrieve(PakfireRepo repo, const char* url, const char*
 
        // Fetch mirrorlist
        mirrorlist = pakfire_repo_get_mirrorlist(repo);
-       if (!mirrorlist)
-               goto ERROR;
 
        // Retrieve the database file
        r = pakfire_downloader_retrieve(downloader, mirrorlist, url, path);