From: Jim Jagielski Date: Tue, 20 Feb 2007 17:06:00 +0000 (+0000) Subject: Merge r507516 from trunk: X-Git-Tag: 2.2.5~310 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=177bdd83802a6df93c97c1461241132c53837da1;p=thirdparty%2Fapache%2Fhttpd.git Merge r507516 from trunk: Patch for PR#11540 (submitted by Stuart Children) Submitted by: niq Reviewed by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@509651 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 220f9f907a6..395c3248101 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.2.5 + *) mod_proxy: Fix some proxy setting inheritance problems (eg: + ProxyTimeout). PR 11540. [Stuart Children ] + *) Unix MPMs: Catch SIGFPE so that exception hooks and CoreDumpDirectory can work after that terminating signal. [Eric Covener ] diff --git a/STATUS b/STATUS index 58aa41b46a8..b19a058da46 100644 --- a/STATUS +++ b/STATUS @@ -74,11 +74,6 @@ CURRENT RELEASE NOTES: RELEASE SHOWSTOPPERS: - * mod_proxy: Various settings being ignored due to not merging *_set params - PR: 11540 - http://svn.apache.org/viewvc?view=rev&revision=507516 - +1: jim, trawick, minfrin - PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 9e78853df5a..30fc85b592b 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -894,15 +894,25 @@ static void * merge_proxy_config(apr_pool_t *p, void *basev, void *overridesv) ps->domain = (overrides->domain == NULL) ? base->domain : overrides->domain; ps->viaopt = (overrides->viaopt_set == 0) ? base->viaopt : overrides->viaopt; + ps->viaopt_set = overrides->viaopt_set || base->viaopt_set; ps->req = (overrides->req_set == 0) ? base->req : overrides->req; + ps->req_set = overrides->req_set || base->req_set; ps->recv_buffer_size = (overrides->recv_buffer_size_set == 0) ? base->recv_buffer_size : overrides->recv_buffer_size; + ps->recv_buffer_size_set = overrides->recv_buffer_size_set || base->recv_buffer_size_set; ps->io_buffer_size = (overrides->io_buffer_size_set == 0) ? base->io_buffer_size : overrides->io_buffer_size; + ps->io_buffer_size_set = overrides->io_buffer_size_set || base->io_buffer_size_set; ps->maxfwd = (overrides->maxfwd_set == 0) ? base->maxfwd : overrides->maxfwd; + ps->maxfwd_set = overrides->maxfwd_set || base->maxfwd_set; ps->error_override = (overrides->error_override_set == 0) ? base->error_override : overrides->error_override; + ps->error_override_set = overrides->error_override_set || base->error_override_set; ps->preserve_host = (overrides->preserve_host_set == 0) ? base->preserve_host : overrides->preserve_host; + ps->preserve_host_set = overrides->preserve_host_set || base->preserve_host_set; ps->timeout= (overrides->timeout_set == 0) ? base->timeout : overrides->timeout; + ps->timeout_set = overrides->timeout_set || base->timeout_set; ps->badopt = (overrides->badopt_set == 0) ? base->badopt : overrides->badopt; + ps->badopt_set = overrides->badopt_set || base->badopt_set; ps->proxy_status = (overrides->proxy_status_set == 0) ? base->proxy_status : overrides->proxy_status; + ps->proxy_status_set = overrides->proxy_status_set || base->proxy_status_set; ps->pool = p; return ps; }