Thread View: comp.bugs.2bsd
1 messages
1 total messages
Started by Keith Bostic
Sat, 17 Oct 1987 23:33
V1.8 (selscan routine is wrong)
Author: Keith Bostic
Date: Sat, 17 Oct 1987 23:33
Date: Sat, 17 Oct 1987 23:33
51 lines
1762 bytes
1762 bytes
Subject: selscan routine is wrong
Index: sys/sys_generic.c 2.10BSD
Description:
The selscan routine works erratically, at best, if UCB_NET
is defined.
Repeat-By:
Use the select(2) call.
Fix:
Apply the following patch to sys_generic.c.
*** sys_generic.c.old Sat Oct 17 15:56:15 1987
--- sys_generic.c Sat Oct 17 16:14:29 1987
***************
*** 326,338 ****
int flag;
struct file *fp;
int n = 0;
! int (*selroutine)();
!
#ifdef UCB_NET
! int soo_select(), ino_select();
! selroutine = (fp->f_type == DTYPE_SOCKET) ? soo_select : ino_select;
#else
- int ino_select();
selroutine = ino_select;
#endif
for (which = 0; which < 3; which++) {
--- 326,335 ----
int flag;
struct file *fp;
int n = 0;
! int (*selroutine)(), ino_select();
#ifdef UCB_NET
! int soo_select();
#else
selroutine = ino_select;
#endif
for (which = 0; which < 3; which++) {
***************
*** 356,361 ****
--- 353,361 ----
u.u_error = EBADF;
break;
}
+ #ifdef UCB_NET
+ selroutine = (fp->f_type == DTYPE_SOCKET) ? soo_select : ino_select;
+ #endif
if ((*selroutine)(fp, flag)) {
FD_SET(i + j, &obits[which]);
n++;
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads