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