SOURCES: lighttpd-branch.diff - update to r2199: - merge spawn-fcgi chang...
glen
glen at pld-linux.org
Mon Jul 14 17:49:40 CEST 2008
Author: glen Date: Mon Jul 14 15:49:39 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- update to r2199:
- merge spawn-fcgi changes from trunk (from @2191)
- let spawn-fcgi propagate exit code from spawned fcgi application
---- Files affected:
SOURCES:
lighttpd-branch.diff (1.36 -> 1.37)
---- Diffs:
================================================================
Index: SOURCES/lighttpd-branch.diff
diff -u SOURCES/lighttpd-branch.diff:1.36 SOURCES/lighttpd-branch.diff:1.37
--- SOURCES/lighttpd-branch.diff:1.36 Tue Jun 17 18:10:03 2008
+++ SOURCES/lighttpd-branch.diff Mon Jul 14 17:49:34 2008
@@ -1,7 +1,7 @@
Index: lighttpd.spec.in
===================================================================
---- lighttpd.spec.in (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ lighttpd.spec.in (.../branches/lighttpd-1.4.x) (revision 2190)
+--- lighttpd.spec.in (.../tags/lighttpd-1.4.19) (revision 2199)
++++ lighttpd.spec.in (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -1,83 +0,0 @@
-Summary: A fast webserver with minimal memory-footprint (lighttpd)
-Name: lighttpd
@@ -90,8 +90,8 @@
===================================================================
Index: src/mod_ssi_exprparser.h
===================================================================
---- src/mod_ssi_exprparser.h (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_ssi_exprparser.h (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_ssi_exprparser.h (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_ssi_exprparser.h (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -1,12 +0,0 @@
-#define TK_AND 1
-#define TK_OR 2
@@ -107,8 +107,8 @@
-#define TK_VALUE 12
Index: src/configfile-glue.c
===================================================================
---- src/configfile-glue.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/configfile-glue.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/configfile-glue.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/configfile-glue.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -529,7 +529,7 @@
int config_append_cond_match_buffer(connection *con, data_config *dc, buffer *buf, int n)
{
@@ -120,8 +120,8 @@
Index: src/mod_cgi.c
===================================================================
---- src/mod_cgi.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_cgi.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_cgi.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_cgi.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -987,6 +987,8 @@
*c = '/';
}
@@ -173,8 +173,8 @@
chunkqueue_remove_finished_chunks(cq);
Index: src/mod_rewrite.c
===================================================================
---- src/mod_rewrite.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_rewrite.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_rewrite.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_rewrite.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -385,8 +385,7 @@
start = 0; end = pattern_len;
@@ -199,8 +199,8 @@
buffer_append_string(con->request.uri, list[num]);
Index: src/lempar.c
===================================================================
---- src/lempar.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/lempar.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/lempar.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/lempar.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -210,7 +210,7 @@
*/
const char *ParseTokenName(int tokenType){
@@ -248,8 +248,8 @@
%%
Index: src/connections.c
===================================================================
---- src/connections.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/connections.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/connections.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/connections.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -199,6 +199,7 @@
/* don't resize the buffer if we were in SSL_ERROR_WANT_* */
@@ -423,8 +423,8 @@
switch(con->mode) {
Index: src/configfile.c
===================================================================
---- src/configfile.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/configfile.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/configfile.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/configfile.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -7,6 +7,7 @@
#include <string.h>
#include <stdio.h>
@@ -517,8 +517,8 @@
Index: src/lemon.c
===================================================================
---- src/lemon.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/lemon.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/lemon.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/lemon.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -12,6 +12,19 @@
#include <ctype.h>
#include <stdlib.h>
@@ -601,8 +601,8 @@
size_t filesize;
Index: src/mod_scgi.c
===================================================================
---- src/mod_scgi.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_scgi.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_scgi.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_scgi.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -202,6 +202,15 @@
*
*/
@@ -875,8 +875,8 @@
Index: src/lighttpd-angel.c
===================================================================
---- src/lighttpd-angel.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/lighttpd-angel.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/lighttpd-angel.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/lighttpd-angel.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -28,9 +28,12 @@
static volatile sig_atomic_t graceful_restart = 0;
static volatile pid_t pid = -1;
@@ -901,8 +901,8 @@
*/
Index: src/mod_rrdtool.c
===================================================================
---- src/mod_rrdtool.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_rrdtool.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_rrdtool.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_rrdtool.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -148,6 +148,8 @@
args[i++] = dash;
args[i++] = NULL;
@@ -923,8 +923,8 @@
SEGFAULT();
Index: src/response.c
===================================================================
---- src/response.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/response.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/response.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/response.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -101,7 +101,7 @@
if (!have_server) {
if (buffer_is_empty(con->conf.server_tag)) {
@@ -945,8 +945,8 @@
log_error_write(srv, __FILE__, __LINE__, "s", "run condition");
Index: src/plugin.c
===================================================================
---- src/plugin.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/plugin.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/plugin.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/plugin.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -197,7 +197,7 @@
#else
@@ -958,8 +958,8 @@
#endif
Index: src/SConscript
===================================================================
---- src/SConscript (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/SConscript (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/SConscript (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/SConscript (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -43,6 +43,7 @@
'mod_cgi' : { 'src' : [ 'mod_cgi.c' ] },
'mod_fastcgi' : { 'src' : [ 'mod_fastcgi.c' ] },
@@ -970,8 +970,8 @@
'mod_indexfile' : { 'src' : [ 'mod_indexfile.c' ] },
Index: src/mod_extforward.c
===================================================================
---- src/mod_extforward.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_extforward.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_extforward.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_extforward.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -281,8 +281,9 @@
static const char *last_not_in_array(array *a, plugin_data *p)
{
@@ -985,8 +985,8 @@
Index: src/Makefile.am
===================================================================
---- src/Makefile.am (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/Makefile.am (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/Makefile.am (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/Makefile.am (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -16,20 +16,17 @@
configparser.c configparser.h:
mod_ssi_exprparser.c mod_ssi_exprparser.h:
@@ -1014,8 +1014,8 @@
keyvalue.c chunk.c \
Index: src/network_openssl.c
===================================================================
---- src/network_openssl.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/network_openssl.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/network_openssl.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/network_openssl.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -85,6 +85,7 @@
*
*/
@@ -1034,8 +1034,8 @@
Index: src/mod_redirect.c
===================================================================
---- src/mod_redirect.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_redirect.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_redirect.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_redirect.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -215,8 +215,7 @@
start = 0; end = pattern_len;
@@ -1060,8 +1060,8 @@
buffer_append_string(p->location, list[num]);
Index: src/mod_webdav.c
===================================================================
---- src/mod_webdav.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_webdav.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_webdav.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_webdav.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -570,6 +570,8 @@
/* */
}
@@ -1102,8 +1102,8 @@
return has_lock;
Index: src/md5.c
===================================================================
---- src/md5.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/md5.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/md5.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/md5.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -52,9 +52,9 @@
#define S43 15
#define S44 21
@@ -1152,8 +1152,8 @@
unsigned int i, j;
Index: src/mod_compress.c
===================================================================
---- src/mod_compress.c (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/mod_compress.c (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/mod_compress.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/mod_compress.c (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -102,7 +102,7 @@
return HANDLER_GO_ON;
}
@@ -1201,8 +1201,8 @@
s->compress_cache_dir, strerror(errno));
Index: src/md5.h
===================================================================
---- src/md5.h (.../tags/lighttpd-1.4.19) (revision 2190)
-+++ src/md5.h (.../branches/lighttpd-1.4.x) (revision 2190)
+--- src/md5.h (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/md5.h (.../branches/lighttpd-1.4.x) (revision 2199)
@@ -42,6 +42,6 @@
} MD5_CTX;
@@ -1211,10 +1211,405 @@
+void MD5_Update (MD5_CTX *, const void *, unsigned int);
void MD5_Final (unsigned char [16], MD5_CTX *);
+Index: src/spawn-fcgi.c
+===================================================================
+--- src/spawn-fcgi.c (.../tags/lighttpd-1.4.19) (revision 2199)
++++ src/spawn-fcgi.c (.../branches/lighttpd-1.4.x) (revision 2199)
+@@ -37,9 +37,9 @@
+ #endif
+
+ #ifdef HAVE_SYS_UN_H
+-int fcgi_spawn_connection(char *appPath, char **appArgv, char *addr, unsigned short port, const char *unixsocket, int child_count, int pid_fd, int nofork) {
++int fcgi_spawn_connection(char *appPath, char **appArgv, char *addr, unsigned short port, const char *unixsocket, int fork_count, int child_count, int pid_fd, int nofork) {
+ int fcgi_fd;
+- int socket_type, status;
++ int socket_type, status, rc = 0;
+ struct timeval tv = { 0, 100 * 1000 };
+
+ struct sockaddr_un fcgi_addr_un;
+@@ -48,9 +48,6 @@
+
+ socklen_t servlen;
+
+- pid_t child;
+- int val;
+-
+ if (child_count < 2) {
+ child_count = 5;
+ }
+@@ -74,25 +71,6 @@
+ #endif
+ socket_type = AF_UNIX;
+ fcgi_addr = (struct sockaddr *) &fcgi_addr_un;
+-
+- /* check if some backend is listening on the socket
+- * as if we delete the socket-file and rebind there will be no "socket already in use" error
+- */
+- if (-1 == (fcgi_fd = socket(socket_type, SOCK_STREAM, 0))) {
+- fprintf(stderr, "%s.%d\n",
+- __FILE__, __LINE__);
+- return -1;
+- }
+-
+- if (-1 != connect(fcgi_fd, fcgi_addr, servlen)) {
+- fprintf(stderr, "%s.%d: socket is already used, can't spawn\n",
+- __FILE__, __LINE__);
+- return -1;
+- }
+-
+- /* cleanup previous socket if it exists */
+- unlink(unixsocket);
+- close(fcgi_fd);
+ } else {
+ fcgi_addr_in.sin_family = AF_INET;
+ if (addr != NULL) {
+@@ -107,133 +85,176 @@
+ fcgi_addr = (struct sockaddr *) &fcgi_addr_in;
+ }
+
+- /* open socket */
+ if (-1 == (fcgi_fd = socket(socket_type, SOCK_STREAM, 0))) {
+ fprintf(stderr, "%s.%d\n",
+ __FILE__, __LINE__);
+ return -1;
+ }
+
+- val = 1;
+- if (setsockopt(fcgi_fd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) < 0) {
+- fprintf(stderr, "%s.%d\n",
+- __FILE__, __LINE__);
+- return -1;
+- }
++ if (-1 == connect(fcgi_fd, fcgi_addr, servlen)) {
++ /* server is not up, spawn in */
++ pid_t child;
++ int val;
+
+- /* create socket */
+- if (-1 == bind(fcgi_fd, fcgi_addr, servlen)) {
+- fprintf(stderr, "%s.%d: bind failed: %s\n",
+- __FILE__, __LINE__,
+- strerror(errno));
+- return -1;
+- }
++ if (unixsocket) unlink(unixsocket);
+
+- if (-1 == listen(fcgi_fd, 1024)) {
+- fprintf(stderr, "%s.%d: fd = -1\n",
+- __FILE__, __LINE__);
+- return -1;
+- }
++ close(fcgi_fd);
+
+- if (!nofork) {
+- child = fork();
+- } else {
+- child = 0;
+- }
++ /* reopen socket */
++ if (-1 == (fcgi_fd = socket(socket_type, SOCK_STREAM, 0))) {
++ fprintf(stderr, "%s.%d\n",
++ __FILE__, __LINE__);
++ return -1;
++ }
+
+- switch (child) {
+- case 0: {
+- char cgi_childs[64];
++ val = 1;
++ if (setsockopt(fcgi_fd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) < 0) {
++ fprintf(stderr, "%s.%d\n",
++ __FILE__, __LINE__);
++ return -1;
++ }
+
+- int i = 0;
+-
+- /* is safe as we limit to 256 childs */
+- sprintf(cgi_childs, "PHP_FCGI_CHILDREN=%d", child_count);
+-
+- if(fcgi_fd != FCGI_LISTENSOCK_FILENO) {
+- close(FCGI_LISTENSOCK_FILENO);
+- dup2(fcgi_fd, FCGI_LISTENSOCK_FILENO);
+- close(fcgi_fd);
++ /* create socket */
++ if (-1 == bind(fcgi_fd, fcgi_addr, servlen)) {
++ fprintf(stderr, "%s.%d: bind failed: %s\n",
++ __FILE__, __LINE__,
++ strerror(errno));
++ return -1;
+ }
+
+- /* we don't need the client socket */
+- for (i = 3; i < 256; i++) {
+- close(i);
++ if (-1 == listen(fcgi_fd, 1024)) {
++ fprintf(stderr, "%s.%d: fd = -1\n",
++ __FILE__, __LINE__);
++ return -1;
+ }
+
+- /* create environment */
++ while (fork_count-- > 0) {
+
+- putenv(cgi_childs);
++ if (!nofork) {
++ child = fork();
++ } else {
++ child = 0;
++ }
+
+- /* fork and replace shell */
+- if (appArgv) {
+- execv(appArgv[0], appArgv);
++ switch (child) {
++ case 0: {
++ char cgi_childs[64];
++ int max_fd = 0;
+
+- } else {
+- char *b = malloc(strlen("exec ") + strlen(appPath) + 1);
+- strcpy(b, "exec ");
+- strcat(b, appPath);
++ int i = 0;
+
+- /* exec the cgi */
+- execl("/bin/sh", "sh", "-c", b, (char *)NULL);
+- }
++ /* loose control terminal */
++ setsid();
+
+- exit(errno);
++ /* is safe as we limit to 256 childs */
++ sprintf(cgi_childs, "PHP_FCGI_CHILDREN=%d", child_count);
+
+- break;
+- }
+- case -1:
+- /* error */
+- break;
+- default:
+- /* father */
++ if(fcgi_fd != FCGI_LISTENSOCK_FILENO) {
++ close(FCGI_LISTENSOCK_FILENO);
++ dup2(fcgi_fd, FCGI_LISTENSOCK_FILENO);
++ close(fcgi_fd);
++ }
+
+- /* wait */
+- select(0, NULL, NULL, NULL, &tv);
++ max_fd = open("/dev/null", O_RDWR);
++ close(STDERR_FILENO);
++ dup2(max_fd, STDERR_FILENO);
++ close(max_fd);
+
+- switch (waitpid(child, &status, WNOHANG)) {
+- case 0:
+- fprintf(stderr, "%s.%d: child spawned successfully: PID: %d\n",
+- __FILE__, __LINE__,
+- child);
++ max_fd = open("/dev/null", O_RDWR);
++ close(STDOUT_FILENO);
++ dup2(max_fd, STDOUT_FILENO);
++ close(max_fd);
+
+- /* write pid file */
+- if (pid_fd != -1) {
+- /* assume a 32bit pid_t */
+- char pidbuf[12];
++ /* we don't need the client socket */
++ for (i = 3; i < max_fd; i++) {
++ if (i != FCGI_LISTENSOCK_FILENO) close(i);
++ }
+
+- snprintf(pidbuf, sizeof(pidbuf) - 1, "%d", child);
++ /* create environment */
+
+- write(pid_fd, pidbuf, strlen(pidbuf));
+- close(pid_fd);
+- pid_fd = -1;
++ putenv(cgi_childs);
++
++ /* fork and replace shell */
++ if (appArgv) {
++ execv(appArgv[0], appArgv);
++
++ } else {
++ char *b = malloc(strlen("exec ") + strlen(appPath) + 1);
++ strcpy(b, "exec ");
++ strcat(b, appPath);
++
++ /* exec the cgi */
++ execl("/bin/sh", "sh", "-c", b, (char *)NULL);
++ }
++
++ exit(errno);
++
++ break;
+ }
++ case -1:
++ /* error */
++ break;
++ default:
++ /* father */
+
+- break;
+- case -1:
+- break;
+- default:
+- if (WIFEXITED(status)) {
+- fprintf(stderr, "%s.%d: child exited with: %d, %s\n",
+- __FILE__, __LINE__,
+- WEXITSTATUS(status), strerror(WEXITSTATUS(status)));
+- } else if (WIFSIGNALED(status)) {
+- fprintf(stderr, "%s.%d: child signaled: %d\n",
+- __FILE__, __LINE__,
+- WTERMSIG(status));
+- } else {
+- fprintf(stderr, "%s.%d: child died somehow: %d\n",
+- __FILE__, __LINE__,
+- status);
++ /* wait */
++ select(0, NULL, NULL, NULL, &tv);
++
++ switch (waitpid(child, &status, WNOHANG)) {
++ case 0:
++ fprintf(stdout, "%s.%d: child spawned successfully: PID: %d\n",
++ __FILE__, __LINE__,
++ child);
++
++ /* write pid file */
++ if (pid_fd != -1) {
++ /* assume a 32bit pid_t */
++ char pidbuf[12];
++
++ snprintf(pidbuf, sizeof(pidbuf) - 1, "%d", child);
++
++ write(pid_fd, pidbuf, strlen(pidbuf));
++ /* avoid eol for the last one */
++ if (fork_count != 0) {
++ write(pid_fd, "\n", 1);
++ }
++ }
++
++ break;
++ case -1:
++ break;
++ default:
++ if (WIFEXITED(status)) {
++ fprintf(stderr, "%s.%d: child exited with: %d\n",
++ __FILE__, __LINE__, WEXITSTATUS(status));
++ rc = WEXITSTATUS(status);
++ } else if (WIFSIGNALED(status)) {
++ fprintf(stderr, "%s.%d: child signaled: %d\n",
++ __FILE__, __LINE__,
++ WTERMSIG(status));
++ rc = 1;
++ } else {
++ fprintf(stderr, "%s.%d: child died somehow: %d\n",
++ __FILE__, __LINE__,
++ status);
++ rc = status;
++ }
++ }
++
++ break;
+ }
+ }
+-
+- break;
++ close(pid_fd);
++ pid_fd = -1;
++ } else {
++ fprintf(stderr, "%s.%d: socket is already used, can't spawn\n",
++ __FILE__, __LINE__);
++ return -1;
+ }
+
+ close(fcgi_fd);
+
+- return 0;
++ return rc;
+ }
+
+
+@@ -256,6 +277,7 @@
+ " -p <port> bind to tcp-port\n" \
+ " -s <path> bind to unix-domain socket\n" \
+ " -C <childs> (PHP only) numbers of childs to spawn (default 5)\n" \
++" -F <childs> numbers of childs to fork (default 1)\n" \
+ " -P <path> name of PID-file for spawed process\n" \
+ " -n no fork (for daemontools)\n" \
+ " -v show version\n" \
+@@ -276,20 +298,21 @@
+ char **fcgi_app_argv = { NULL };
+ unsigned short port = 0;
+ int child_count = 5;
++ int fork_count = 1;
+ int i_am_root, o;
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/lighttpd-branch.diff?r1=1.36&r2=1.37&f=u
More information about the pld-cvs-commit
mailing list