diff options
author | Karel Zak | 2006-12-07 00:25:44 +0100 |
---|---|---|
committer | Karel Zak | 2006-12-07 00:25:44 +0100 |
commit | 66ee8158b69525e12060ef558cb5d77feadab1dc (patch) | |
tree | 08b30f2d07df9213f5647bc6f60b5090a263ef43 /login-utils/login.c | |
parent | Imported from util-linux-2.10m tarball. (diff) | |
download | kernel-qcow2-util-linux-66ee8158b69525e12060ef558cb5d77feadab1dc.tar.gz kernel-qcow2-util-linux-66ee8158b69525e12060ef558cb5d77feadab1dc.tar.xz kernel-qcow2-util-linux-66ee8158b69525e12060ef558cb5d77feadab1dc.zip |
Imported from util-linux-2.10s tarball.
Diffstat (limited to 'login-utils/login.c')
-rw-r--r-- | login-utils/login.c | 105 |
1 files changed, 47 insertions, 58 deletions
diff --git a/login-utils/login.c b/login-utils/login.c index eaaf1a520..3ad3b219c 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -116,7 +116,9 @@ #include <sys/syslog.h> #include <sys/sysmacros.h> #include <netdb.h> +#include "pathnames.h" #include "my_crypt.h" +#include "login.h" #include "nls.h" #ifdef __linux__ @@ -188,25 +190,22 @@ struct lastlog }; #endif -#include "pathnames.h" -#define P_(s) () -void opentty P_((const char *tty)); -void getloginname P_((void)); -void timedout P_((void)); -int rootterm P_((char *ttyn)); -void motd P_((void)); -void sigint P_((void)); -void checknologin P_((void)); -void dolastlog P_((int quiet)); -void badlogin P_((const char *name)); -char *stypeof P_((char *ttyid)); -void checktty P_((char *user, char *tty, struct passwd *pwd)); -void sleepexit P_((int eval)); +static void getloginname (void); +static void timedout (int); +static void sigint (int); +static int rootterm (char *ttyn); +static void motd (void); +static void checknologin (void); +static void dolastlog (int quiet); + +#ifndef __linux__ +static char *stypeof (char *ttyid); +#endif + #ifdef CRYPTOCARD -int cryptocard P_((void)); +#include "cryptocard.h" #endif -#undef P_ #ifdef KERBEROS #include <kerberos/krb.h> @@ -235,14 +234,14 @@ int kerror = KSUCCESS, notickets = 1; #ifndef __linux__ int timeout = 300; #else -int timeout = 60; +int timeout = 60; /* used in cryptocard.c */ #endif -struct passwd *pwd; -int failures = 1; +struct passwd *pwd; /* used in cryptocard.c */ +struct hostent hostaddress; /* used in checktty.c */ char term[64], *hostname, *username, *tty; -struct hostent hostaddress; -char thishost[100]; +static char thishost[100]; +static int failures = 1; #ifndef __linux__ struct sgttyb sgttyb; @@ -266,7 +265,7 @@ const char *months[] = connection. I believe login should open the line in the non-blocking mode leaving the decision to make a connection to getty (where it actually belongs). */ -void +static void opentty(const char * tty) { int i; @@ -313,11 +312,7 @@ main(int argc, char **argv) int quietlog, passwd_req; char *domain, *ttyn; char tbuf[MAXPATHLEN + 2], tname[sizeof(_PATH_TTY) + 10]; - char *ctime(), *ttyname(), *stypeof(); - time_t time(); - void timedout(); char *termenv; - char vcsn[20], vcsan[20]; char * childArgv[10]; char * buff; int childArgc = 0; @@ -329,6 +324,9 @@ main(int argc, char **argv) #else char *salt, *pp; #endif +#ifdef CHOWNVCS + char vcsn[20], vcsan[20]; +#endif #ifndef __linux__ int ioctlval; #endif @@ -446,6 +444,7 @@ main(int argc, char **argv) ttyn = tname; } +#ifdef CHOWNVCS /* find names of Virtual Console devices, for later mode change */ { char *p = ttyn; @@ -455,6 +454,7 @@ main(int argc, char **argv) strcpy(vcsn, "/dev/vcs"); strcat(vcsn, p); strcpy(vcsan, "/dev/vcsa"); strcat(vcsan, p); } +#endif setpgrp(); @@ -464,8 +464,8 @@ main(int argc, char **argv) tcgetattr(0, &tt); ttt = tt; ttt.c_cflag &= ~HUPCL; - - if((chown(ttyn, 0, 0) == 0) && (chmod(ttyn, 0622) == 0)) { + + if((chown(ttyn, 0, 0) == 0) && (chmod(ttyn, TTY_MODE) == 0)) { tcsetattr(0,TCSAFLUSH,&ttt); signal(SIGHUP, SIG_IGN); /* so vhangup() wont kill us */ vhangup(); @@ -816,8 +816,8 @@ main(int argc, char **argv) else if (tp.tv_sec - pwd->pw_change < TWOWEEKS && !quietlog) { struct tm *ttp; ttp = localtime(&pwd->pw_change); - printf(_("Warning: your password expires on %s %d, %d\n"), - months[ttp->tm_mon], ttp->tm_mday, + printf(_("Warning: your password expires on %d %s %d.\n"), + ttp->tm_mday, months[ttp->tm_mon], TM_YEAR_BASE + ttp->tm_year); } } @@ -830,8 +830,8 @@ main(int argc, char **argv) else if (tp.tv_sec - pwd->pw_expire < TWOWEEKS && !quietlog) { struct tm *ttp; ttp = localtime(&pwd->pw_expire); - printf(_("Warning: your account expires on %s %d, %d\n"), - months[ttp->tm_mon], ttp->tm_mday, + printf(_("Warning: your account expires on %d %s %d.\n"), + ttp->tm_mday, months[ttp->tm_mon], TM_YEAR_BASE + ttp->tm_year); } } @@ -970,6 +970,7 @@ Michael Riepe <michael@stud.uni-hannover.de> (gr = getgrnam(TTYGRPNAME)) ? gr->gr_gid : pwd->pw_gid); chmod(ttyn, TTY_MODE); +#ifdef CHOWNVCS /* if tty is one of the VC's then change owner and mode of the special /dev/vcs devices as well */ if (consoletty(0)) { @@ -978,6 +979,7 @@ Michael Riepe <michael@stud.uni-hannover.de> chmod(vcsn, TTY_MODE); chmod(vcsan, TTY_MODE); } +#endif setgid(pwd->pw_gid); @@ -1184,12 +1186,10 @@ Michael Riepe <michael@stud.uni-hannover.de> } void -getloginname() -{ - register int ch; - register char *p; +getloginname(void) { + int ch, cnt, cnt2; + char *p; static char nbuf[UT_NAMESIZE + 1]; - int cnt, cnt2; cnt2 = 0; for (;;) { @@ -1231,8 +1231,7 @@ getloginname() } void -timedout() -{ +timedout(int sig) { struct termio ti; fprintf(stderr, _("Login timed out after %d seconds\n"), timeout); @@ -1245,8 +1244,7 @@ timedout() } int -rootterm(ttyn) - char *ttyn; +rootterm(char * ttyn) #ifndef __linux__ { struct ttyent *t; @@ -1286,10 +1284,9 @@ rootterm(ttyn) jmp_buf motdinterrupt; void -motd() -{ - register int fd, nchars; - void (*oldint)(), sigint(); +motd(void) { + int fd, nchars; + void (*oldint)(int); char tbuf[8192]; if ((fd = open(_PATH_MOTDFILE, O_RDONLY, 0)) < 0) @@ -1303,15 +1300,13 @@ motd() } void -sigint() -{ +sigint(int sig) { longjmp(motdinterrupt, 1); } #ifndef USE_PAM /* PAM takes care of this */ void -checknologin() -{ +checknologin(void) { register int fd, nchars; char tbuf[8192]; @@ -1324,9 +1319,7 @@ checknologin() #endif void -dolastlog(quiet) - int quiet; -{ +dolastlog(int quiet) { struct lastlog ll; int fd; @@ -1385,9 +1378,7 @@ badlogin(const char *name) #ifndef __linux__ char * -stypeof(ttyid) - char *ttyid; -{ +stypeof(char *ttyid) { struct ttyent *t; return(ttyid && (t = getttynam(ttyid)) ? t->ty_type : UNKNOWN); @@ -1396,9 +1387,7 @@ stypeof(ttyid) /* should not be called from PAM code... Why? */ void -sleepexit(eval) - int eval; -{ +sleepexit(int eval) { sleep(SLEEP_EXIT_TIMEOUT); exit(eval); } |