summaryrefslogtreecommitdiffstats
path: root/www/wwwoffle
diff options
context:
space:
mode:
authorsteve <steve@FreeBSD.org>2000-07-07 19:31:03 +0000
committersteve <steve@FreeBSD.org>2000-07-07 19:31:03 +0000
commit447f2da22212a31f61fd3eeace56e51a1c76f493 (patch)
tree52d57e96d71388aaff6d049278e1cb82376f2052 /www/wwwoffle
parent675262e2b16544e4dc035c2cb955862563cc3bb5 (diff)
downloadFreeBSD-ports-447f2da22212a31f61fd3eeace56e51a1c76f493.zip
FreeBSD-ports-447f2da22212a31f61fd3eeace56e51a1c76f493.tar.gz
From the submitter:
The wwwoffled program in the www/wwwoffle port doesn't retry a select() call when select() fails with EINTR, which it should do. This causes problems such as a 'wwwoffle -offline' command not taking effect which can be annoying. PR: 19652 Submitted by: maintainer
Diffstat (limited to 'www/wwwoffle')
-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 0000000..7134de8
--- /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;
OpenPOWER on IntegriCloud