summaryrefslogtreecommitdiffstats
path: root/src/appl
diff options
context:
space:
mode:
authorRichard Basch <probe@mit.edu>1994-12-28 23:30:34 +0000
committerRichard Basch <probe@mit.edu>1994-12-28 23:30:34 +0000
commitb57c5f9a9954caef4c608b395379f2bfcb0c491b (patch)
treec05ac508d45901f7b02e8ac415b2e70435684a63 /src/appl
parent79d4cc57ffd4c78db31fa52ce2d9d4259cdc6917 (diff)
downloadkrb5-b57c5f9a9954caef4c608b395379f2bfcb0c491b.tar.gz
krb5-b57c5f9a9954caef4c608b395379f2bfcb0c491b.tar.xz
krb5-b57c5f9a9954caef4c608b395379f2bfcb0c491b.zip
* krlogin.c
* krlogind.c * krsh.c * krshd.c Corrected the arguments to select, based on sizeof fd_set. Converted what remained to use FD_* macros, instead of bitshift git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4777 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl')
-rw-r--r--src/appl/bsd/ChangeLog7
-rw-r--r--src/appl/bsd/krlogin.c2
-rw-r--r--src/appl/bsd/krlogind.c2
-rw-r--r--src/appl/bsd/krsh.c34
-rw-r--r--src/appl/bsd/krshd.c2
5 files changed, 32 insertions, 15 deletions
diff --git a/src/appl/bsd/ChangeLog b/src/appl/bsd/ChangeLog
index c51c6ca51..2667ac907 100644
--- a/src/appl/bsd/ChangeLog
+++ b/src/appl/bsd/ChangeLog
@@ -1,5 +1,12 @@
Wed Dec 28 14:59:58 1994 Richard Basch (probe@tardis)
+ * krlogin.c
+ * krlogind.c
+ * krsh.c
+ * krshd.c
+ Corrected the arguments to select, based on sizeof fd_set.
+ Converted what remained to use FD_* macros, instead of bitshift
+
* login.c
Changed uid_type to uid_t, gid_type to gid_t
Added shadow password support
diff --git a/src/appl/bsd/krlogin.c b/src/appl/bsd/krlogin.c
index 508b0d3b5..5b6946572 100644
--- a/src/appl/bsd/krlogin.c
+++ b/src/appl/bsd/krlogin.c
@@ -1010,7 +1010,7 @@ writer()
for (;;) {
FD_ZERO(&waitread);
FD_SET(0, &waitread);
- n = select(1, &waitread, 0, 0, 0, 0);
+ n = select(8*sizeof(waitread), &waitread, 0, 0, 0, 0);
if (n < 0 && errno == EINTR)
continue;
if (n > 0)
diff --git a/src/appl/bsd/krlogind.c b/src/appl/bsd/krlogind.c
index 44688a1b5..c894ddad7 100644
--- a/src/appl/bsd/krlogind.c
+++ b/src/appl/bsd/krlogind.c
@@ -953,7 +953,7 @@ protocol(f, p)
FD_SET(p, &ibits);
FD_SET(p, &ebits);
- if (select(16, &ibits, &obits, &ebits, 0) < 0) {
+ if (select(8*sizeof(ibits), &ibits, &obits, &ebits, 0) < 0) {
if (errno == EINTR)
continue;
fatalperror(f, "select");
diff --git a/src/appl/bsd/krsh.c b/src/appl/bsd/krsh.c
index 7bfba4ea1..f863d70e7 100644
--- a/src/appl/bsd/krsh.c
+++ b/src/appl/bsd/krsh.c
@@ -44,6 +44,10 @@ char copyright[] =
#include <pwd.h>
#include <netdb.h>
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+
#ifdef HAVE_SYS_FILIO_H
/* get FIONBIO from sys/filio.h, so what if it is a compatibility feature */
#include <sys/filio.h>
@@ -101,7 +105,7 @@ main(argc, argv0)
char *host=0, *cp, **ap, buf[BUFSIZ], *args, **argv = argv0, *user = 0;
register int cc;
struct passwd *pwd;
- int readfrom, ready;
+ fd_set readfrom, ready;
int one = 1;
struct servent *sp;
#ifdef POSIX_SIGNALS
@@ -392,7 +396,10 @@ main(argc, argv0)
ioctl(rfd2, FIONBIO, &one);
ioctl(rem, FIONBIO, &one);
if (nflag == 0 && pid == 0) {
- char *bp; int rembits, wc;
+ char *bp;
+ int wc;
+ fd_set rembits;
+
(void) close(rfd2);
reread:
errno = 0;
@@ -401,15 +408,16 @@ main(argc, argv0)
goto done;
bp = buf;
rewrite:
- rembits = 1<<rem;
- if (select(16, 0, &rembits, 0, 0) < 0) {
+ FD_ZERO(&rembits);
+ FD_SET(rem, &rembits);
+ if (select(8*sizeof(rembits), 0, &rembits, 0, 0) < 0) {
if (errno != EINTR) {
perror("select");
exit(1);
}
goto rewrite;
}
- if ((rembits & (1<<rem)) == 0)
+ if (FD_ISSET(rem, &rembits) == 0)
goto rewrite;
wc = write(rem, bp, cc);
if (wc < 0) {
@@ -432,35 +440,37 @@ main(argc, argv0)
sigsetmask(omask);
#endif
#endif /* POSIX_SIGNALS */
- readfrom = (1<<rfd2) | (1<<rem);
+ FD_ZERO(&readfrom);
+ FD_SET(rfd2, &readfrom);
+ FD_SET(rem, &readfrom);
do {
ready = readfrom;
- if (select(16, &ready, 0, 0, 0) < 0) {
+ if (select(8*sizeof(ready), &ready, 0, 0, 0) < 0) {
if (errno != EINTR) {
perror("select");
exit(1);
}
continue;
}
- if (ready & (1<<rfd2)) {
+ if (FD_ISSET(rfd2, &ready)) {
errno = 0;
cc = read(rfd2, buf, sizeof buf);
if (cc <= 0) {
if ((errno != EWOULDBLOCK) && (errno != EAGAIN))
- readfrom &= ~(1<<rfd2);
+ FD_CLR(rfd2, &readfrom);
} else
(void) write(2, buf, cc);
}
- if (ready & (1<<rem)) {
+ if (FD_ISSET(rem, &ready)) {
errno = 0;
cc = read(rem, buf, sizeof buf);
if (cc <= 0) {
if ((errno != EWOULDBLOCK) && (errno != EAGAIN))
- readfrom &= ~(1<<rem);
+ FD_CLR(rem, &readfrom);
} else
(void) write(1, buf, cc);
}
- } while (readfrom);
+ } while (FD_ISSET(rem, &readfrom) || FD_ISSET(rfd2, &readfrom));
if (nflag == 0)
(void) kill(pid, SIGKILL);
exit(0);
diff --git a/src/appl/bsd/krshd.c b/src/appl/bsd/krshd.c
index 1a9e3e5dc..413e42e63 100644
--- a/src/appl/bsd/krshd.c
+++ b/src/appl/bsd/krshd.c
@@ -1063,7 +1063,7 @@ doit(f, fromp)
/* should set s nbio! */
do {
ready = readfrom;
- if (select(16, &ready, (fd_set *)0,
+ if (select(8*sizeof(ready), &ready, (fd_set *)0,
(fd_set *)0, (struct timeval *)0) < 0)
break;
if (FD_ISSET(s, &ready)) {