From: Michael Tremer Date: Wed, 25 Jun 2025 08:49:33 +0000 (+0000) Subject: progress: Allow restart by keeping the state up to date X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f184bd538a16bb430ab4fb14ebc3ae26a1bc0b90;p=people%2Fms%2Fpakfire.git progress: Allow restart by keeping the state up to date Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/progress.c b/src/pakfire/progress.c index eaedf649..ff9c6e5a 100644 --- a/src/pakfire/progress.c +++ b/src/pakfire/progress.c @@ -209,8 +209,14 @@ int pakfire_progress_start(struct pakfire_progress* p, unsigned long int value) int r; // This can only be called once - if (p->state == PAKFIRE_PROGRESS_RUNNING) - return -EINVAL; + switch (p->state) { + case PAKFIRE_PROGRESS_INIT: + case PAKFIRE_PROGRESS_FINISHED: + break; + + default: + return -EINVAL; + } // We are now running... p->state = PAKFIRE_PROGRESS_RUNNING; @@ -245,6 +251,9 @@ int pakfire_progress_finish(struct pakfire_progress* p) { if (p->state == PAKFIRE_PROGRESS_FINISHED) return 0; + // Update state + p->state = PAKFIRE_PROGRESS_FINISHED; + // No-op if (pakfire_progress_has_flag(p, PAKFIRE_PROGRESS_NO_PROGRESS)) return 0;