X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;ds=inline;f=discover%2Fpaths.c;h=c25671b17a6a22404600da2a64cc9febca93f84f;hb=eea8cf830616dbbd9024b7d704cf0ccf2dac4767;hp=0c8cc8b0d4c1a84596c66ab1f27073cff5446435;hpb=66bf929fa97fabb70198455f9eec2e9ccf0661fa;p=petitboot diff --git a/discover/paths.c b/discover/paths.c index 0c8cc8b..c25671b 100644 --- a/discover/paths.c +++ b/discover/paths.c @@ -86,7 +86,7 @@ static void load_url_process_exit(struct process *process) 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; @@ -131,7 +131,10 @@ static void load_process_to_local_file(struct load_task *task, task->result->status = rc ? LOAD_ERROR : LOAD_ASYNC; } else { rc = process_run_sync(task->process); - task->result->status = rc ? LOAD_ERROR : LOAD_OK; + if (rc || !process_exit_ok(task->process)) + task->result->status = LOAD_ERROR; + else + task->result->status = LOAD_OK; process_release(task->process); task->process = NULL; } @@ -217,14 +220,16 @@ static enum tftp_type check_tftp_type(void *ctx) const char *argv[] = { pb_system_apps.tftp, "-V", NULL }; struct process *process; enum tftp_type type; + int rc; process = process_create(ctx); process->path = pb_system_apps.tftp; process->argv = argv; process->keep_stdout = true; - process_run_sync(process); + process->add_stderr = true; + rc = process_run_sync(process); - if (!process->stdout_buf || process->stdout_len == 0) { + if (rc || !process->stdout_buf || process->stdout_len == 0) { pb_log("Can't check TFTP client type!\n"); type = TFTP_TYPE_BROKEN; @@ -306,8 +311,9 @@ static void load_wget(struct load_task *task, int flags) pb_system_apps.wget, "-O", NULL, /* 2: local file */ - NULL, - NULL, + NULL, /* 3 (optional): --quiet */ + NULL, /* 4 (optional): --no-check-certificate */ + NULL, /* 5: URL */ NULL, }; int i;