diff options
author | steve <steve@FreeBSD.org> | 2000-07-08 03:31:03 +0800 |
---|---|---|
committer | steve <steve@FreeBSD.org> | 2000-07-08 03:31:03 +0800 |
commit | 447f2da22212a31f61fd3eeace56e51a1c76f493 (patch) | |
tree | 52d57e96d71388aaff6d049278e1cb82376f2052 /www/wwwoffle/files | |
parent | 675262e2b16544e4dc035c2cb955862563cc3bb5 (diff) | |
download | freebsd-ports-gnome-447f2da22212a31f61fd3eeace56e51a1c76f493.tar.gz freebsd-ports-gnome-447f2da22212a31f61fd3eeace56e51a1c76f493.tar.zst freebsd-ports-gnome-447f2da22212a31f61fd3eeace56e51a1c76f493.zip |
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/files')
-rw-r--r-- | www/wwwoffle/files/patch-ac | 84 |
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; |