diff options
author | charnier <charnier@FreeBSD.org> | 1997-08-05 06:46:46 +0000 |
---|---|---|
committer | charnier <charnier@FreeBSD.org> | 1997-08-05 06:46:46 +0000 |
commit | b064615bee4a2c9979fdabea3dc3556879d0706f (patch) | |
tree | 2839a41d63d96f78308d763200305892f65771f0 /usr.bin/rlogin | |
parent | 828df579fbfc9c6db14f3ed7eae079e9dfb771e7 (diff) | |
download | FreeBSD-src-b064615bee4a2c9979fdabea3dc3556879d0706f.zip FreeBSD-src-b064615bee4a2c9979fdabea3dc3556879d0706f.tar.gz |
Use err(3). Document -l flag.
Obtained from: OpenBSD
Diffstat (limited to 'usr.bin/rlogin')
-rw-r--r-- | usr.bin/rlogin/rlogin.1 | 17 | ||||
-rw-r--r-- | usr.bin/rlogin/rlogin.c | 55 |
2 files changed, 34 insertions, 38 deletions
diff --git a/usr.bin/rlogin/rlogin.1 b/usr.bin/rlogin/rlogin.1 index eea0c59..9ba0387 100644 --- a/usr.bin/rlogin/rlogin.1 +++ b/usr.bin/rlogin/rlogin.1 @@ -100,12 +100,19 @@ This specification may be as a literal character, or as an octal value in the form \ennn. .It Fl k The -.FL k +.Fl k option requests rlogin to obtain tickets for the remote host in realm .Ar realm instead of the remote host's realm as determined by .Xr krb_realmofhost 3 . +.It Fl l +The +.Fl l +option specifies a different +.Ar username +for the remote login. +If this option is not specified, your local username will be used. .It Fl x The .Fl x @@ -121,7 +128,7 @@ increased security. .Pp A line of the form ``<escape char>.'' disconnects from the remote host. Similarly, the line ``<escape char>^Z'' will suspend the -.Nm rlogin +.Nm session, and ``<escape char><delayed-suspend char>'' suspends the send portion of the rlogin, but allows output from the remote system. By default, the tilde (``~'') character is the escape character, and @@ -129,7 +136,7 @@ normally control-Y (``^Y'') is the delayed-suspend character. .Pp All echoing takes place at the remote site, so that (except for delays) the -.Nm rlogin +.Nm is transparent. Flow control via ^S/^Q and flushing of input and output on interrupts are handled properly. @@ -160,7 +167,7 @@ the remote user. .Pp If Kerberos authentication fails, a warning message is printed and the standard Berkeley -.Nm rlogin +.Nm is used instead. .Sh ENVIRONMENT The following environment variable is utilized by @@ -193,7 +200,7 @@ Determines the user's terminal type. .Sh HISTORY The -.Nm rlogin +.Nm command appeared in .Bx 4.2 . .Sh BUGS diff --git a/usr.bin/rlogin/rlogin.c b/usr.bin/rlogin/rlogin.c index 2ddc2b8..63cf55f 100644 --- a/usr.bin/rlogin/rlogin.c +++ b/usr.bin/rlogin/rlogin.c @@ -32,13 +32,17 @@ */ #ifndef lint -static char copyright[] = +static const char copyright[] = "@(#) Copyright (c) 1983, 1990, 1993\n\ The Regents of the University of California. All rights reserved.\n"; #endif /* not lint */ #ifndef lint +#if 0 static char sccsid[] = "@(#)rlogin.c 8.1 (Berkeley) 6/6/93"; +#endif +static const char rcsid[] = + "$Id$"; #endif /* not lint */ /* @@ -55,6 +59,7 @@ static char sccsid[] = "@(#)rlogin.c 8.1 (Berkeley) 6/6/93"; #include <netinet/ip.h> #include <netinet/tcp.h> +#include <err.h> #include <errno.h> #include <fcntl.h> #include <netdb.h> @@ -235,10 +240,8 @@ main(argc, argv) if (*argv) usage(); - if (!(pw = getpwuid(uid = getuid()))) { - (void)fprintf(stderr, "rlogin: unknown user id.\n"); - exit(1); - } + if (!(pw = getpwuid(uid = getuid()))) + errx(1, "unknown user id"); if (!user) user = pw->pw_name; @@ -255,10 +258,8 @@ main(argc, argv) #endif if (sp == NULL) sp = getservbyname("login", "tcp"); - if (sp == NULL) { - (void)fprintf(stderr, "rlogin: login/tcp: unknown service.\n"); - exit(1); - } + if (sp == NULL) + errx(1, "login/tcp: unknown service"); #define MAX_TERM_LENGTH (sizeof(term) - 1 - MAX_SPEED_LENGTH - 1) @@ -291,11 +292,8 @@ try_connect: /* Fully qualify hostname (needed for krb_realmofhost). */ hp = gethostbyname(host); - if (hp != NULL && !(host = strdup(hp->h_name))) { - (void)fprintf(stderr, "rlogin: %s\n", - strerror(ENOMEM)); - exit(1); - } + if (hp != NULL && !(host = strdup(hp->h_name))) + errx(1, "%s", strerror(ENOMEM)); rem = KSUCCESS; errno = 0; @@ -314,11 +312,8 @@ try_connect: if (rem < 0) { use_kerberos = 0; sp = getservbyname("login", "tcp"); - if (sp == NULL) { - (void)fprintf(stderr, - "rlogin: unknown service login/tcp.\n"); - exit(1); - } + if (sp == NULL) + errx(1, "unknown service login/tcp"); if (errno == ECONNREFUSED) warning("remote host doesn't support Kerberos"); if (errno == ENOENT) @@ -327,11 +322,8 @@ try_connect: } } else { #ifdef CRYPT - if (doencrypt) { - (void)fprintf(stderr, - "rlogin: the -x flag requires Kerberos authentication.\n"); - exit(1); - } + if (doencrypt) + errx(1, "the -x flag requires Kerberos authentication"); #endif /* CRYPT */ rem = rcmd(&host, sp->s_port, pw->pw_name, user, term, 0); } @@ -344,15 +336,14 @@ try_connect: if (dflag && setsockopt(rem, SOL_SOCKET, SO_DEBUG, &one, sizeof(one)) < 0) - (void)fprintf(stderr, "rlogin: setsockopt: %s.\n", - strerror(errno)); + warn("setsockopt"); if (Dflag && setsockopt(rem, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) < 0) - perror("rlogin: setsockopt NODELAY (ignored)"); + warn("setsockopt NODELAY (ignored)"); one = IPTOS_LOWDELAY; if (setsockopt(rem, IPPROTO_IP, IP_TOS, (char *)&one, sizeof(int)) < 0) - perror("rlogin: setsockopt TOS (ignored)"); + warn("setsockopt TOS (ignored)"); (void)setuid(uid); doit(omask); @@ -388,7 +379,7 @@ doit(omask) setsignal(SIGQUIT); child = fork(); if (child == -1) { - (void)fprintf(stderr, "rlogin: fork: %s.\n", strerror(errno)); + warn("fork"); done(1); } if (child == 0) { @@ -712,8 +703,7 @@ oob(signo) (void)ioctl(1, TIOCFLUSH, (char *)&out); for (;;) { if (ioctl(rem, SIOCATMARK, &atmark) < 0) { - (void)fprintf(stderr, "rlogin: ioctl: %s.\n", - strerror(errno)); + warn("ioctl"); break; } if (atmark) @@ -791,8 +781,7 @@ reader(omask) if (rcvcnt < 0) { if (errno == EINTR) continue; - (void)fprintf(stderr, "rlogin: read: %s.\n", - strerror(errno)); + warn("read"); return (-1); } } |