summaryrefslogtreecommitdiff
path: root/www/wwwoffle
diff options
context:
space:
mode:
authorSteve Price <steve@FreeBSD.org>2000-07-07 19:31:03 +0000
committerSteve Price <steve@FreeBSD.org>2000-07-07 19:31:03 +0000
commit49d2ff06d8f8fd9ae3947594bf342ee06c565911 (patch)
treeb32d9fdfa8724f87a376495cfb7cec19fbc482a8 /www/wwwoffle
parentUpdate to version 1.3p5. (diff)
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
Notes
Notes: svn path=/head/; revision=30334
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 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;