// Read database
r = pakfire_repo_read_solv(repo, database_cache_path, 0);
- if (r)
+ if (r) {
+ ERROR(repo->pakfire, "Could not read SOLV file %s: %s\n",
+ database_cache_path, strerror(errno));
goto ERROR;
+ }
}
// Success
PAKFIRE_EXPORT int pakfire_repo_read_solv_fp(PakfireRepo repo, FILE *f, int flags) {
f = pakfire_xfopen(f, "r");
+ if (!f)
+ return 1;
int ret = repo_add_solv(repo->repo, f, flags);
-
switch (ret) {
// Everything OK
case 0:
// Not SOLV format
case 1:
- return PAKFIRE_E_SOLV_NOT_SOLV;
-
// Unsupported version
case 2:
- return PAKFIRE_E_SOLV_UNSUPPORTED;
+ errno = ENOTSUP;
+ return 1;
// End of file
case 3:
- return PAKFIRE_E_EOF;
+ errno = EIO;
+ return 1;
// Corrupted
case 4:
case 5:
case 6:
default:
- return PAKFIRE_E_SOLV_CORRUPTED;
+ errno = EBADMSG;
+ return 1;
}
pakfire_pool_has_changed(repo->pakfire);
- return ret;
+ return 0;
}
PAKFIRE_EXPORT int pakfire_repo_write_solv(PakfireRepo repo, const char* filename, int flags) {