X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=plug%2Fhotplug.c;fp=plug%2Fhotplug.c;h=c572ced187a77df2a80493cf7df3634c2af0c318;hb=ba4c4dbbbd65ce45622d9f2a92e9322348ed12ef;hp=fd29e626e13dea85159b556e220ad94ca66c50da;hpb=3e39fe539490e618e068358a68028fa33bf9e247;p=project%2Fprocd.git diff --git a/plug/hotplug.c b/plug/hotplug.c index fd29e62..c572ced 100644 --- a/plug/hotplug.c +++ b/plug/hotplug.c @@ -312,12 +312,27 @@ send_to_kernel: exit(-1); } +static void handle_start_console(struct blob_attr *msg, struct blob_attr *data) +{ + char *dev = blobmsg_get_string(blobmsg_data(data)); + + DEBUG(2, "Start console request for %s\n", dev); + + procd_inittab_run("respawn"); + procd_inittab_run("askfirst"); + + DEBUG(2, "Done starting console for %s\n", dev); + + exit(-1); +} + enum { HANDLER_MKDEV = 0, HANDLER_RM, HANDLER_EXEC, HANDLER_BUTTON, HANDLER_FW, + HANDLER_START_CONSOLE, }; static struct cmd_handler { @@ -351,6 +366,10 @@ static struct cmd_handler { .name = "load-firmware", .handler = handle_firmware, }, + [HANDLER_START_CONSOLE] = { + .name = "start-console", + .handler = handle_start_console, + }, }; static void queue_next(void)