diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/sulogin/sulogin.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/usr/src/cmd/sulogin/sulogin.c b/usr/src/cmd/sulogin/sulogin.c index 9d7f42c918..0693ca1d6b 100644 --- a/usr/src/cmd/sulogin/sulogin.c +++ b/usr/src/cmd/sulogin/sulogin.c @@ -18,6 +18,11 @@ * * CDDL HEADER END */ + +/* + * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + */ + /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -75,6 +80,7 @@ #include <nss_dbdefs.h> #include <user_attr.h> #include <sys/vt.h> +#include <sys/kd.h> /* * Intervals to sleep after failed login @@ -442,7 +448,7 @@ setupsigs() static void main_loop(char *devname, boolean_t cttyflag) { - int fd, i; + int fd, fb, i; char *user = NULL; /* authorized user */ char *pass; /* password from user */ char *cpass; /* crypted password */ @@ -478,6 +484,12 @@ main_loop(char *devname, boolean_t cttyflag) if (fd > 2) (void) close(fd); + /* Stop progress bar and reset console mode to text */ + if ((fb = open("/dev/fb", O_RDONLY)) >= 0) { + (void) ioctl(fb, KDSETMODE, KD_RESETTEXT); + (void) close(fb); + } + sysmsgfd = fopen("/dev/sysmsg", "w"); sanitize_tty(fileno(stdin)); |