summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2016-12-08 13:08:15 +1100
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2016-12-20 15:04:29 +1100
commitb5f9e34d85075afe7aa87b5ce4a1a2d911468e36 (patch)
tree2f1daf66c1d80f3141a3cd15d8ce1515606e5e10
parentc5ae6f4846ca4bd8e13ffa08a293950433f3096c (diff)
downloadpetitboot-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.c33
-rw-r--r--discover/device-handler.h4
-rw-r--r--discover/pxe-parser.c5
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:
OpenPOWER on IntegriCloud