diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-09-24 11:03:11 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-09-26 15:13:16 +0800 |
commit | 227620704107a19c03824ae146249fff4a939839 (patch) | |
tree | a1c92aab5aa9d46eab9c79b168e168b26e2efa34 /discover/parser.c | |
parent | ca5a62c1d04a3eea1d1c307d4fa4f0b1559140d2 (diff) | |
download | talos-petitboot-227620704107a19c03824ae146249fff4a939839.tar.gz talos-petitboot-227620704107a19c03824ae146249fff4a939839.zip |
discover: Add struct load_url_result and load_task
Currently, load_url and load_url_async return a filename parameter and a
tempfile flag (indicating whether the file needs to be cleaned after
use).
Instead, encapsulate this data in a struct load_url_result, which the
caller (and async callbacks) can read the status, filename and clean
parameters.
For internal use in load_url and helpers, we add a struct load_task to
hold a pointer to the load_url_result and async data.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/parser.c')
-rw-r--r-- | discover/parser.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/discover/parser.c b/discover/parser.c index 7d9cd0d..a304f0c 100644 --- a/discover/parser.c +++ b/discover/parser.c @@ -29,23 +29,22 @@ static char *local_path(struct discover_context *ctx, static int download_config(struct discover_context *ctx, char **buf, int *len) { - unsigned tempfile; - const char *file; + struct load_url_result *result; int rc; - file = load_url(ctx, ctx->conf_url, &tempfile); - if (!file) + result = load_url(ctx, ctx->conf_url); + if (!result) return -1; - rc = read_file(ctx, file, buf, len); + rc = read_file(ctx, result->local, buf, len); if (rc) goto out_clean; return 0; out_clean: - if (tempfile) - unlink(file); + if (result->cleanup_local) + unlink(result->local); return -1; } |