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;