Jeffrey,
Sorry to be a pain but can it be in diff -u or svn diff format
please?
http://httpd.apache.org/dev/patches.html
thx!
On Feb 24, 2011, at 7:55 AM, Jeffrey E Burgoyne wrote:
> Against 2.2.14 source, in short, add an array of URL's for which the
> preserveproxyhost is required, bit of code for the config parameter, and a
> small change to check if the URL matches one of the list.
>
>
>
>
> ht01b07:~/apacheConfig/tarball/httpd-2.2.14/modules/proxy # diff
> mod_proxy.h mod_proxy.h.real
> 177,180d176
> <
> < /* Array of URL's for which the hostname needs to be preserved when
> proxied */
> <
> < apr_array_header_t *preserve_host_urls;
> ht01b07:~/apacheConfig/tarball/httpd-2.2.14/modules/proxy #
>
>
> ht01b07:~/apacheConfig/tarball/httpd-2.2.14/modules/proxy # diff
> mod_proxy.c mod_proxy.c.real
> 1071d1070
> < ps->preserve_host_urls = apr_array_make(p, 10, sizeof(char*));
> 1114d1112
> < ps->preserve_host_urls = apr_array_append(p,
> base->preserve_host_urls, overrides->preserve_host_urls);
> 1615,1629d1612
> < set_preserve_host_url(cmd_parms *parms, void *dummy, const char *arg)
> < {
> < proxy_server_conf *psf =
> < ap_get_module_config(parms->server->module_config, &proxy_module);
> <
> < apr_array_header_t *preserve_host_urls =
> < psf->preserve_host_urls;
> <
> < *(const char**)apr_array_push(preserve_host_urls) =
> < apr_pstrdup(parms->pool, arg);
> <
> < return NULL;
> < }
> <
> < static const char *
> 2119,2120d2101
> < AP_INIT_TAKE1("ProxyPreserveHostURL", set_preserve_host_url, NULL,
> RSRC_CONF,
> < "Set a base URL where the host name needs to be preserved when
> proxying"),
> ht01b07:~/apacheConfig/tarball/httpd-2.2.14/modules/proxy #
>
>
> ht01b07:~/apacheConfig/tarball/httpd-2.2.14/modules/proxy # diff
> mod_proxy_http.c mod_proxy_http.c.real
> 677,696d676
> <
> <
> < static
> < int ap_not_in_preserve_list(char *url,
> < apr_array_header_t *preserve_host_urls,
> apr_pool_t *memoryPool)
> < {
> < int i;
> < int l;
> <
> < for (i = 0; i < preserve_host_urls->nelts; i++) {
> < const char *s = ((const char**)preserve_host_urls->elts)[i];
> < l = strlen(s);
> <
> < if (!strncmp(url, s, l)) {
> < return 0;
> < }
> < }
> < return 1;
> < }
> <
> 753,754c733
> < if (conf->preserve_host == 0 &&
> < ap_not_in_preserve_list(url, conf->preserve_host_urls, r->pool)) {
> ---
>> if (conf->preserve_host == 0) {
> ht01b07:~/apacheConfig/tarball/httpd-2.2.14/modules/proxy #
>
>
>
>
>
>
>
>> Quite small, only took a few hours to do. I'll post it tomorrow.
>>
>> Basically it does the same as PreserveProxyHost except it works on a URL
>> basis, not on a per virtual host basis.
>>
>>
>>> On Wed, 23 Feb 2011 14:12:44 -0500
>>> "Jeffrey E Burgoyne" <[email protected]> wrote:
>>>
>>>
>>>> If people feel this is a worthwhile addition to the main code base,
>>>> please
>>>> let me know and I'll pass it back.
>>>
>>> Not sure I follow exactly what you've added.
>>>
>>> How big a patch is your change? If it's not too big to admit
>>> easy review, you could post it or a URL to look at it.
>>>
>>>
>>> --
>>> Nick Kew
>>>
>>> Available for work, contract or permanent.
>>> http://www.webthing.com/~nick/cv.html
>>>
>>
>>
>> --
>> Jeffrey Burgoyne
>> Chief Technology Officer
>> KCSI Keenuh Consulting Services Inc
>> www.keenuh.com
>> [email protected]
>>
>>
>>
>
>
> --
> Jeffrey Burgoyne
> Chief Technology Officer
> KCSI Keenuh Consulting Services Inc
> www.keenuh.com
> [email protected]
>
>