projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add offsets, new fields
[unix-history]
/
usr
/
src
/
usr.bin
/
login
/
login.c
diff --git
a/usr/src/usr.bin/login/login.c
b/usr/src/usr.bin/login/login.c
index
d8e5a44
..
8df6e18
100644
(file)
--- a/
usr/src/usr.bin/login/login.c
+++ b/
usr/src/usr.bin/login/login.c
@@
-11,7
+11,7
@@
char copyright[] =
#endif not lint
#ifndef lint
#endif not lint
#ifndef lint
-static char sccsid[] = "@(#)login.c 5.1
4
(Berkeley) %G%";
+static char sccsid[] = "@(#)login.c 5.1
6
(Berkeley) %G%";
#endif not lint
/*
#endif not lint
/*
@@
-38,8
+38,8
@@
static char sccsid[] = "@(#)login.c 5.14 (Berkeley) %G%";
#include <syslog.h>
#include <grp.h>
#include <syslog.h>
#include <grp.h>
-#define
WRITENAME "write"
/* name of group to own ttys */
-#define
WRITEGID(gid) write_gid(gid)
/* gid that owns all ttys */
+#define
TTYGRPNAME "tty"
/* name of group to own ttys */
+#define
TTYGID(gid) tty_gid(gid)
/* gid that owns all ttys */
#define SCMPN(a, b) strncmp(a, b, sizeof(a))
#define SCPYN(a, b) strncpy(a, b, sizeof(a))
#define SCMPN(a, b) strncmp(a, b, sizeof(a))
#define SCPYN(a, b) strncpy(a, b, sizeof(a))
@@
-91,6
+91,7
@@
int usererr = -1;
char rusername[NMAX+1], lusername[NMAX+1];
char rpassword[NMAX+1];
char name[NMAX+1];
char rusername[NMAX+1], lusername[NMAX+1];
char rpassword[NMAX+1];
char name[NMAX+1];
+char me[MAXHOSTNAMELEN];
char *rhost;
main(argc, argv)
char *rhost;
main(argc, argv)
@@
-103,6
+104,7
@@
main(argc, argv)
char *ttyn, *tty;
int ldisc = 0, zero = 0, i;
char **envnew;
char *ttyn, *tty;
int ldisc = 0, zero = 0, i;
char **envnew;
+ char *p, *domain, *index();
signal(SIGALRM, timedout);
alarm(timeout);
signal(SIGALRM, timedout);
alarm(timeout);
@@
-116,6
+118,8
@@
main(argc, argv)
* -h is used by other servers to pass the name of the
* remote host to login so that it may be placed in utmp and wtmp
*/
* -h is used by other servers to pass the name of the
* remote host to login so that it may be placed in utmp and wtmp
*/
+ (void) gethostname(me, sizeof(me));
+ domain = index(me, '.');
while (argc > 1) {
if (strcmp(argv[1], "-r") == 0) {
if (rflag || hflag) {
while (argc > 1) {
if (strcmp(argv[1], "-r") == 0) {
if (rflag || hflag) {
@@
-124,6
+128,8
@@
main(argc, argv)
}
rflag = 1;
usererr = doremotelogin(argv[2]);
}
rflag = 1;
usererr = doremotelogin(argv[2]);
+ if ((p = index(argv[2], '.')) && strcmp(p, domain) == 0)
+ *p = 0;
SCPYN(utmp.ut_host, argv[2]);
argc -= 2;
argv += 2;
SCPYN(utmp.ut_host, argv[2]);
argc -= 2;
argv += 2;
@@
-135,6
+141,8
@@
main(argc, argv)
exit(1);
}
hflag = 1;
exit(1);
}
hflag = 1;
+ if ((p = index(argv[2], '.')) && strcmp(p, domain) == 0)
+ *p = 0;
SCPYN(utmp.ut_host, argv[2]);
argc -= 2;
argv += 2;
SCPYN(utmp.ut_host, argv[2]);
argc -= 2;
argv += 2;
@@
-328,7
+336,7
@@
main(argc, argv)
write(f, (char *) &ll, sizeof ll);
close(f);
}
write(f, (char *) &ll, sizeof ll);
close(f);
}
- chown(ttyn, pwd->pw_uid,
WRITE
GID(pwd->pw_gid));
+ chown(ttyn, pwd->pw_uid,
TTY
GID(pwd->pw_gid));
if (!hflag && !rflag) /* XXX */
ioctl(0, TIOCSWINSZ, &win);
chmod(ttyn, 0620);
if (!hflag && !rflag) /* XXX */
ioctl(0, TIOCSWINSZ, &win);
chmod(ttyn, 0620);
@@
-571,13
+579,13
@@
setenv(var, value, clobber)
environ[++index] = NULL;
}
environ[++index] = NULL;
}
-
write
_gid(default_gid)
+
tty
_gid(default_gid)
int default_gid;
{
struct group *getgrnam(), *gr;
int gid = default_gid;
int default_gid;
{
struct group *getgrnam(), *gr;
int gid = default_gid;
- gr = getgrnam(
WRITE
NAME);
+ gr = getgrnam(
TTYGRP
NAME);
if (gr != (struct group *) 0)
gid = gr->gr_gid;
if (gr != (struct group *) 0)
gid = gr->gr_gid;