[patch] libexec/rlogind cleanup
Peter Schuller
peter.schuller at infidyne.com
Fri May 13 15:35:45 PDT 2005
* WARNS=6
* Makes functions static
* Style fixes w.r.t. function arguments
* Constification
* A couple of renames of local vars that were previously shadowing eachother
* The 'kerberos' support mentioned in the man-page seems non-existent, apart
from the do_krb_login() function being declared (but not implemented).
The patch removes the function declaration and removes the reference to
kerberos in the manpage. I'm not sure what people think about this; I
presume the rlogind cmdline params might be considered 'standard'. Would
it perhaps be better to keep the manpage as is, but add a note that it is
currently not implemented?
* The code depending on CRYPT (and which implements -x documented in the manpage)
is there, but I cannot find any place where CRYPT is defined. In other words,
unless I am missing something, -x is effectively unsupported from a user
stand-point. The patch doesn't touch this however (opinions?).
--
/ Peter Schuller, InfiDyne Technologies HB
PGP userID: 0xE9758B7D or 'Peter Schuller <peter.schuller at xxxxxxxxxxxx>'
Key retrieval: Send an E-Mail to getpgpkey at xxxxxxxxx
E-Mail: peter.schuller at xxxxxxxxxxxx Web: http://www.scode.org
--- libexec/rlogind/Makefile.orig 2005-05-13 14:25:34.000000000 +0000
+++ libexec/rlogind/Makefile 2005-05-13 14:25:48.000000000 +0000
@@ -8,5 +8,6 @@
DPADD= ${LIBUTIL}
LDADD= -lutil
CFLAGS+= -Wall -DINET6
+WARNS?= 6
.include <bsd.prog.mk>
--- libexec/rlogind/rlogind.8.orig 2005-05-13 15:10:02.000000000 +0000
+++ libexec/rlogind/rlogind.8 2005-05-13 15:15:47.000000000 +0000
@@ -65,12 +65,8 @@
Disable keep-alive messages.
.El
.Pp
-The following options are valid only if Kerberos is in use:
+The following options are valid only if encryption is enabled:
.Bl -tag -width indent
-.It Fl k
-Enable Kerberos authentication.
-.It Fl v
-Enable vacuous mode.
.It Fl x
Enable
.Tn DES
--- libexec/rlogind/rlogind.c.orig 2005-05-13 14:25:39.000000000 +0000
+++ libexec/rlogind/rlogind.c 2005-05-13 15:08:38.000000000 +0000
@@ -83,6 +83,8 @@
#define NI_WITHSCOPEID 0
#endif
+extern int __check_rhosts_file;
+
char *env[2];
#define NMAX 30
char lusername[NMAX+1], rusername[NMAX+1];
@@ -107,24 +109,21 @@
#define su_family su_si.si_family
#define su_port su_si.si_port
-void doit (int, union sockunion *);
-int control (int, char *, int);
-void protocol (int, int);
-void cleanup (int);
-void fatal (int, char *, int);
-int do_rlogin (union sockunion *);
-void getstr (char *, int, char *);
-void setup_term (int);
-int do_krb_login (struct sockaddr_in *);
-void usage (void);
-
+static void doit (int, union sockunion *);
+static int control (int, char *, int);
+static void protocol (int, int);
+static void cleanup (int);
+static void fatal (int, const char *, int);
+static int do_rlogin (union sockunion *);
+static void getstr (char *, int, const char *);
+static void setup_term (int);
+static void usage (void);
int
main(argc, argv)
int argc;
char *argv[];
{
- extern int __check_rhosts_file;
union sockunion from;
int ch, fromlen, on;
@@ -189,10 +188,8 @@
struct winsize win = { 0, 0, 0, 0 };
-void
-doit(f, fromp)
- int f;
- union sockunion *fromp;
+static void
+doit(int f, union sockunion *fromp)
{
int master, pid, on = 1;
int authenticated = 0;
@@ -245,17 +242,17 @@
if (getsockopt(0, ipproto, IP_OPTIONS, (char *)optbuf,
&optsize) == 0 && optsize != 0) {
for (i = 0; i < optsize; ) {
- u_char c = optbuf[i];
- if (c == IPOPT_LSRR || c == IPOPT_SSRR) {
+ u_char optc = optbuf[i];
+ if (optc == IPOPT_LSRR || optc == IPOPT_SSRR) {
syslog(LOG_NOTICE,
"Connection refused from %s with IP option %s",
inet_ntoa(fromp->su_sin.sin_addr),
- c == IPOPT_LSRR ? "LSRR" : "SSRR");
+ optc == IPOPT_LSRR ? "LSRR" : "SSRR");
exit(1);
}
- if (c == IPOPT_EOL)
+ if (optc == IPOPT_EOL)
break;
- i += (c == IPOPT_NOP) ? 1 : optbuf[i+1];
+ i += (optc == IPOPT_NOP) ? 1 : optbuf[i+1];
}
}
}
@@ -326,15 +323,12 @@
* in the data stream. For now, we are only willing to handle
* window size changes.
*/
-int
-control(pty, cp, n)
- int pty;
- char *cp;
- int n;
+static int
+control(int pty, char *cp, int n)
{
struct winsize w;
- if (n < 4+sizeof (w) || cp[2] != 's' || cp[3] != 's')
+ if (n < 4+(int)(sizeof (w)) || cp[2] != 's' || cp[3] != 's')
return (0);
oobdata[0] &= ~TIOCPKT_WINDOW; /* we know he heard */
bcopy(cp+4, (char *)&w, sizeof(w));
@@ -349,9 +343,8 @@
/*
* rlogin "protocol" machine.
*/
-void
-protocol(f, p)
- register int f, p;
+static void
+protocol(register int f, int p)
{
char pibuf[1024+1], fibuf[1024], *pbp = NULL, *fbp = NULL;
int pcc = 0, fcc = 0;
@@ -427,7 +420,7 @@
fcc = 0;
else {
register char *cp;
- int left, n;
+ int left, count;
if (fcc <= 0)
break;
@@ -438,12 +431,12 @@
if (cp[0] == magic[0] &&
cp[1] == magic[1]) {
left = fcc - (cp-fibuf);
- n = control(p, cp, left);
- if (n) {
- left -= n;
+ count = control(p, cp, left);
+ if (count > 0) {
+ left -= count;
if (left > 0)
- bcopy(cp+n, cp, left);
- fcc -= n;
+ bcopy(cp+count, cp, left);
+ fcc -= count;
goto top; /* n^2 */
}
}
@@ -506,9 +499,8 @@
}
}
-void
-cleanup(signo)
- int signo;
+static void
+cleanup(__unused int signo)
{
char *p;
@@ -526,11 +518,8 @@
exit(1);
}
-void
-fatal(f, msg, syserr)
- int f;
- char *msg;
- int syserr;
+static void
+fatal(int f, const char *msg, int syserr)
{
int len;
char buf[BUFSIZ], *bp = buf;
@@ -550,9 +539,8 @@
exit(1);
}
-int
-do_rlogin(dest)
- union sockunion *dest;
+static int
+do_rlogin(union sockunion *dest)
{
getstr(rusername, sizeof(rusername), "remuser too long");
@@ -568,11 +556,8 @@
lusername));
}
-void
-getstr(buf, cnt, errmsg)
- char *buf;
- int cnt;
- char *errmsg;
+static void
+getstr(char *buf, int cnt, const char *errmsg)
{
char c;
@@ -587,9 +572,8 @@
extern char **environ;
-void
-setup_term(fd)
- int fd;
+static void
+setup_term(int fd)
{
register char *cp = index(term+ENVSIZE, '/');
char *speed;
@@ -628,7 +612,7 @@
environ = env;
}
-void
+static void
usage()
{
syslog(LOG_ERR, "usage: rlogind [-" ARGSTR "]");
More information about the Submit
mailing list