/* Fixed by Erik Andersen to do passwords the tinylogin way...
* It now works with md5, sha1, etc passwords. */
+//usage:#define vlock_trivial_usage
+//usage: "[-a]"
+//usage:#define vlock_full_usage "\n\n"
+//usage: "Lock a virtual terminal. A password is required to unlock.\n"
+//usage: "\n -a Lock all VTs"
+
#include "libbb.h"
#ifdef __linux__
term.c_lflag &= ~(ECHO | ECHOCTL);
tcsetattr_stdin_TCSANOW(&term);
- do {
+ while (1) {
printf("Virtual console%s locked by %s.\n",
- option_mask32 /*o_lock_all*/ ? "s" : "",
- pw->pw_name);
- if (correct_password(pw)) {
+ /* "s" if -a, else "": */ "s" + !option_mask32,
+ pw->pw_name
+ );
+ if (ask_and_check_password(pw) > 0) {
break;
}
- bb_do_delay(FAIL_DELAY);
- puts("Password incorrect");
- } while (1);
+ bb_do_delay(LOGIN_FAIL_DELAY);
+ puts("Incorrect password");
+ }
#ifdef __linux__
ioctl(STDIN_FILENO, VT_SETMODE, &ovtm);