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