Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> --- commands/login.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/commands/login.c b/commands/login.c index fb6bb35..f5429bc 100644 --- a/commands/login.c +++ b/commands/login.c @@ -20,6 +20,10 @@ #include <complete.h> #include <password.h> #include <getopt.h> +#include <environment.h> +#include <globalvar.h> +#include <magicvar.h> +#include <init.h> #define PASSWD_MAX_LENGTH (128 + 1) @@ -31,6 +35,16 @@ #define LOGIN_MODE HIDE #endif +static void login_getenv_int(const char *name, int *i) +{ + const char* str = getenv(name); + + if (!str) + return; + + *i = simple_strtoul(str, NULL, 10); +} + static int do_login(int argc, char *argv[]) { unsigned char passwd[PASSWD_MAX_LENGTH]; @@ -38,6 +52,8 @@ static int do_login(int argc, char *argv[]) int timeout = 0; char *timeout_cmd = "boot"; + login_getenv_int("global.login.timeout", &timeout); + if (!is_passwd_enable()) { puts("login: password not set\n"); return 0; @@ -80,3 +96,13 @@ BAREBOX_CMD_START(login) BAREBOX_CMD_HELP(cmd_login_help) BAREBOX_CMD_COMPLETE(empty_complete) BAREBOX_CMD_END + +static int login_global_init(void) +{ + globalvar_add_simple("login.timeout"); + + return 0; +} +late_initcall(login_global_init); + +BAREBOX_MAGICVAR_NAMED(global_login_timeout, global.login.timeout, "timeout to type the password"); -- 1.8.4.rc1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox