[arch-commits] Commit in fcgi/repos (12 files)

Evangelos Foutras foutrelis at archlinux.org
Sat Dec 5 15:18:12 UTC 2015


    Date: Saturday, December 5, 2015 @ 16:18:12
  Author: foutrelis
Revision: 252405

archrelease: copy trunk to staging-i686, staging-x86_64

Added:
  fcgi/repos/staging-i686/
  fcgi/repos/staging-i686/PKGBUILD
    (from rev 252404, fcgi/trunk/PKGBUILD)
  fcgi/repos/staging-i686/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch)
  fcgi/repos/staging-i686/fcgi-2.4.0-configure.in.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-configure.in.patch)
  fcgi/repos/staging-i686/fcgi-2.4.0-gcc44_fixes.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-gcc44_fixes.patch)
  fcgi/repos/staging-i686/fcgi-2.4.0-poll.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-poll.patch)
  fcgi/repos/staging-x86_64/
  fcgi/repos/staging-x86_64/PKGBUILD
    (from rev 252404, fcgi/trunk/PKGBUILD)
  fcgi/repos/staging-x86_64/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch)
  fcgi/repos/staging-x86_64/fcgi-2.4.0-configure.in.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-configure.in.patch)
  fcgi/repos/staging-x86_64/fcgi-2.4.0-gcc44_fixes.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-gcc44_fixes.patch)
  fcgi/repos/staging-x86_64/fcgi-2.4.0-poll.patch
    (from rev 252404, fcgi/trunk/fcgi-2.4.0-poll.patch)

------------------------------------------------------+
 staging-i686/PKGBUILD                                |   50 +++++++++
 staging-i686/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch   |   36 +++++++
 staging-i686/fcgi-2.4.0-configure.in.patch           |   19 +++
 staging-i686/fcgi-2.4.0-gcc44_fixes.patch            |   11 ++
 staging-i686/fcgi-2.4.0-poll.patch                   |   86 +++++++++++++++++
 staging-x86_64/PKGBUILD                              |   50 +++++++++
 staging-x86_64/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch |   36 +++++++
 staging-x86_64/fcgi-2.4.0-configure.in.patch         |   19 +++
 staging-x86_64/fcgi-2.4.0-gcc44_fixes.patch          |   11 ++
 staging-x86_64/fcgi-2.4.0-poll.patch                 |   86 +++++++++++++++++
 10 files changed, 404 insertions(+)

Copied: fcgi/repos/staging-i686/PKGBUILD (from rev 252404, fcgi/trunk/PKGBUILD)
===================================================================
--- staging-i686/PKGBUILD	                        (rev 0)
+++ staging-i686/PKGBUILD	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,50 @@
+# $Id$
+# Maintainer: tobias <tobias at justdreams.de>
+# Modified by: eliott <eliott at cactuswax.net>
+# Original by Benjamin Andresen, klapmuetz [at] gmail [dot] com
+
+pkgname=fcgi
+pkgver=2.4.0
+pkgrel=11
+depends=('gcc-libs')
+pkgdesc="FASTCgi (fcgi) is a language independent, high performant extension to CGI"
+arch=('i686' 'x86_64')
+license=('custom')
+options=('!makeflags')
+url="http://www.fastcgi.com"
+source=("http://www.fastcgi.com/dist/${pkgname}-${pkgver}.tar.gz"
+        'fcgi-2.4.0-configure.in.patch' 'fcgi-2.4.0-Makefile.am-CPPFLAGS.patch'
+        'fcgi-2.4.0-gcc44_fixes.patch' 'fcgi-2.4.0-poll.patch')
+md5sums=('d15060a813b91383a9f3c66faf84867e'
+         '7e901968aa90168b6cdfc8323ca59868'
+         '8c07165aed574b853326ae25fe9af291'
+         '2e72c834db21da6af3f77dd2b36727a2'
+         '02900e5f2400ed2982db1e02c4a17aa8')
+
+prepare() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  # Patches by Fedora:
+  # http://pkgs.fedoraproject.org/cgit/fcgi.git/tree/
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-configure.in.patch"
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch"
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-gcc44_fixes.patch"
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-poll.patch"
+
+  libtoolize --automake --copy --force
+  aclocal
+  autoheader
+  automake --add-missing --force-missing --copy
+  autoconf
+}
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+  install -Dm644 LICENSE.TERMS "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}

Copied: fcgi/repos/staging-i686/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch)
===================================================================
--- staging-i686/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch	                        (rev 0)
+++ staging-i686/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,36 @@
+diff -ru fcgi-2.4.0-orig/cgi-fcgi/Makefile.am fcgi-2.4.0/cgi-fcgi/Makefile.am
+--- fcgi-2.4.0-orig/cgi-fcgi/Makefile.am	2007-03-05 18:09:31.000000000 +0100
++++ fcgi-2.4.0/cgi-fcgi/Makefile.am	2007-03-05 19:38:14.000000000 +0100
+@@ -2,7 +2,7 @@
+ bin_PROGRAMS     = cgi-fcgi
+ 
+ INCLUDEDIR  = ../include
+-CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
+ 
+ INCLUDE_FILES   = $(INCLUDEDIR)/fastcgi.h  \
+ 		  $(INCLUDEDIR)/fcgiapp.h  \
+diff -ru fcgi-2.4.0-orig/examples/Makefile.am fcgi-2.4.0/examples/Makefile.am
+--- fcgi-2.4.0-orig/examples/Makefile.am	2007-03-05 18:09:31.000000000 +0100
++++ fcgi-2.4.0/examples/Makefile.am	2007-03-05 19:38:34.000000000 +0100
+@@ -11,7 +11,7 @@
+ EXTRA_PROGRAMS = threaded echo-cpp
+ 
+ INCLUDEDIR  = ../include
+-CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
+ 
+ INCLUDE_FILES   = $(INCLUDEDIR)/fastcgi.h    \
+                   $(INCLUDEDIR)/fcgiapp.h    \
+diff -ru fcgi-2.4.0-orig/libfcgi/Makefile.am fcgi-2.4.0/libfcgi/Makefile.am
+--- fcgi-2.4.0-orig/libfcgi/Makefile.am	2007-03-05 18:09:31.000000000 +0100
++++ fcgi-2.4.0/libfcgi/Makefile.am	2007-03-05 19:38:03.000000000 +0100
+@@ -1,7 +1,7 @@
+ # $Id: fcgi-2.4.0-Makefile.am-CPPFLAGS.patch,v 1.1 2007/06/28 23:15:26 till Exp $
+ 
+ INCLUDEDIR  = ../include
+-CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
+ 
+ INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h     \
+                 $(INCLUDEDIR)/fcgiapp.h     \

Copied: fcgi/repos/staging-i686/fcgi-2.4.0-configure.in.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-configure.in.patch)
===================================================================
--- staging-i686/fcgi-2.4.0-configure.in.patch	                        (rev 0)
+++ staging-i686/fcgi-2.4.0-configure.in.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,19 @@
+diff -ru fcgi-2.4.0-orig/configure.in fcgi-2.4.0/configure.in
+--- fcgi-2.4.0-orig/configure.in	2003-01-19 18:19:41.000000000 +0100
++++ fcgi-2.4.0/configure.in	2007-03-05 20:48:14.000000000 +0100
+@@ -4,11 +4,13 @@
+ dnl     generate the file "configure", which is run during the build
+ dnl     to configure the system for the local environment.
+ 
+-AC_INIT
+-AM_INIT_AUTOMAKE(fcgi, 2.4.0)
++AC_INIT(fcgi, 2.4.0)
++AM_INIT_AUTOMAKE(1.9 foreign)
+ 
+ AM_CONFIG_HEADER(fcgi_config.h)
+ 
++AM_MAINTAINER_MODE
++
+ AC_PROG_CC
+ AC_PROG_CPP 
+ AC_PROG_INSTALL 

