X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fuser-event.c;h=69defa34e341b22a9441b4b233f39d7b532eaa94;hp=1f7004509041123091ff85b9234c7e8b08133fed;hb=e1f6ffb9ca9e35738385a3524ba46896a0b519e6;hpb=edcfca78ac49793e295ac97328942321f39e3996 diff --git a/discover/user-event.c b/discover/user-event.c index 1f70045..69defa3 100644 --- a/discover/user-event.c +++ b/discover/user-event.c @@ -54,6 +54,8 @@ static const char *event_action_name(enum event_action action) return "add"; case EVENT_ACTION_REMOVE: return "remove"; + case EVENT_ACTION_URL: + return "url"; case EVENT_ACTION_DHCP: return "dhcp"; default: @@ -430,6 +432,18 @@ static int user_event_remove(struct user_event *uev, struct event *event) return 0; } +static int user_event_url(struct user_event *uev, struct event *event) +{ + struct device_handler *handler = uev->handler; + const char *url; + + url = event_get_param(event, "url"); + if (url) + device_handler_process_url(handler, url); + + return 0; +} + static void user_event_handle_message(struct user_event *uev, char *buf, int len) { @@ -453,6 +467,9 @@ static void user_event_handle_message(struct user_event *uev, char *buf, case EVENT_ACTION_REMOVE: result = user_event_remove(uev, event); break; + case EVENT_ACTION_URL: + result = user_event_url(uev, event); + break; case EVENT_ACTION_CONF: result = user_event_conf(uev, event); break;