summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www/wwwoffle/files/patch-ac84
1 files changed, 84 insertions, 0 deletions
diff --git a/www/wwwoffle/files/patch-ac b/www/wwwoffle/files/patch-ac
new file mode 100644
index 000000000000..7134de8be169
--- /dev/null
+++ b/www/wwwoffle/files/patch-ac
@@ -0,0 +1,84 @@
+--- io.c.orig Sun Jan 2 19:55:12 2000
++++ io.c Mon May 29 20:40:30 2000
+@@ -135,14 +135,17 @@
+ fd_set readfd;
+ struct timeval tv;
+
+- FD_ZERO(&readfd);
+-
+- FD_SET(fd,&readfd);
+-
+- tv.tv_sec=tv.tv_usec=0;
+-
+- if(select(fd+1,&readfd,NULL,NULL,&tv)<=0)
+- return(nr);
++ while(1)
++ {
++ tv.tv_sec=tv.tv_usec=0;
++ FD_ZERO(&readfd);
++ FD_SET(fd,&readfd);
++ n=select(fd+1,&readfd,NULL,NULL,&tv);
++ if(n>0)
++ break;
++ if(n==0 || errno!=EINTR)
++ return(nr);
++ }
+
+ n=read(fd,fdbuf[fd],BUFSIZE);
+
+@@ -206,15 +209,18 @@
+ fd_set readfd;
+ struct timeval tv;
+
+- FD_ZERO(&readfd);
+-
+- FD_SET(fd,&readfd);
+-
+- tv.tv_sec=timeout;
+- tv.tv_usec=0;
+-
+- if(select(fd+1,&readfd,NULL,NULL,&tv)<=0)
+- return(-1);
++ while(1)
++ {
++ tv.tv_sec=timeout;
++ tv.tv_usec=0;
++ FD_ZERO(&readfd);
++ FD_SET(fd,&readfd);
++ nr=select(fd+1,&readfd,NULL,NULL,&tv);
++ if(nr>0)
++ break;
++ if(nr==0 || errno!=EINTR)
++ return(-1);
++ }
+
+ nr=read(fd,buffer,n);
+ }
+@@ -364,15 +370,18 @@
+ fd_set readfd;
+ struct timeval tv;
+
+- FD_ZERO(&readfd);
+-
+- FD_SET(fd,&readfd);
+-
+- tv.tv_sec=timeout;
+- tv.tv_usec=0;
+-
+- if(select(fd+1,&readfd,NULL,NULL,&tv)<=0)
+- return(-1);
++ while(1)
++ {
++ tv.tv_sec=timeout;
++ tv.tv_usec=0;
++ FD_ZERO(&readfd);
++ FD_SET(fd,&readfd);
++ n=select(fd+1,&readfd,NULL,NULL,&tv);
++ if(n>0)
++ break;
++ if(n==0 || errno!=EINTR)
++ return(-1);
++ }
+
+ n=read(fd,fdbuf[fd]+fdbytes[fd],BUFSIZE-fdbytes[fd]);
+ fdbytes[fd]+=n;