rpool: if pkg wasn't found set errno to ENOENT.

This is to return a proper error to the callers (i.e xbps-query(1)).
This commit is contained in:
Juan RP 2015-10-19 17:05:55 +02:00
parent faeff38ca2
commit 240d87af92
2 changed files with 12 additions and 2 deletions

3
NEWS
View File

@ -1,5 +1,8 @@
xbps-0.48 (???):
* libxbps: the rpool functions now set errno to ENOENT when the target
pkg cannot be found in registered repos.
* libxbps: fix a bug where broken reverse dependencies would be detected
before detecting packages that need to be replaced in transaction.

View File

@ -296,14 +296,21 @@ repo_find_pkg(struct xbps_handle *xhp,
* Find revdeps for pkg.
*/
rv = xbps_rpool_foreach(xhp, find_pkg_revdeps_cb, &rpf);
break;
}
if (rv != 0) {
errno = rv;
return NULL;
}
if (type == REVDEPS_PKG)
return rpf.revdeps;
if (type == REVDEPS_PKG) {
if (rpf.revdeps == NULL)
errno = ENOENT;
return rpf.revdeps;
} else {
if (rpf.pkgd == NULL)
errno = ENOENT;
}
return rpf.pkgd;
}