diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2014-01-17 14:50:54 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2014-01-17 16:13:33 +0800 |
commit | b1d15f894473d4b1e90ad273487a432bcd637195 (patch) | |
tree | 46aa0587653d7ec9f02ed8067bf83bc6c2735e27 /discover/pxe-parser.c | |
parent | 44e10d816427c001d60eb5e7b3e75b740e5a2823 (diff) | |
download | talos-petitboot-b1d15f894473d4b1e90ad273487a432bcd637195.tar.gz talos-petitboot-b1d15f894473d4b1e90ad273487a432bcd637195.zip |
discover: Don't rely on ctx->conf_url side-effect in user_event_parse_conf_url
Currently, user_event_parse_conf_url sets dc->conf_url if it detects we
have a full URL (rather than a base URL). This is a little too subtle,
so replace it with an explicit output parameter.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/pxe-parser.c')
-rw-r--r-- | discover/pxe-parser.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/discover/pxe-parser.c b/discover/pxe-parser.c index 2fc261b..e245f1b 100644 --- a/discover/pxe-parser.c +++ b/discover/pxe-parser.c @@ -101,6 +101,7 @@ static int pxe_parse(struct discover_context *dc) char **pxe_conf_files, **filename; struct pb_url *conf_url, *url; struct conf_context *conf; + bool complete_url; int len, rc; char *buf; @@ -121,11 +122,13 @@ static int pxe_parse(struct discover_context *dc) parser_info = talloc_zero(conf, struct pxe_parser_info); conf->parser_info = parser_info; - conf_url = user_event_parse_conf_url(dc, dc->event); + conf_url = user_event_parse_conf_url(dc, dc->event, &complete_url); if (!conf_url) goto out_conf; - if (dc->conf_url) { + if (complete_url) { + /* we have a complete URL; use this and we're done. */ + dc->conf_url = conf_url; rc = parser_request_url(dc, dc->conf_url, &buf, &len); if (rc) goto out_conf; |