Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
}
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;
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);