[PATCH 1/4] login: add globalvar timeout support

Sascha Hauer s.hauer at pengutronix.de
Mon Sep 16 04:02:02 EDT 2013


On Sun, Sep 15, 2013 at 01:30:51PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> ---
>  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);
> +}

We already have getenv_ull. Should we use it here?

> +
>  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");

globalvar_add_simple now takes an initial value, like this:

int globalvar_add_simple(const char *name, const char *value)

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list