if (result->status == LOAD_CANCELLED) {
load_url_result_cleanup_local(result);
- } else if (process->exit_status == 0) {
+ } else if (process_exit_ok(process)) {
result->status = LOAD_OK;
} else {
result->status = LOAD_ERROR;
task->result->status = rc ? LOAD_ERROR : LOAD_ASYNC;
} else {
rc = process_run_sync(task->process);
- if (rc || WEXITSTATUS(task->process->exit_status))
+ if (rc || !process_exit_ok(task->process))
task->result->status = LOAD_ERROR;
else
task->result->status = LOAD_OK;
rc = process_run_sync(process);
- if (rc || !WIFEXITED(process->exit_status)
- || WEXITSTATUS(process->exit_status)) {
+ if (rc || !process_exit_ok(process)) {
fprintf(stderr, "nvram process returned "
"non-zero exit status\n");
rc = -1;
talloc_free(paramstr);
- if (rc || !WIFEXITED(process->exit_status)
- || WEXITSTATUS(process->exit_status)) {
+ if (rc || !process_exit_ok(process)) {
rc = -1;
pb_log("nvram update process returned "
"non-zero exit status\n");
return rc;
}
+
+bool process_exit_ok(struct process *process)
+{
+ return WIFEXITED(process->exit_status) &&
+ WEXITSTATUS(process->exit_status) == 0;
+}
int process_run_async(struct process *process);
void process_stop_async(struct process *process);
+
+/* helper function to determine if a process exited cleanly, with a non-zero
+ * exit status */
+bool process_exit_ok(struct process *process);
+
#endif /* PROCESS_H */