From: Michael Tremer Date: Thu, 11 Feb 2021 13:33:25 +0000 (+0000) Subject: request: Check whether installed repository is set X-Git-Tag: 0.9.28~1285^2~767 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff0ee8743c89ff8e1eb8960d499072c8dbce8d83;p=pakfire.git request: Check whether installed repository is set Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/request.c b/src/libpakfire/request.c index 4ec816ed8..a86ba61d5 100644 --- a/src/libpakfire/request.c +++ b/src/libpakfire/request.c @@ -18,6 +18,7 @@ # # #############################################################################*/ +#include #include #include @@ -100,9 +101,12 @@ Solver* pakfire_request_get_solver(PakfireRequest request) { return request->solver; } -static void init_solver(PakfireRequest request, int flags) { +static int init_solver(PakfireRequest request, int flags) { Pool* p = pakfire_get_solv_pool(request->pakfire); + if (!p->installed) + return -EINVAL; + Solver* solver = solver_create(p); /* Free older solver */ @@ -130,6 +134,8 @@ static void init_solver(PakfireRequest request, int flags) { /* no arch change for forcebest */ solver_set_flag(solver, SOLVER_FLAG_BEST_OBEY_POLICY, 1); + + return 0; } static int solve(PakfireRequest request, Queue* queue) { @@ -167,7 +173,11 @@ static int solve(PakfireRequest request, Queue* queue) { } PAKFIRE_EXPORT int pakfire_request_solve(PakfireRequest request, int flags) { - init_solver(request, flags); + int r = init_solver(request, flags); + if (r) { + ERROR(request->pakfire, "Could not initialize the solver: %s\n", strerror(errno)); + return r; + } Queue queue; queue_init_clone(&queue, &request->queue); @@ -187,11 +197,11 @@ PAKFIRE_EXPORT int pakfire_request_solve(PakfireRequest request, int flags) { // XXX EXCLUDES - int ret = solve(request, &queue); + r = solve(request, &queue); queue_free(&queue); - return ret; + return r; } PAKFIRE_EXPORT PakfireProblem pakfire_request_get_problems(PakfireRequest request) {