From e80146b051379fbc4a8272819e5ddb61b1555553 Mon Sep 17 00:00:00 2001
From: Paul Howarth
Date: Wed, 27 Jan 2010 14:29:32 +0000
Subject: [PATCH] Update to 2.3.5
---
.cvsignore | 2 +-
mod_fcgid-2.3.4-svn827039.patch | 548 --------------------------------
mod_fcgid.spec | 20 +-
sources | 2 +-
4 files changed, 8 insertions(+), 564 deletions(-)
delete mode 100644 mod_fcgid-2.3.4-svn827039.patch
diff --git a/.cvsignore b/.cvsignore
index 3760558..c661092 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-mod_fcgid-2.3.4.tar.bz2
+mod_fcgid-2.3.5.tar.bz2
diff --git a/mod_fcgid-2.3.4-svn827039.patch b/mod_fcgid-2.3.4-svn827039.patch
deleted file mode 100644
index 9091106..0000000
--- a/mod_fcgid-2.3.4-svn827039.patch
+++ /dev/null
@@ -1,548 +0,0 @@
-Index: build/fixconf.sed
-===================================================================
---- build/fixconf.sed (revision 823071)
-+++ build/fixconf.sed (working copy)
-@@ -53,35 +53,35 @@
- s/^ZombieScanInterval/FcgidZombieScanInterval/g
- # Next we fix all other occurences without matching
- # the ones, that are already OK
--s/\([^D]\)BusyScanInterval/\1FcgidBusyScanInterval/g
--s/\([^D]\)BusyTimeout/\1FcgidBusyTimeout/g
--s/\([^D]\)DefaultInitEnv/\1FcgidInitialEnv/g
--s/\([^D]\)DefaultMaxClassProcessCount/\1FcgidMaxProcessesPerClass/g
--s/\([^D]\)DefaultMinClassProcessCount/\1FcgidMinProcessesPerClass/g
--s/\([^D]\)ErrorScanInterval/\1FcgidErrorScanInterval/g
--s/\([^D]\)FastCgiAccessChecker/\1FcgidAccessChecker/g
--s/\([^D]\)FastCgiAccessCheckerAuthoritative/\1FcgidAccessCheckerAuthoritative/g
--s/\([^D]\)FastCgiAuthenticator/\1FcgidAuthenticator/g
--s/\([^D]\)FastCgiAuthenticatorAuthoritative/\1FcgidAuthenticatorAuthoritative/g
--s/\([^D]\)FastCgiAuthorizer/\1FcgidAuthorizer/g
--s/\([^D]\)FastCgiAuthorizerAuthoritative/\1FcgidAuthorizerAuthoritative/g
--s/\([^D]\)FCGIWrapper/\1FcgidWrapper/g
--s/\([^D]\)IdleScanInterval/\1FcgidIdleScanInterval/g
--s/\([^D]\)IdleTimeout/\1FcgidIdleTimeout/g
--s/\([^D]\)IPCCommTimeout/\1FcgidIOTimeout/g
--s/\([^D]\)IPCConnectTimeout/\1FcgidConnectTimeout/g
--s/\([^D]\)MaxProcessCount/\1FcgidMaxProcesses/g
--s/\([^D]\)MaxRequestInMem/\1FcgidMaxRequestInMem/g
--s/\([^D]\)MaxRequestLen/\1FcgidMaxRequestLen/g
--s/\([^D]\)MaxRequestsPerProcess/\1FcgidMaxRequestsPerProcess/g
--s/\([^D]\)OutputBufferSize/\1FcgidOutputBufferSize/g
--s/\([^D]\)PassHeader/\1FcgidPassHeader/g
--s/\([^D]\)PHP_Fix_Pathinfo_Enable/\1FcgidFixPathinfo/g
--s/\([^D]\)ProcessLifeTime/\1FcgidProcessLifeTime/g
--s/\([^D]\)SharememPath/\1FcgidProcessTableFile/g
--s/\([^D]\)SocketPath/\1FcgidIPCDir/g
--s/\([^D]\)SpawnScore/\1FcgidSpawnScore/g
--s/\([^D]\)SpawnScoreUpLimit/\1FcgidSpawnScoreUpLimit/g
--s/\([^D]\)TerminationScore/\1FcgidTerminationScore/g
--s/\([^D]\)TimeScore/\1FcgidTimeScore/g
--s/\([^D]\)ZombieScanInterval/\1FcgidZombieScanInterval/g
-+s/\([^d]\)BusyScanInterval/\1FcgidBusyScanInterval/g
-+s/\([^d]\)BusyTimeout/\1FcgidBusyTimeout/g
-+s/\([^d]\)DefaultInitEnv/\1FcgidInitialEnv/g
-+s/\([^d]\)DefaultMaxClassProcessCount/\1FcgidMaxProcessesPerClass/g
-+s/\([^d]\)DefaultMinClassProcessCount/\1FcgidMinProcessesPerClass/g
-+s/\([^d]\)ErrorScanInterval/\1FcgidErrorScanInterval/g
-+s/\([^d]\)FastCgiAccessChecker/\1FcgidAccessChecker/g
-+s/\([^d]\)FastCgiAccessCheckerAuthoritative/\1FcgidAccessCheckerAuthoritative/g
-+s/\([^d]\)FastCgiAuthenticator/\1FcgidAuthenticator/g
-+s/\([^d]\)FastCgiAuthenticatorAuthoritative/\1FcgidAuthenticatorAuthoritative/g
-+s/\([^d]\)FastCgiAuthorizer/\1FcgidAuthorizer/g
-+s/\([^d]\)FastCgiAuthorizerAuthoritative/\1FcgidAuthorizerAuthoritative/g
-+s/\([^d]\)FCGIWrapper/\1FcgidWrapper/g
-+s/\([^d]\)IdleScanInterval/\1FcgidIdleScanInterval/g
-+s/\([^d]\)IdleTimeout/\1FcgidIdleTimeout/g
-+s/\([^d]\)IPCCommTimeout/\1FcgidIOTimeout/g
-+s/\([^d]\)IPCConnectTimeout/\1FcgidConnectTimeout/g
-+s/\([^d]\)MaxProcessCount/\1FcgidMaxProcesses/g
-+s/\([^d]\)MaxRequestInMem/\1FcgidMaxRequestInMem/g
-+s/\([^d]\)MaxRequestLen/\1FcgidMaxRequestLen/g
-+s/\([^d]\)MaxRequestsPerProcess/\1FcgidMaxRequestsPerProcess/g
-+s/\([^d]\)OutputBufferSize/\1FcgidOutputBufferSize/g
-+s/\([^d]\)PassHeader/\1FcgidPassHeader/g
-+s/\([^d]\)PHP_Fix_Pathinfo_Enable/\1FcgidFixPathinfo/g
-+s/\([^d]\)ProcessLifeTime/\1FcgidProcessLifeTime/g
-+s/\([^d]\)SharememPath/\1FcgidProcessTableFile/g
-+s/\([^d]\)SocketPath/\1FcgidIPCDir/g
-+s/\([^d]\)SpawnScore/\1FcgidSpawnScore/g
-+s/\([^d]\)SpawnScoreUpLimit/\1FcgidSpawnScoreUpLimit/g
-+s/\([^d]\)TerminationScore/\1FcgidTerminationScore/g
-+s/\([^d]\)TimeScore/\1FcgidTimeScore/g
-+s/\([^d]\)ZombieScanInterval/\1FcgidZombieScanInterval/g
-Index: CHANGES-FCGID
-===================================================================
---- CHANGES-FCGID (revision 823071)
-+++ CHANGES-FCGID (working copy)
-@@ -1,4 +1,23 @@
- -*- coding: utf-8 -*-
-+Changes with mod_fcgid 2.3.5
-+
-+ *) Fix a bug in fixconf.sed that resulted in a prefix of "FcgidFcgid" on the
-+ updated directives. [Dan Hulme ]
-+
-+ *) Fix possible corruption or truncation of request bodies which exceed
-+ FcgidMaxRequestInMem. This is a regression since mod_fcgid 2.2, which
-+ effectively ignored FcgidMaxRequestInMem if larger than 8K. PR 48021.
-+ [Jeff Trawick]
-+
-+ *) Fix handling of the request body when a FastCGI access checker/
-+ authenticator/authorizer (AAA) was configured. The body wasn't available
-+ for the request handler. PR 47973.
-+ [Jeff Trawick, Barry Scott ]
-+
-+ *) Fix handling of FcgidCmdOptions so that it can apply to wrapper scripts
-+ which were defined with command-line arguments on the FcgidWrapper
-+ directive. [Jeff Trawick]
-+
- Changes with mod_fcgid 2.3.4
-
- *) Corrected unix 'make install' target regression in 2.3.3. [Jeff Trawick]
-Index: docs/manual/mod/mod_fcgid.html.en
-===================================================================
---- docs/manual/mod/mod_fcgid.html.en (revision 823071)
-+++ docs/manual/mod/mod_fcgid.html.en (working copy)
-@@ -827,6 +827,9 @@
- FcgidMinProcessesPerClass
.
- A value of 0
disables the check.
-
-+ This idle timeout check is performed at the frequency of the configured
-+ FcgidIdleScanInterval
.
-+
- This setting will apply to all applications spawned for this
- server or virtual host. Use
- FcgidCmdOptions
to apply
-@@ -1077,6 +1080,9 @@
- FcgidMinProcessesPerClass
.
- A value of 0
disables the check.
-
-+ This process lifetime check is performed at the frequency of the configured
-+ FcgidIdleScanInterval
.
-+
- This setting will apply to all applications spawned for this
- server or virtual host. Use
- FcgidCmdOptions
to apply
-Index: docs/manual/mod/mod_fcgid.xml
-===================================================================
---- docs/manual/mod/mod_fcgid.xml (revision 823071)
-+++ docs/manual/mod/mod_fcgid.xml (working copy)
-@@ -778,6 +778,9 @@
- FcgidMinProcessesPerClass.
- A value of 0
disables the check.
-
-+ This idle timeout check is performed at the frequency of the configured
-+ FcgidIdleScanInterval.
-+
- This setting will apply to all applications spawned for this
- server or virtual host. Use
- FcgidCmdOptions to apply
-@@ -969,6 +972,9 @@
- FcgidMinProcessesPerClass.
- A value of 0
disables the check.
-
-+ This process lifetime check is performed at the frequency of the configured
-+ FcgidIdleScanInterval.
-+
- This setting will apply to all applications spawned for this
- server or virtual host. Use
- FcgidCmdOptions to apply
-Index: modules/fcgid/fcgid_proc_unix.c
-===================================================================
---- modules/fcgid/fcgid_proc_unix.c (revision 823071)
-+++ modules/fcgid/fcgid_proc_unix.c (working copy)
-@@ -259,6 +259,17 @@
- return errno;
- }
-
-+ /* IPC directory permissions are safe, but avoid confusion */
-+ /* Not all flavors of unix use the current umask for AF_UNIX perms */
-+
-+ rv = apr_file_perms_set(unix_addr.sun_path, APR_FPROT_UREAD|APR_FPROT_UWRITE|APR_FPROT_UEXECUTE);
-+ if (rv != APR_SUCCESS) {
-+ ap_log_error(APLOG_MARK, APLOG_CRIT, rv, main_server,
-+ "mod_fcgid: Couldn't set permissions on unix domain socket %s",
-+ unix_addr.sun_path);
-+ return rv;
-+ }
-+
- /* Listen the socket */
- if (listen(unix_socket, DEFAULT_FCGID_LISTENBACKLOG) < 0) {
- ap_log_error(APLOG_MARK, APLOG_ERR, errno, main_server,
-@@ -747,8 +758,11 @@
- apr_size_t len;
- const char* base;
- if ((rv = apr_bucket_read(e, &base, &len,
-- APR_BLOCK_READ)) != APR_SUCCESS)
-+ APR_BLOCK_READ)) != APR_SUCCESS) {
-+ ap_log_rerror(APLOG_MARK, APLOG_WARNING, rv, ipc_handle->request,
-+ "mod_fcgid: can't read request from bucket");
- return rv;
-+ }
-
- vec[nvec].iov_len = len;
- vec[nvec].iov_base = (char*) base;
-Index: modules/fcgid/fcgid_proc_win.c
-===================================================================
---- modules/fcgid/fcgid_proc_win.c (revision 823071)
-+++ modules/fcgid/fcgid_proc_win.c (working copy)
-@@ -59,7 +59,7 @@
- return APR_SUCCESS;
- }
-
--apr_status_t proc_spawn_process(char *wrapperpath, fcgid_proc_info *procinfo,
-+apr_status_t proc_spawn_process(char *wrapper_cmdline, fcgid_proc_info *procinfo,
- fcgid_procnode *procnode)
- {
- HANDLE *finish_event, listen_handle;
-@@ -79,7 +79,7 @@
-
- /* Build wrapper args */
- argc = 0;
-- tmp = wrapperpath;
-+ tmp = wrapper_cmdline;
- while (1) {
- word = ap_getword_white(procnode->proc_pool, &tmp);
- if (word == NULL || *word == '\0')
-@@ -165,7 +165,7 @@
- != APR_SUCCESS
- || (rv = apr_procattr_dir_set(proc_attr,
- ap_make_dirstr_parent(procnode->proc_pool,
-- (wrapperpath && wrapperpath[0] != '\0')
-+ (wrapper_cmdline && wrapper_cmdline[0] != '\0')
- ? wargv[0] : procinfo->cgipath))) != APR_SUCCESS
- || (rv = apr_procattr_cmdtype_set(proc_attr, APR_PROGRAM))
- != APR_SUCCESS
-@@ -184,10 +184,10 @@
- }
-
- /* fork and exec now */
-- if (wrapperpath != NULL && wrapperpath[0] != '\0') {
-+ if (wrapper_cmdline != NULL && wrapper_cmdline[0] != '\0') {
- ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, procinfo->main_server,
- "mod_fcgid: call %s with wrapper %s",
-- procinfo->cgipath, wrapperpath);
-+ procinfo->cgipath, wrapper_cmdline);
- if ((rv = apr_proc_create(procnode->proc_id, wargv[0],
- wargv, proc_environ, proc_attr,
- procnode->proc_pool)) != APR_SUCCESS) {
-Index: modules/fcgid/fcgid_pm_main.c
-===================================================================
---- modules/fcgid/fcgid_pm_main.c (revision 823071)
-+++ modules/fcgid/fcgid_pm_main.c (working copy)
-@@ -531,9 +531,9 @@
- }
-
- /* Spawn the process now */
-- /* XXX Spawn uses wrapperpath, but log uses cgipath ? */
-+ /* XXX Spawn uses wrapper_cmdline, but log uses cgipath ? */
- if ((rv =
-- proc_spawn_process(command->wrapperpath, &procinfo,
-+ proc_spawn_process(command->wrapper_cmdline, &procinfo,
- procnode)) != APR_SUCCESS) {
- ap_log_error(APLOG_MARK, APLOG_WARNING, rv, main_server,
- "mod_fcgid: spawn process %s error",
-Index: modules/fcgid/fcgid_conf.c
-===================================================================
---- modules/fcgid/fcgid_conf.c (revision 823071)
-+++ modules/fcgid/fcgid_conf.c (working copy)
-@@ -748,8 +748,11 @@
- apr_size_t cur_id;
- } wrapper_id_info;
-
-+/* FIXME thread safety issues when FcgidWrapper is used in .htaccess;
-+ * see use of pconf
-+ */
- const char *set_wrapper_config(cmd_parms * cmd, void *dirconfig,
-- const char *wrapperpath,
-+ const char *wrapper_cmdline,
- const char *extension,
- const char *virtual)
- {
-@@ -760,13 +763,11 @@
- wrapper_id_info *id_info;
- apr_size_t *wrapper_id;
- fcgid_wrapper_conf *wrapper = NULL;
-+ apr_pool_t *wrapper_conf_pool = cmd->server->process->pconf; /* bad */
- fcgid_dir_conf *config = (fcgid_dir_conf *) dirconfig;
-
- /* Sanity checks */
-
-- if (wrapperpath == NULL)
-- return "Invalid wrapper file";
--
- if (virtual == NULL && extension != NULL && !strcasecmp(extension, WRAPPER_FLAG_VIRTUAL)) {
- virtual = WRAPPER_FLAG_VIRTUAL;
- extension = NULL;
-@@ -798,21 +799,21 @@
- apr_pool_cleanup_null,
- cmd->server->process->pool);
- }
-- /* Get wrapper_id for wrapperpath */
-+ /* Get wrapper_id for wrapper_cmdline */
- if ((wrapper_id =
-- apr_hash_get(id_info->wrapper_id_hash, wrapperpath,
-- strlen(wrapperpath))) == NULL) {
-+ apr_hash_get(id_info->wrapper_id_hash, wrapper_cmdline,
-+ strlen(wrapper_cmdline))) == NULL) {
- wrapper_id =
- apr_pcalloc(cmd->server->process->pool, sizeof(*wrapper_id));
- *wrapper_id = id_info->cur_id++;
-- apr_hash_set(id_info->wrapper_id_hash, wrapperpath,
-- strlen(wrapperpath), wrapper_id);
-+ apr_hash_set(id_info->wrapper_id_hash, wrapper_cmdline,
-+ strlen(wrapper_cmdline), wrapper_id);
- }
-
-- wrapper = apr_pcalloc(cmd->server->process->pconf, sizeof(*wrapper));
-+ wrapper = apr_pcalloc(wrapper_conf_pool, sizeof(*wrapper));
-
- /* Get wrapper path */
-- tmp = wrapperpath;
-+ tmp = wrapper_cmdline;
- path = ap_getword_white(cmd->temp_pool, &tmp);
- if (path == NULL || *path == '\0')
- return "Invalid wrapper config";
-@@ -823,7 +824,9 @@
- return missing_file_msg(cmd->pool, "Wrapper", path, rv);
- }
-
-- apr_cpystrn(wrapper->args, wrapperpath, _POSIX_PATH_MAX);
-+ wrapper->exe = apr_pstrdup(wrapper_conf_pool, path);
-+ /* FIXME no need to embed in structure (subject to correct pool usage) */
-+ apr_cpystrn(wrapper->args, wrapper_cmdline, _POSIX_PATH_MAX);
- wrapper->inode = finfo.inode;
- wrapper->deviceid = finfo.device;
- wrapper->share_group_id = *wrapper_id;
-Index: modules/fcgid/fcgid_pm_win.c
-===================================================================
---- modules/fcgid/fcgid_pm_win.c (revision 823071)
-+++ modules/fcgid/fcgid_pm_win.c (working copy)
-@@ -140,13 +140,13 @@
- command->virtualhost = r->server->server_hostname;
-
- /* Update fcgid_command with wrapper info */
-- command->wrapperpath[0] = '\0';
-+ command->wrapper_cmdline[0] = '\0';
- if ((wrapperconf = get_wrapper_info(argv0, r))) {
-- apr_cpystrn(command->wrapperpath, wrapperconf->args, _POSIX_PATH_MAX);
-+ apr_cpystrn(command->wrapper_cmdline, wrapperconf->args, _POSIX_PATH_MAX);
- command->deviceid = wrapperconf->deviceid;
- command->inode = wrapperconf->inode;
- command->share_grp_id = wrapperconf->share_group_id;
-- cmd_to_spawn = command->wrapperpath;
-+ cmd_to_spawn = wrapperconf->exe;
- }
- else {
- cmd_to_spawn = command->cgipath;
-Index: modules/fcgid/fcgid_pm_unix.c
-===================================================================
---- modules/fcgid/fcgid_pm_unix.c (revision 823071)
-+++ modules/fcgid/fcgid_pm_unix.c (working copy)
-@@ -411,13 +411,13 @@
- command->virtualhost = r->server->server_hostname;
-
- /* Update fcgid_command with wrapper info */
-- command->wrapperpath[0] = '\0';
-+ command->wrapper_cmdline[0] = '\0';
- if ((wrapperconf = get_wrapper_info(argv0, r))) {
-- apr_cpystrn(command->wrapperpath, wrapperconf->args, _POSIX_PATH_MAX);
-+ apr_cpystrn(command->wrapper_cmdline, wrapperconf->args, _POSIX_PATH_MAX);
- command->deviceid = wrapperconf->deviceid;
- command->inode = wrapperconf->inode;
- command->share_grp_id = wrapperconf->share_group_id;
-- cmd_to_spawn = command->wrapperpath;
-+ cmd_to_spawn = wrapperconf->exe;
- }
- else {
- cmd_to_spawn = command->cgipath;
-Index: modules/fcgid/fcgid_pm.h
-===================================================================
---- modules/fcgid/fcgid_pm.h (revision 823071)
-+++ modules/fcgid/fcgid_pm.h (working copy)
-@@ -22,7 +22,7 @@
-
- typedef struct {
- char cgipath[_POSIX_PATH_MAX];
-- char wrapperpath[_POSIX_PATH_MAX];
-+ char wrapper_cmdline[_POSIX_PATH_MAX];
- apr_ino_t inode;
- dev_t deviceid;
- apr_size_t share_grp_id;
-Index: modules/fcgid/fcgid_bridge.c
-===================================================================
---- modules/fcgid/fcgid_bridge.c (revision 823071)
-+++ modules/fcgid/fcgid_bridge.c (working copy)
-@@ -376,8 +376,6 @@
- if ((rv =
- proc_write_ipc(&bucket_ctx->ipc,
- output_brigade)) != APR_SUCCESS) {
-- ap_log_rerror(APLOG_MARK, APLOG_WARNING, rv, r,
-- "mod_fcgid: error writing data to FastCGI server");
- bucket_ctx->has_error = 1;
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-@@ -437,39 +435,18 @@
- return cond_status;
- }
-
--int bridge_request(request_rec * r, int role, const char *argv0,
-- fcgid_wrapper_conf * wrapper_conf)
-+static int add_request_body(request_rec *r, apr_pool_t *request_pool,
-+ apr_bucket_brigade *output_brigade)
- {
-- apr_pool_t *request_pool = r->main ? r->main->pool : r->pool;
-- server_rec *s = r->server;
-- fcgid_server_conf *sconf = ap_get_module_config(s->module_config,
-+ apr_bucket *bucket_input, *bucket_header;
-+ apr_file_t *fd = NULL;
-+ apr_off_t cur_pos = 0, request_size = 0;
-+ apr_status_t rv;
-+ FCGI_Header *stdin_request_header;
-+ fcgid_server_conf *sconf = ap_get_module_config(r->server->module_config,
- &fcgid_module);
-- apr_status_t rv = APR_SUCCESS;
- int seen_eos;
-- apr_off_t request_size = 0;
-- apr_file_t *fd = NULL;
-- int need_truncate = 1;
-- apr_off_t cur_pos = 0;
-- FCGI_Header *stdin_request_header;
-- apr_bucket_brigade *output_brigade;
-- apr_bucket *bucket_input, *bucket_header, *bucket_eos;
-- char **envp = ap_create_environment(request_pool,
-- r->subprocess_env);
-
-- /* Create brigade for the request to fastcgi server */
-- output_brigade =
-- apr_brigade_create(request_pool, r->connection->bucket_alloc);
--
-- /* Build the begin request and environ request, append them to output_brigade */
-- if (!build_begin_block
-- (role, r, r->connection->bucket_alloc, output_brigade)
-- || !build_env_block(r, envp, r->connection->bucket_alloc,
-- output_brigade)) {
-- ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
-- "mod_fcgid: can't build begin or env request");
-- return HTTP_INTERNAL_SERVER_ERROR;
-- }
--
- /* Stdin header and body */
- /* XXX HACK: I have to read all the request into memory before sending it
- to fastcgi application server, this prevents slow clients from
-@@ -548,6 +525,15 @@
- apr_pool_userdata_get(&tmp, fd_key,
- r->connection->pool);
- fd = tmp;
-+
-+ if (fd != NULL) {
-+ if ((rv = apr_file_trunc(fd, 0)) != APR_SUCCESS) {
-+ ap_log_rerror(APLOG_MARK, APLOG_WARNING, rv, r,
-+ "mod_fcgid: can't truncate existing "
-+ "temporary file");
-+ return HTTP_INTERNAL_SERVER_ERROR;
-+ }
-+ }
- }
-
- if (fd == NULL) {
-@@ -574,12 +560,9 @@
- apr_pool_userdata_set((const void *) fd, fd_key,
- apr_pool_cleanup_null,
- r->connection->pool);
-- } else if (need_truncate) {
-- need_truncate = 0;
-- apr_file_trunc(fd, 0);
-- cur_pos = 0;
- }
-- // Write request to tmp file
-+
-+ /* Write request to tmp file */
- if ((rv =
- apr_file_write_full(fd, (const void *) data, len,
- &wrote_len)) != APR_SUCCESS
-@@ -589,7 +572,7 @@
- "mod_fcgid: can't write tmp file for stdin request");
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-- // Create file bucket
-+ /* Create file bucket */
- bucket_stdin =
- apr_bucket_file_create(fd, cur_pos, len, r->pool,
- r->connection->bucket_alloc);
-@@ -640,6 +623,40 @@
- }
- APR_BRIGADE_INSERT_TAIL(output_brigade, bucket_header);
-
-+ return 0;
-+}
-+
-+int bridge_request(request_rec * r, int role, const char *argv0,
-+ fcgid_wrapper_conf * wrapper_conf)
-+{
-+ apr_pool_t *request_pool = r->main ? r->main->pool : r->pool;
-+ apr_bucket_brigade *output_brigade;
-+ apr_bucket *bucket_eos;
-+ char **envp = ap_create_environment(request_pool,
-+ r->subprocess_env);
-+ int rc;
-+
-+ /* Create brigade for the request to fastcgi server */
-+ output_brigade =
-+ apr_brigade_create(request_pool, r->connection->bucket_alloc);
-+
-+ /* Build the begin request and environ request, append them to output_brigade */
-+ if (!build_begin_block
-+ (role, r, r->connection->bucket_alloc, output_brigade)
-+ || !build_env_block(r, envp, r->connection->bucket_alloc,
-+ output_brigade)) {
-+ ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
-+ "mod_fcgid: can't build begin or env request");
-+ return HTTP_INTERNAL_SERVER_ERROR;
-+ }
-+
-+ if (role == FCGI_RESPONDER) {
-+ rc = add_request_body(r, request_pool, output_brigade);
-+ if (rc) {
-+ return rc;
-+ }
-+ }
-+
- /* The eos bucket now */
- bucket_eos = apr_bucket_eos_create(r->connection->bucket_alloc);
- APR_BRIGADE_INSERT_TAIL(output_brigade, bucket_eos);
-Index: modules/fcgid/fcgid_conf.h
-===================================================================
---- modules/fcgid/fcgid_conf.h (revision 823071)
-+++ modules/fcgid/fcgid_conf.h (working copy)
-@@ -54,7 +54,8 @@
- } auth_conf;
-
- typedef struct {
-- char args[_POSIX_PATH_MAX];
-+ const char *exe; /* executable file path */
-+ char args[_POSIX_PATH_MAX]; /* entire command line */
- apr_ino_t inode;
- apr_dev_t deviceid;
- apr_size_t share_group_id;
-Index: modules/fcgid/fcgid_proc_unix.c
-===================================================================
---- modules/fcgid/fcgid_proc_unix.c (revision 827986)
-+++ modules/fcgid/fcgid_proc_unix.c (working copy)
-@@ -43,6 +43,17 @@
- #include "fcgid_pm.h"
- #include "fcgid_spawn_ctl.h"
-
-+/* apr forward compatibility */
-+#ifndef APR_FPROT_UWRITE
-+#define APR_FPROT_UWRITE APR_UWRITE
-+#endif
-+#ifndef APR_FPROT_UREAD
-+#define APR_FPROT_UREAD APR_UREAD
-+#endif
-+#ifndef APR_FPROT_UEXECUTE
-+#define APR_FPROT_UEXECUTE APR_UEXECUTE
-+#endif
-+
- #if MODULE_MAGIC_NUMBER_MAJOR < 20081201
- #define ap_unixd_config unixd_config
- // #define ap_unixd_setup_child unixd_setup_child
diff --git a/mod_fcgid.spec b/mod_fcgid.spec
index 0648114..509bf77 100644
--- a/mod_fcgid.spec
+++ b/mod_fcgid.spec
@@ -15,8 +15,8 @@
%endif
Name: mod_fcgid
-Version: 2.3.4
-Release: 2%{?dist}
+Version: 2.3.5
+Release: 1%{?dist}
Summary: FastCGI interface module for Apache 2
Group: System Environment/Daemons
License: ASL 2.0
@@ -29,7 +29,6 @@ Source10: fastcgi.te
Source11: fastcgi-2.5.te
Source12: fastcgi.fc
Patch0: mod_fcgid-2.3.4-fixconf-shellbang.patch
-Patch1: mod_fcgid-2.3.4-svn827039.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: httpd-devel >= 2.0, pkgconfig
Requires: httpd-mmn = %([ -a %{_includedir}/httpd/.mmn ] && %{__cat} %{_includedir}/httpd/.mmn || echo missing)
@@ -93,17 +92,6 @@ SELinux policy module supporting FastCGI applications with mod_fcgid.
# Fix shellbang in fixconf script for our location of sed
%patch0 -p1
-# * Fix regexp in fixconf script that resulted in a prefix of "FcgidFcgid"
-# on the updated directives
-# * Fix possible corruption or truncation of request bodies that exceed
-# FcgidMaxRequestInMem (regression since mod_fcgid 2.2, which effectively
-# ignored FcgidMaxRequestInMem if larger than 8K)
-# * Fix handling of the request body when a FastCGI
-# access checker/authenticator/authorizer (AAA) was configured
-# * Fix handling of FcgidCmdOptions so that it can apply to wrapper scripts
-# that were defined with command-line arguments on the FcgidWrapper directive
-%patch1 -p0
-
%build
APXS=/usr/sbin/apxs ./configure.apxs
%{__make}
@@ -183,6 +171,10 @@ exit 0
%endif
%changelog
+* Wed Jan 27 2010 Paul Howarth 2.3.5-1
+- Update to 2.3.5 (see CHANGES-FCGID for details)
+- Drop upstream svn patch
+
* Wed Oct 21 2009 Paul Howarth 2.3.4-2
- Add fixes from upstream svn for a number of issues, most notably that the
fixconf script had an error in the regexp, which resulted in a prefix of
diff --git a/sources b/sources
index f2d8db5..b5c65e1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-de1af384672a4bf719038e79be029c09 mod_fcgid-2.3.4.tar.bz2
+640a49c9ddf8596bd913835118b4a6aa mod_fcgid-2.3.5.tar.bz2