Mercurial > hg > toybox
changeset 633:98bde84a888c
toys/login.c: make use of the read_passwd function offered by the passwd library.
author | Elie De Brauwer <eliedebrauwer@gmail.com> |
---|---|
date | Fri, 20 Jul 2012 08:42:44 +0200 |
parents | 6cafecf34728 |
children | 8f22dbddf1e6 |
files | toys/login.c |
diffstat | 1 files changed, 1 insertions(+), 39 deletions(-) [+] |
line wrap: on
line diff
--- a/toys/login.c Wed Jul 18 21:10:57 2012 -0500 +++ b/toys/login.c Fri Jul 20 08:42:44 2012 +0200 @@ -67,49 +67,11 @@ } while (*p); } -int read_password(char * buff, int buflen) -{ - int i = 0; - struct termios termio, oldtermio; - tcgetattr(0, &oldtermio); - tcflush(0, TCIFLUSH); - termio = oldtermio; - - termio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY); - termio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP); - tcsetattr(0, TCSANOW, &termio); - - fputs("Password: ", stdout); - fflush(stdout); - - while (1) { - int ret = read(0, &buff[i], 1); - if ( ret < 0 ) - { - buff[0] = 0; - tcsetattr(0, TCSANOW, &oldtermio); - return 1; - } - else if ( ret == 0 || buff[i] == '\n' || - buff[i] == '\r' || buflen == i+1) - { - buff[i] = '\0'; - break; - } - i++; - } - - tcsetattr(0, TCSANOW, &oldtermio); - puts("\n"); - fflush(stdout); - return 0; -} - int verify_password(char * pwd) { char * pass; - if (read_password(toybuf, sizeof(toybuf))) + if (read_passwd(toybuf, sizeof(toybuf), "Password: ")) return 1; if (!pwd) return 1;