diff options
| author | Richard Basch <probe@mit.edu> | 1994-12-28 23:30:34 +0000 |
|---|---|---|
| committer | Richard Basch <probe@mit.edu> | 1994-12-28 23:30:34 +0000 |
| commit | b57c5f9a9954caef4c608b395379f2bfcb0c491b (patch) | |
| tree | c05ac508d45901f7b02e8ac415b2e70435684a63 /src/appl | |
| parent | 79d4cc57ffd4c78db31fa52ce2d9d4259cdc6917 (diff) | |
| download | krb5-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/ChangeLog | 7 | ||||
| -rw-r--r-- | src/appl/bsd/krlogin.c | 2 | ||||
| -rw-r--r-- | src/appl/bsd/krlogind.c | 2 | ||||
| -rw-r--r-- | src/appl/bsd/krsh.c | 34 | ||||
| -rw-r--r-- | src/appl/bsd/krshd.c | 2 |
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)) { |
