]> git.ozlabs.org Git - petitboot/commitdiff
discover/user-event: better event debugging output
authorJeremy Kerr <jk@ozlabs.org>
Mon, 6 May 2013 09:02:25 +0000 (17:02 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Tue, 7 May 2013 01:46:25 +0000 (09:46 +0800)
We don't currently handle conf events very well:

user_event remove event:
device: /net/eth0
name         => (null)
image        => (null)
args         => (null)

This change prints the event action properly, and prints all event
params.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/parser.c
discover/user-event.c

index 42ee2e55c9a0f352949e26551abc5c344bd1d84a..11728b779ce66f1af15900857e4d33168a1cc3a8 100644 (file)
@@ -142,8 +142,10 @@ void iterate_parsers(struct discover_context *ctx, enum conf_method method)
 
        case CONF_METHOD_DHCP:
                rc = download_config(ctx, &buf, &len);
-               if (rc)
+               if (rc) {
+                       pb_log("\tdownload failed, aborting\n");
                        return;
+               }
 
                for (i = 0; i < n_parsers; i++) {
                        if (parsers[i]->method != method)
index db12bd14135b3d84d4ea1d79bd38f5f36abb43fe..23842e1343315a0017df1513e7838d8463ca25fd 100644 (file)
@@ -42,22 +42,32 @@ struct user_event {
        int socket;
 };
 
+static const char *event_action_name(enum event_action action)
+{
+       switch (action) {
+       case EVENT_ACTION_ADD:
+               return "add";
+       case EVENT_ACTION_REMOVE:
+               return "remove";
+       case EVENT_ACTION_CONF:
+               return "conf";
+       default:
+               break;
+       }
+
+       return "unknown";
+}
+
 static void user_event_print_event(struct event __attribute__((unused)) *event)
 {
-       const char *action, *params[] = {
-               "name", "image", "args",
-               NULL,
-       };
        int i;
 
-       action = event->action == EVENT_ACTION_ADD ? "add" : "remove";
-
-       pb_log("user_event %s event:\n", action);
+       pb_log("user_event %s event:\n", event_action_name(event->action));
        pb_log("\tdevice: %s\n", event->device);
 
-       for (i = 0; params[i]; i++)
+       for (i = 0; i < event->n_params; i++)
                pb_log("\t%-12s => %s\n",
-                               params[i], event_get_param(event, params[i]));
+                       event->params[i].name, event->params[i].value);
 }
 
 static void user_event_handle_message(struct user_event *uev, char *buf,