diff options
author | Mark Newton <newton@FreeBSD.org> | 1999-07-30 13:12:26 +0000 |
---|---|---|
committer | Mark Newton <newton@FreeBSD.org> | 1999-07-30 13:12:26 +0000 |
commit | f46f4cccb85842a2cd9b9e4fb6ef3b8cce1a850e (patch) | |
tree | b87e17c599c68ab75d341aecadd09c1172f0f638 /sys/compat/svr4 | |
parent | 593bbda37661c6f6c4ba2fac02969da776bf3b60 (diff) | |
download | src-f46f4cccb85842a2cd9b9e4fb6ef3b8cce1a850e.tar.gz src-f46f4cccb85842a2cd9b9e4fb6ef3b8cce1a850e.zip |
Fix svr4_sys_poll(); SysV STREAMS produce return values from poll() which
BSD sockets don't. Guess at a correct emulation for those values (it seems
to work for telnet, ftp and friends)
Notes
Notes:
svn path=/head/; revision=49278
Diffstat (limited to 'sys/compat/svr4')
-rw-r--r-- | sys/compat/svr4/svr4_filio.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/compat/svr4/svr4_filio.c b/sys/compat/svr4/svr4_filio.c index bc7f9701f99f..9dfeced92f6b 100644 --- a/sys/compat/svr4/svr4_filio.c +++ b/sys/compat/svr4/svr4_filio.c @@ -82,21 +82,17 @@ svr4_sys_poll(p, uap) error = cerr; goto done; } + DPRINTF(("poll(%x, %x, %d) = %d\n", SCARG(uap, fds), SCARG(uap, nfds), + SCARG(uap, timeout), p->p_retval[0])); for (idx = 0; idx < SCARG(uap, nfds); idx++) { /* POLLWRNORM already equals POLLOUT, so we don't worry about that */ - if (pfd[idx].revents & (POLLIN | POLLRDNORM | POLLRDBAND | POLLPRI)) - pfd[idx].revents |= (POLLIN | POLLRDBAND | POLLRDNORM | POLLPRI); if (pfd[idx].revents & (POLLOUT | POLLWRNORM | POLLWRBAND)) pfd[idx].revents |= (POLLOUT | POLLWRNORM | POLLWRBAND); - pfd[idx].revents &= POLLSTANDARD; /* don't want to surprise SysV */ - DPRINTF(("pollfd[%d]->fd = %d\n", idx, pfd[idx].fd)); DPRINTF(("pollfd[%d]->events = %x\n", idx, pfd[idx].events)); DPRINTF(("pollfd[%d]->revents = %x\n", idx, pfd[idx].revents)); } - DPRINTF(("poll(%x, %x, %d) = %d\n", SCARG(uap, fds), SCARG(uap, nfds), - SCARG(uap, timeout), p->p_retval[0])); if ((cerr = copyout(pfd, SCARG(uap, fds), siz)) != 0) { error = cerr; goto done; /* yeah, I know it's the next line, but this way I won't |