Copied: fcgi/repos/staging-i686/fcgi-2.4.0-gcc44_fixes.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-gcc44_fixes.patch)
===================================================================
--- staging-i686/fcgi-2.4.0-gcc44_fixes.patch	                        (rev 0)
+++ staging-i686/fcgi-2.4.0-gcc44_fixes.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,11 @@
+diff -up fcgi-2.4.0/libfcgi/fcgio.cpp.gcc44_fixes fcgi-2.4.0/libfcgi/fcgio.cpp
+--- fcgi-2.4.0/libfcgi/fcgio.cpp.gcc44_fixes	2002-02-24 21:12:22.000000000 +0100
++++ fcgi-2.4.0/libfcgi/fcgio.cpp	2009-02-15 11:35:18.000000000 +0100
+@@ -23,6 +23,7 @@
+ #endif
+ 
+ #include <limits.h>
++#include <cstdio>
+ #include "fcgio.h"
+ 
+ using std::streambuf;

Copied: fcgi/repos/staging-i686/fcgi-2.4.0-poll.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-poll.patch)
===================================================================
--- staging-i686/fcgi-2.4.0-poll.patch	                        (rev 0)
+++ staging-i686/fcgi-2.4.0-poll.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,86 @@
+Author: Anton Kortunov <toshic.toshic at gmail.com>
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libfcgi/+bug/933417
+Description: use poll in os_unix.c instead of select to avoid problem with > 1024 connections
+Forwarded: yes, fastcgi-developers at mailman.fastcgi.com
+
+diff --git a/libfcgi/os_unix.c b/libfcgi/os_unix.c
+index 73e6a7f..af35aee 100755
+--- a/libfcgi/os_unix.c
++++ b/libfcgi/os_unix.c
+@@ -42,6 +42,7 @@ static const char rcsid[] = "$Id: os_unix.c,v 1.37 2002/03/05 19:14:49 robs Exp
+ #include <sys/time.h>
+ #include <sys/un.h>
+ #include <signal.h>
++#include <poll.h>
+ 
+ #ifdef HAVE_NETDB_H
+ #include <netdb.h>
+@@ -103,6 +104,9 @@ static int volatile maxFd = -1;
+ static int shutdownPending = FALSE;
+ static int shutdownNow = FALSE;
+ 
++static int libfcgiOsClosePollTimeout = 2000;
++static int libfcgiIsAfUnixKeeperPollTimeout = 2000;
++
+ void OS_ShutdownPending()
+ {
+     shutdownPending = TRUE;
+@@ -168,6 +172,16 @@ int OS_LibInit(int stdioFds[3])
+     if(libInitialized)
+         return 0;
+ 
++    char *libfcgiOsClosePollTimeoutStr = getenv( "LIBFCGI_OS_CLOSE_POLL_TIMEOUT" );
++    if(libfcgiOsClosePollTimeoutStr) {
++        libfcgiOsClosePollTimeout = atoi(libfcgiOsClosePollTimeoutStr);
++    }
++
++    char *libfcgiIsAfUnixKeeperPollTimeoutStr = getenv( "LIBFCGI_IS_AF_UNIX_KEEPER_POLL_TIMEOUT" );
++    if(libfcgiIsAfUnixKeeperPollTimeoutStr) {
++        libfcgiIsAfUnixKeeperPollTimeout = atoi(libfcgiIsAfUnixKeeperPollTimeoutStr);
++    }
++
+     asyncIoTable = (AioInfo *)malloc(asyncIoTableSize * sizeof(AioInfo));
+     if(asyncIoTable == NULL) {
+         errno = ENOMEM;
+@@ -755,19 +769,16 @@ int OS_Close(int fd)
+ 
+     if (shutdown(fd, 1) == 0)
+     {
+-        struct timeval tv;
+-        fd_set rfds;
++        struct pollfd pfd;
+         int rv;
+         char trash[1024];
+ 
+-        FD_ZERO(&rfds);
++        pfd.fd = fd;
++        pfd.events = POLLIN;
+ 
+         do 
+         {
+-            FD_SET(fd, &rfds);
+-            tv.tv_sec = 2;
+-            tv.tv_usec = 0;
+-            rv = select(fd + 1, &rfds, NULL, NULL, &tv);
++            rv = poll(&pfd, 1, libfcgiOsClosePollTimeout);
+         }
+         while (rv > 0 && read(fd, trash, sizeof(trash)) > 0);
+     }
+@@ -1116,13 +1127,11 @@ static int is_reasonable_accept_errno (const int error)
+  */
+ static int is_af_unix_keeper(const int fd)
+ {
+-    struct timeval tval = { READABLE_UNIX_FD_DROP_DEAD_TIMEVAL };
+-    fd_set read_fds;
+-
+-    FD_ZERO(&read_fds);
+-    FD_SET(fd, &read_fds);
++    struct pollfd pfd;
++    pfd.fd = fd;
++    pfd.events = POLLIN;
+ 
+-    return select(fd + 1, &read_fds, NULL, NULL, &tval) >= 0 && FD_ISSET(fd, &read_fds);
++    return poll(&pfd, 1, libfcgiIsAfUnixKeeperPollTimeout) >= 0 && (pfd.revents & POLLIN);
+ }
+ 
+ /*

Copied: fcgi/repos/staging-x86_64/PKGBUILD (from rev 252404, fcgi/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD	                        (rev 0)
+++ staging-x86_64/PKGBUILD	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,50 @@
+# $Id$
+# Maintainer: tobias <tobias at justdreams.de>
+# Modified by: eliott <eliott at cactuswax.net>
+# Original by Benjamin Andresen, klapmuetz [at] gmail [dot] com
+
+pkgname=fcgi
+pkgver=2.4.0
+pkgrel=11
+depends=('gcc-libs')
+pkgdesc="FASTCgi (fcgi) is a language independent, high performant extension to CGI"
+arch=('i686' 'x86_64')
+license=('custom')
+options=('!makeflags')
+url="http://www.fastcgi.com"
+source=("http://www.fastcgi.com/dist/${pkgname}-${pkgver}.tar.gz"
+        'fcgi-2.4.0-configure.in.patch' 'fcgi-2.4.0-Makefile.am-CPPFLAGS.patch'
+        'fcgi-2.4.0-gcc44_fixes.patch' 'fcgi-2.4.0-poll.patch')
+md5sums=('d15060a813b91383a9f3c66faf84867e'
+         '7e901968aa90168b6cdfc8323ca59868'
+         '8c07165aed574b853326ae25fe9af291'
+         '2e72c834db21da6af3f77dd2b36727a2'
+         '02900e5f2400ed2982db1e02c4a17aa8')
+
+prepare() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  # Patches by Fedora:
+  # http://pkgs.fedoraproject.org/cgit/fcgi.git/tree/
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-configure.in.patch"
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch"
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-gcc44_fixes.patch"
+  patch -p1 -i "${srcdir}/fcgi-2.4.0-poll.patch"
+
+  libtoolize --automake --copy --force
+  aclocal
+  autoheader
+  automake --add-missing --force-missing --copy
+  autoconf
+}
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+  install -Dm644 LICENSE.TERMS "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}

Copied: fcgi/repos/staging-x86_64/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch)
===================================================================
--- staging-x86_64/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch	                        (rev 0)
+++ staging-x86_64/fcgi-2.4.0-Makefile.am-CPPFLAGS.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,36 @@
+diff -ru fcgi-2.4.0-orig/cgi-fcgi/Makefile.am fcgi-2.4.0/cgi-fcgi/Makefile.am
+--- fcgi-2.4.0-orig/cgi-fcgi/Makefile.am	2007-03-05 18:09:31.000000000 +0100
++++ fcgi-2.4.0/cgi-fcgi/Makefile.am	2007-03-05 19:38:14.000000000 +0100
+@@ -2,7 +2,7 @@
+ bin_PROGRAMS     = cgi-fcgi
+ 
+ INCLUDEDIR  = ../include
+-CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
+ 
+ INCLUDE_FILES   = $(INCLUDEDIR)/fastcgi.h  \
+ 		  $(INCLUDEDIR)/fcgiapp.h  \
+diff -ru fcgi-2.4.0-orig/examples/Makefile.am fcgi-2.4.0/examples/Makefile.am
+--- fcgi-2.4.0-orig/examples/Makefile.am	2007-03-05 18:09:31.000000000 +0100
++++ fcgi-2.4.0/examples/Makefile.am	2007-03-05 19:38:34.000000000 +0100
+@@ -11,7 +11,7 @@
+ EXTRA_PROGRAMS = threaded echo-cpp
+ 
+ INCLUDEDIR  = ../include
+-CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
+ 
+ INCLUDE_FILES   = $(INCLUDEDIR)/fastcgi.h    \
+                   $(INCLUDEDIR)/fcgiapp.h    \
+diff -ru fcgi-2.4.0-orig/libfcgi/Makefile.am fcgi-2.4.0/libfcgi/Makefile.am
+--- fcgi-2.4.0-orig/libfcgi/Makefile.am	2007-03-05 18:09:31.000000000 +0100
++++ fcgi-2.4.0/libfcgi/Makefile.am	2007-03-05 19:38:03.000000000 +0100
+@@ -1,7 +1,7 @@
+ # $Id: fcgi-2.4.0-Makefile.am-CPPFLAGS.patch,v 1.1 2007/06/28 23:15:26 till Exp $
+ 
+ INCLUDEDIR  = ../include
+-CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS    = @CPPFLAGS@ -I$(top_srcdir)/include
+ 
+ INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h     \
+                 $(INCLUDEDIR)/fcgiapp.h     \

Copied: fcgi/repos/staging-x86_64/fcgi-2.4.0-configure.in.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-configure.in.patch)
===================================================================
--- staging-x86_64/fcgi-2.4.0-configure.in.patch	                        (rev 0)
+++ staging-x86_64/fcgi-2.4.0-configure.in.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,19 @@
+diff -ru fcgi-2.4.0-orig/configure.in fcgi-2.4.0/configure.in
+--- fcgi-2.4.0-orig/configure.in	2003-01-19 18:19:41.000000000 +0100
++++ fcgi-2.4.0/configure.in	2007-03-05 20:48:14.000000000 +0100
+@@ -4,11 +4,13 @@
+ dnl     generate the file "configure", which is run during the build
+ dnl     to configure the system for the local environment.
+ 
+-AC_INIT
+-AM_INIT_AUTOMAKE(fcgi, 2.4.0)
++AC_INIT(fcgi, 2.4.0)
++AM_INIT_AUTOMAKE(1.9 foreign)
+ 
+ AM_CONFIG_HEADER(fcgi_config.h)
+ 
++AM_MAINTAINER_MODE
++
+ AC_PROG_CC
+ AC_PROG_CPP 
+ AC_PROG_INSTALL 

Copied: fcgi/repos/staging-x86_64/fcgi-2.4.0-gcc44_fixes.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-gcc44_fixes.patch)
===================================================================
--- staging-x86_64/fcgi-2.4.0-gcc44_fixes.patch	                        (rev 0)
+++ staging-x86_64/fcgi-2.4.0-gcc44_fixes.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,11 @@
+diff -up fcgi-2.4.0/libfcgi/fcgio.cpp.gcc44_fixes fcgi-2.4.0/libfcgi/fcgio.cpp
+--- fcgi-2.4.0/libfcgi/fcgio.cpp.gcc44_fixes	2002-02-24 21:12:22.000000000 +0100
++++ fcgi-2.4.0/libfcgi/fcgio.cpp	2009-02-15 11:35:18.000000000 +0100
+@@ -23,6 +23,7 @@
+ #endif
+ 
+ #include <limits.h>
++#include <cstdio>
+ #include "fcgio.h"
+ 
+ using std::streambuf;

Copied: fcgi/repos/staging-x86_64/fcgi-2.4.0-poll.patch (from rev 252404, fcgi/trunk/fcgi-2.4.0-poll.patch)
===================================================================
--- staging-x86_64/fcgi-2.4.0-poll.patch	                        (rev 0)
+++ staging-x86_64/fcgi-2.4.0-poll.patch	2015-12-05 15:18:12 UTC (rev 252405)
@@ -0,0 +1,86 @@
+Author: Anton Kortunov <toshic.toshic at gmail.com>
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libfcgi/+bug/933417
+Description: use poll in os_unix.c instead of select to avoid problem with > 1024 connections
+Forwarded: yes, fastcgi-developers at mailman.fastcgi.com
+
+diff --git a/libfcgi/os_unix.c b/libfcgi/os_unix.c
+index 73e6a7f..af35aee 100755
+--- a/libfcgi/os_unix.c
++++ b/libfcgi/os_unix.c
+@@ -42,6 +42,7 @@ static const char rcsid[] = "$Id: os_unix.c,v 1.37 2002/03/05 19:14:49 robs Exp
+ #include <sys/time.h>
+ #include <sys/un.h>
+ #include <signal.h>
++#include <poll.h>
+ 
+ #ifdef HAVE_NETDB_H
+ #include <netdb.h>
+@@ -103,6 +104,9 @@ static int volatile maxFd = -1;
+ static int shutdownPending = FALSE;
+ static int shutdownNow = FALSE;
+ 
++static int libfcgiOsClosePollTimeout = 2000;
++static int libfcgiIsAfUnixKeeperPollTimeout = 2000;
++
+ void OS_ShutdownPending()
+ {
+     shutdownPending = TRUE;
+@@ -168,6 +172,16 @@ int OS_LibInit(int stdioFds[3])
+     if(libInitialized)
+         return 0;
+ 
++    char *libfcgiOsClosePollTimeoutStr = getenv( "LIBFCGI_OS_CLOSE_POLL_TIMEOUT" );
++    if(libfcgiOsClosePollTimeoutStr) {
++        libfcgiOsClosePollTimeout = atoi(libfcgiOsClosePollTimeoutStr);
++    }
++
++    char *libfcgiIsAfUnixKeeperPollTimeoutStr = getenv( "LIBFCGI_IS_AF_UNIX_KEEPER_POLL_TIMEOUT" );
++    if(libfcgiIsAfUnixKeeperPollTimeoutStr) {
++        libfcgiIsAfUnixKeeperPollTimeout = atoi(libfcgiIsAfUnixKeeperPollTimeoutStr);
++    }
++
+     asyncIoTable = (AioInfo *)malloc(asyncIoTableSize * sizeof(AioInfo));
+     if(asyncIoTable == NULL) {
+         errno = ENOMEM;
+@@ -755,19 +769,16 @@ int OS_Close(int fd)
+ 
+     if (shutdown(fd, 1) == 0)
+     {
+-        struct timeval tv;
+-        fd_set rfds;
++        struct pollfd pfd;
+         int rv;
+         char trash[1024];
+ 
+-        FD_ZERO(&rfds);
++        pfd.fd = fd;
++        pfd.events = POLLIN;
+ 
+         do 
+         {
+-            FD_SET(fd, &rfds);
+-            tv.tv_sec = 2;
+-            tv.tv_usec = 0;
+-            rv = select(fd + 1, &rfds, NULL, NULL, &tv);
++            rv = poll(&pfd, 1, libfcgiOsClosePollTimeout);
+         }
+         while (rv > 0 && read(fd, trash, sizeof(trash)) > 0);
+     }
+@@ -1116,13 +1127,11 @@ static int is_reasonable_accept_errno (const int error)
+  */
+ static int is_af_unix_keeper(const int fd)
+ {
+-    struct timeval tval = { READABLE_UNIX_FD_DROP_DEAD_TIMEVAL };
+-    fd_set read_fds;
+-
+-    FD_ZERO(&read_fds);
+-    FD_SET(fd, &read_fds);
++    struct pollfd pfd;
++    pfd.fd = fd;
++    pfd.events = POLLIN;
+ 
+-    return select(fd + 1, &read_fds, NULL, NULL, &tval) >= 0 && FD_ISSET(fd, &read_fds);
++    return poll(&pfd, 1, libfcgiIsAfUnixKeeperPollTimeout) >= 0 && (pfd.revents & POLLIN);
+ }
+ 
+ /*



More information about the arch-commits mailing list