517 |
517 |
int main (int argc, char **argv)
|
518 |
518 |
{
|
519 |
519 |
const char *tmptty;
|
|
520 |
const char *ttyprompt;
|
520 |
521 |
char tty[BUFSIZ];
|
521 |
522 |
|
522 |
523 |
#ifdef RLOGIN
|
... | ... | |
628 |
629 |
|
629 |
630 |
setup_tty ();
|
630 |
631 |
|
|
632 |
ttyprompt = getenv("TTYPROMPT");
|
|
633 |
|
631 |
634 |
#ifndef USE_PAM
|
632 |
635 |
(void) umask (getdef_num ("UMASK", GETDEF_DEFAULT_UMASK));
|
633 |
636 |
|
... | ... | |
735 |
738 |
char hostn[256];
|
736 |
739 |
char loginprompt[256]; /* That's one hell of a prompt :) */
|
737 |
740 |
|
738 |
|
/* Make the login prompt look like we want it */
|
739 |
|
if (gethostname (hostn, sizeof (hostn)) == 0) {
|
740 |
|
snprintf (loginprompt,
|
741 |
|
sizeof (loginprompt),
|
742 |
|
_("%s login: "), hostn);
|
|
741 |
if (ttyprompt == NULL || ttyprompt[0] == '\0') {
|
|
742 |
/* Make the login prompt look like we want it */
|
|
743 |
if (gethostname (hostn, sizeof (hostn)) == 0) {
|
|
744 |
snprintf (loginprompt,
|
|
745 |
sizeof (loginprompt),
|
|
746 |
_("%s login: "), hostn);
|
|
747 |
} else {
|
|
748 |
strncpy (loginprompt, _("login: "),
|
|
749 |
sizeof (loginprompt));
|
|
750 |
}
|
|
751 |
|
|
752 |
retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt);
|
|
753 |
PAM_FAIL_CHECK;
|
743 |
754 |
} else {
|
744 |
|
strncpy (loginprompt, _("login: "),
|
745 |
|
sizeof (loginprompt));
|
|
755 |
ssize_t r;
|
|
756 |
size_t n;
|
|
757 |
retcode = pam_set_item (pamh, PAM_USER_PROMPT, ttyprompt);
|
|
758 |
PAM_FAIL_CHECK;
|
|
759 |
r = getline(&username, &n, stdin);
|
|
760 |
if (r > 0) {
|
|
761 |
if (username[r-1] == '\n')
|
|
762 |
username[r-1] = '\0';
|
|
763 |
retcode = pam_set_item (pamh, PAM_USER, username);
|
|
764 |
PAM_FAIL_CHECK;
|
|
765 |
}
|
746 |
766 |
}
|
747 |
767 |
|
748 |
|
retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt);
|
749 |
|
PAM_FAIL_CHECK;
|
750 |
|
|
751 |
768 |
/* if we didn't get a user on the command line,
|
752 |
769 |
set it to NULL */
|
753 |
770 |
get_pam_user (&pam_user);
|