X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Flib%2Fpreinit%2F99_10_failsafe_login;h=1410c5f0db5fe3d673603ae2ee0e77c10c966986;hb=331892f85f1cfab21b26a1f84824f4110e06027f;hp=3147cdc5a68a69cef6b1af6618a4e2367a143c2c;hpb=a39ac242cc3ec0c2d39342754d86ec97e9e4fb32;p=openwrt%2Fopenwrt.git diff --git a/package/base-files/files/lib/preinit/99_10_failsafe_login b/package/base-files/files/lib/preinit/99_10_failsafe_login index 3147cdc5a6..1410c5f0db 100644 --- a/package/base-files/files/lib/preinit/99_10_failsafe_login +++ b/package/base-files/files/lib/preinit/99_10_failsafe_login @@ -1,18 +1,14 @@ -#!/bin/sh # Copyright (C) 2006-2015 OpenWrt.org # Copyright (C) 2010 Vertical Communications -failsafe_netlogin () { - dropbearkey -t rsa -s 1024 -f /tmp/dropbear_failsafe_host_key - dropbear -r /tmp/dropbear_failsafe_host_key <> /dev/null 2>&1 -} - failsafe_shell() { - lock /tmp/.failsafe - ash --login - echo "Please reboot system when done with failsafe network logins" - while true; do sleep 1; done + local console="$(sed -e 's/ /\n/g' /proc/cmdline | grep '^console=' | head -1 | sed -e 's/^console=//' -e 's/,.*//')" + [ -n "$console" ] || console=console + [ -c "/dev/$console" ] || return 0 + while true; do + ash --login <"/dev/$console" >"/dev/$console" 2>"/dev/$console" + sleep 1 + done & } -boot_hook_add failsafe failsafe_netlogin boot_hook_add failsafe failsafe_shell