mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 0/2] defaultenv-2: add login support
@ 2013-09-04 10:01 Jean-Christophe PLAGNIOL-VILLARD
  2013-09-04 10:10 ` [PATCH 1/2] login: add globalvar timeout support Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 4+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-09-04 10:01 UTC (permalink / raw)
  To: barebox

HI,

	this will allow to request password when try to interrupt barebox auto
	boot

  defaultenv-2: add login support (2013-09-04 17:55:11 +0800)

----------------------------------------------------------------
Jean-Christophe PLAGNIOL-VILLARD (2):
      login: add globalvar timeout support
      defaultenv-2: add login support

 commands/login.c           | 26 ++++++++++++++++++++++++++
 defaultenv-2/base/bin/init |  9 +++++++++
 2 files changed, 35 insertions(+)

Best Regards,
J.

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] login: add globalvar timeout support
  2013-09-04 10:01 [PATCH 0/2] defaultenv-2: add login support Jean-Christophe PLAGNIOL-VILLARD
@ 2013-09-04 10:10 ` Jean-Christophe PLAGNIOL-VILLARD
  2013-09-04 10:10   ` [PATCH 2/2] defaultenv-2: add login support Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 4+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-09-04 10:10 UTC (permalink / raw)
  To: barebox

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@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);
+}
+
 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@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/2] defaultenv-2: add login support
  2013-09-04 10:10 ` [PATCH 1/2] login: add globalvar timeout support Jean-Christophe PLAGNIOL-VILLARD
@ 2013-09-04 10:10   ` Jean-Christophe PLAGNIOL-VILLARD
  2013-09-06  7:06     ` Sascha Hauer
  0 siblings, 1 reply; 4+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-09-04 10:10 UTC (permalink / raw)
  To: barebox

request password to login is a timeout is specified and /env/etc/passwd
present

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
 defaultenv-2/base/bin/init | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/defaultenv-2/base/bin/init b/defaultenv-2/base/bin/init
index ca02ba6..e696dce 100644
--- a/defaultenv-2/base/bin/init
+++ b/defaultenv-2/base/bin/init
@@ -16,11 +16,15 @@ global editcmd=sedit
 [ -e /env/config-board ] && /env/config-board
 /env/config
 
+# request password to login is a timeout is specified and /env/etc/passwd present
+[ -n ${global.login.timeout} ] && login_cmd=login
+
 # allow to stop the boot before execute the /env/init/*
 # but without waiting
 timeout -s -a -v key 0
 
 if [ "${key}" = "q" ]; then
+	${login_cmd}
 	exit
 fi
 
@@ -38,6 +42,7 @@ timeout -a $global.autoboot_timeout -v key
 autoboot="$?"
 
 if [ "${key}" = "q" ]; then
+	${login_cmd}
 	exit
 fi
 
@@ -48,7 +53,11 @@ fi
 if [ -e /env/menu ]; then
 	if [ "${key}" != "m" ]; then
 		echo -e "\ntype exit to get to the menu"
+		${login_cmd}
 		sh
 	fi
+	${login_cmd}
 	/env/menu/mainmenu
 fi
+
+${login_cmd}
-- 
1.8.4.rc1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] defaultenv-2: add login support
  2013-09-04 10:10   ` [PATCH 2/2] defaultenv-2: add login support Jean-Christophe PLAGNIOL-VILLARD
@ 2013-09-06  7:06     ` Sascha Hauer
  0 siblings, 0 replies; 4+ messages in thread
From: Sascha Hauer @ 2013-09-06  7:06 UTC (permalink / raw)
  To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox

On Wed, Sep 04, 2013 at 12:10:12PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> request password to login is a timeout is specified and /env/etc/passwd
> present
> 
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> ---
>  defaultenv-2/base/bin/init | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/defaultenv-2/base/bin/init b/defaultenv-2/base/bin/init
> index ca02ba6..e696dce 100644
> --- a/defaultenv-2/base/bin/init
> +++ b/defaultenv-2/base/bin/init
> @@ -16,11 +16,15 @@ global editcmd=sedit
>  [ -e /env/config-board ] && /env/config-board
>  /env/config
>  
> +# request password to login is a timeout is specified and /env/etc/passwd present
> +[ -n ${global.login.timeout} ] && login_cmd=login
> +
>  # allow to stop the boot before execute the /env/init/*
>  # but without waiting
>  timeout -s -a -v key 0
>  
>  if [ "${key}" = "q" ]; then
> +	${login_cmd}
>  	exit
>  fi
>  
> @@ -38,6 +42,7 @@ timeout -a $global.autoboot_timeout -v key
>  autoboot="$?"
>  
>  if [ "${key}" = "q" ]; then
> +	${login_cmd}
>  	exit
>  fi
>  
> @@ -48,7 +53,11 @@ fi
>  if [ -e /env/menu ]; then
>  	if [ "${key}" != "m" ]; then
>  		echo -e "\ntype exit to get to the menu"
> +		${login_cmd}
>  		sh
>  	fi
> +	${login_cmd}
>  	/env/menu/mainmenu

You should do it like this:

if [ -e /env/menu ]; then
	${login_cmd}
	if [ "${key}" != "m" ]; then
		echo -e "\ntype exit to get to the menu"
		sh
	fi
	/env/menu/mainmenu
fi

Otherwise you get prompted for a password when entering the shell and
agin when going to the menu.

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 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-09-06  7:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-04 10:01 [PATCH 0/2] defaultenv-2: add login support Jean-Christophe PLAGNIOL-VILLARD
2013-09-04 10:10 ` [PATCH 1/2] login: add globalvar timeout support Jean-Christophe PLAGNIOL-VILLARD
2013-09-04 10:10   ` [PATCH 2/2] defaultenv-2: add login support Jean-Christophe PLAGNIOL-VILLARD
2013-09-06  7:06     ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox