From 8836823f774f48159f725b61602eec93ca449af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Mon, 2 Jun 1997 20:48:50 -0700 Subject: [PATCH] now detects SCO select bug Rev: src/modules/files/configure.in:1.25 --- src/modules/files/configure.in | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/modules/files/configure.in b/src/modules/files/configure.in index ae1086db06..22324b4c4e 100644 --- a/src/modules/files/configure.in +++ b/src/modules/files/configure.in @@ -199,7 +199,6 @@ AC_TRY_RUN([ #include <stdio.h> #include <sys/types.h> #include <sys/wait.h> -#include <signal.h> #include <netinet/in.h> #include <errno.h> #include <unistd.h> @@ -214,20 +213,31 @@ AC_TRY_RUN([ int main() { fd_set tmp; + struct timeval foo; int fds[2]; + if(socketpair(AF_UNIX, SOCK_STREAM, 0, fds)<0) exit(1); - while(write(fds[0],"foo",3)<0 && errno==EINTR); + shutdown(fds[1],1); + shutdown(fds[0],1); + close(fds[0]); + + foo.tv_sec=5; + foo.tv_usec=0; FD_ZERO(&tmp); FD_SET(fds[1], &tmp); - alarm(5); - if(select(fds[1]+1,&tmp, 0,0,0)>0 && FD_ISSET(fds[1], &tmp)) - exit(0); - exit(1); + if(select(fds[1]+1,&tmp, 0,0,&foo)<=0) + exit(2); + + if(!FD_ISSET(fds[1], &tmp)) + exit(3); + + exit(0); } + ],pike_cv_select_on_unix_sockets=yes,pike_cv_select_on_unix_sockets=no) ]) -- GitLab