From: Michael Tremer Date: Thu, 30 Jan 2025 11:04:06 +0000 (+0000) Subject: repo: Fix return codes when reading SOLV data X-Git-Tag: 0.9.30~269 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9493fd49604c47a004ce0d42a539ddc00bb23c70;p=pakfire.git repo: Fix return codes when reading SOLV data Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/repo.c b/src/pakfire/repo.c index 477acc25..2554b3c0 100644 --- a/src/pakfire/repo.c +++ b/src/pakfire/repo.c @@ -1450,15 +1450,17 @@ ERROR: } int pakfire_repo_read_solv(struct pakfire_repo* repo, FILE *f, int flags) { + int r; + // Automatically detect compression f = pakfire_xfopen(f, "r"); - if (!f) { - errno = ENOTSUP; - return 1; - } + if (!f) + return -errno; + + // Import SOLV data + r = repo_add_solv(repo->repo, f, flags); - int ret = repo_add_solv(repo->repo, f, flags); - switch (ret) { + switch (r) { // Everything OK case 0: break; @@ -1467,21 +1469,18 @@ int pakfire_repo_read_solv(struct pakfire_repo* repo, FILE *f, int flags) { case 1: // Unsupported version case 2: - errno = ENOTSUP; - return 1; + return -ENOTSUP; // End of file case 3: - errno = EIO; - return 1; + return -EIO; // Corrupted case 4: case 5: case 6: default: - errno = EBADMSG; - return 1; + return -EBADMSG; } pakfire_repo_has_changed(repo);