diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2016-12-08 13:08:15 +1100 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2016-12-20 15:04:29 +1100 |
commit | b5f9e34d85075afe7aa87b5ce4a1a2d911468e36 (patch) | |
tree | 2f1daf66c1d80f3141a3cd15d8ce1515606e5e10 | |
parent | c5ae6f4846ca4bd8e13ffa08a293950433f3096c (diff) | |
download | petitboot-b5f9e34d85075afe7aa87b5ce4a1a2d911468e36.zip petitboot-b5f9e34d85075afe7aa87b5ce4a1a2d911468e36.tar.gz |
discover: Add helpers for status reporting
This change adds a couple of helpers for the status reporting API,
allowing callers to provide just a set of printf-style arguments, rather
than having to build up a struct status.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
-rw-r--r-- | discover/device-handler.c | 33 | ||||
-rw-r--r-- | discover/device-handler.h | 4 | ||||
-rw-r--r-- | discover/pxe-parser.c | 5 |
3 files changed, 38 insertions, 4 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c index 81bdedb..b8825ce 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -416,6 +416,39 @@ void device_handler_status(struct device_handler *handler, discover_server_notify_boot_status(handler->server, status); } +static void _device_handler_vstatus(struct device_handler *handler, + enum status_type type, const char *fmt, va_list ap) +{ + struct status status; + + status.type = type; + status.message = talloc_vasprintf(handler, fmt, ap); + + device_handler_status(handler, &status); + + talloc_free(status.message); +} + +void device_handler_status_info(struct device_handler *handler, + const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + _device_handler_vstatus(handler, STATUS_INFO, fmt, ap); + va_end(ap); +} + +void device_handler_status_err(struct device_handler *handler, + const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + _device_handler_vstatus(handler, STATUS_ERROR, fmt, ap); + va_end(ap); +} + static void device_handler_boot_status_cb(void *arg, struct status *status) { device_handler_status(arg, status); diff --git a/discover/device-handler.h b/discover/device-handler.h index 89ca87a..f4022e7 100644 --- a/discover/device-handler.h +++ b/discover/device-handler.h @@ -98,6 +98,10 @@ void device_handler_remove(struct device_handler *handler, void device_handler_status(struct device_handler *handler, struct status *status); +void device_handler_status_info(struct device_handler *handler, + const char *fmt, ...); +void device_handler_status_err(struct device_handler *handler, + const char *fmt, ...); struct discover_context *device_handler_discover_context_create( struct device_handler *handler, diff --git a/discover/pxe-parser.c b/discover/pxe-parser.c index a044215..5ac6990 100644 --- a/discover/pxe-parser.c +++ b/discover/pxe-parser.c @@ -241,7 +241,6 @@ static void pxe_conf_parse_cb(struct load_url_result *result, void *data) { struct conf_context *conf = data; struct device_handler *handler; - struct status status = {0}; struct pxe_parser_info *info; char *buf = NULL; int len, rc = 0; @@ -279,14 +278,12 @@ static void pxe_conf_parse_cb(struct load_url_result *result, void *data) handler = talloc_parent(conf); device_handler_discover_context_commit(handler, conf->dc); - status.type = STATUS_INFO; /* * TRANSLATORS: the format specifier in this string in an IP address, * eg. 192.168.1.1 */ - status.message = talloc_asprintf(conf, _("pxe: parsed config for %s"), + device_handler_status_info(handler, _("pxe: parsed config for %s"), conf->dc->conf_url->host); - device_handler_status(handler, &status); talloc_free(buf); out_clean: |