CHANGES revision ab8c0315521735c73ce16c8072f91e17c406ca5b
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh******************************************
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh* PLEASE NOTE: Now that development for *
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh* mod_proxy has been folded back into *
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh* the httpd-2.1 tree, this file has *
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh* been depreciated. Proxy changes should *
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh* be noted in httpd-2.1's CHANGES file. *
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh* This file exists for historical *
b3155b9e3b06b20030ec6c16d98f8dabf12ead9cianh* purposes. *
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianh******************************************
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianh
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianhmod_proxy changes for httpd 2.0.29-dev
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianh *) don't do keepalives for sub-requests. [Ian Holsman]
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianh
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianh *) fix up proxypass handling [Ian Holsman]
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianh
ff1234e45aca1b8171d711ecb87f58b9d9100a99ianh *) don't send If-Modified-Since, Cache-Control, or If-None-Match on
b999f6ba2a266bf9a92687f31bb7e76021ac5891ianh a subrequest [Ian Holsman]
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowe
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowemod_proxy changes for httpd 2.0.26-dev
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowe *) Add New option 'HTTPProxyOverrideReturnedErrors'. By Turning the
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowe Flag on, you will mask the error pages returned by the proxied
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowe server, and will it will be handled as if your server generated
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowe the error. This change was put in so that a 404 on a included
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowe r-proxied component will act in the same manner as a 404 on a
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowe included file. [Ian Holsman <ianh@cnet.com>]
b999f6ba2a266bf9a92687f31bb7e76021ac5891ianh
2ceedfca3a2fdfdb5ff60ca17f030ce91f6331cbwrowemod_proxy changes for httpd 2.0.25-dev
b999f6ba2a266bf9a92687f31bb7e76021ac5891ianh
7d7931c1f4d46b041ad2ad6fdb9499289063611eianh *) Split proxy: space using <Proxy[Match] > directive blocks from
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb the <Directory[Match] > and <Files[Match] > blocks. Mod_proxy
b9b69856aec9ea58ea1b1e5aff669e8eaf2ebce4rbb now bypasses the directory and files testing phase (and skips
b9b69856aec9ea58ea1b1e5aff669e8eaf2ebce4rbb the http TRACE default handler on it's own, as well). Note that
b9b69856aec9ea58ea1b1e5aff669e8eaf2ebce4rbb <Location > blocks continue to be processed for proxy: requests.
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb [William Rowe <wrowe@covalent.net>]
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb *) apr_uri type/function namespace changes in apr_uri functions
7d7931c1f4d46b041ad2ad6fdb9499289063611eianh [Doug MacEachern <dougm@covalent.net>]
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb
68bcde9c52e9e749482df2800dbdff09559115e0chuckmod_proxy changes for httpd 2.0.23-dev
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck
43ea154f46345c9722c2b25b2b9f5086ec79eaeeorlikowski *) break the proxy_http_handler into multiple smaller functions.
43ea154f46345c9722c2b25b2b9f5086ec79eaeeorlikowski [John Barbee <barbee@veribox.net>]
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck *) Fix the proxy when the origin server sends back a 100
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck Continue response. [John Barbee <barbee@veribox.net>]
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck *) Change 'readbytes' from apr_size_t to apr_off_t due to change
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck in ap_get_brigade's parameters [John Barbee <barbee@veribox.net>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
53c2eb831bfe47860e3f5ec9190b15cb92f15181chuckmod_proxy changes for httpd 2.0.20-dev
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck *) Timeout added for backend connections.
53c2eb831bfe47860e3f5ec9190b15cb92f15181chuck [Victor Orlikowski <v.j.orlikowski@gte.net>]
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski *) Fix abort code path in proxy_http.c, similar to FTP fix.
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski [Chuck Murcko <chuck@topsail.org>]
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski *) Fix FTP ABOR command execution path.
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski [Victor Orlikowski <v.j.orlikowski@gte.net>]
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski
4f7dd0949d92462a8adc31eee8aff266eea55204chuck *) FTP return code variable cleanup; fixed problem in login
4f7dd0949d92462a8adc31eee8aff266eea55204chuck [Chuck Murcko <chuck@topsail.org>]
4f7dd0949d92462a8adc31eee8aff266eea55204chuck
4f7dd0949d92462a8adc31eee8aff266eea55204chuck *) Get PORT working again in the ftp proxy.
4f7dd0949d92462a8adc31eee8aff266eea55204chuck [Victor Orlikowski <v.j.orlikowski@gte.net>]
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck *) Return result code check for FTP QUIT, after fixing
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck problems with passive connection handling.
4f7dd0949d92462a8adc31eee8aff266eea55204chuck [Victor Orlikowski <v.j.orlikowski@gte.net>]
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck *) Reorganize ap_proxy_string_read() internally to not process eos
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck buckets.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Chuck Murcko <chuck@topsail.org>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Victor Orlikowski <v.j.orlikowski@gte.net>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Remove result code check for FTP QUIT command. Some servers send
68bcde9c52e9e749482df2800dbdff09559115e0chuck nothing at all back in response to QUIT.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Chuck Murcko <chuck@topsail.org>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Victor Orlikowski <v.j.orlikowski@gte.net>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckmod_proxy changes for httpd 2.0.19
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Reverse previous patch since the core reverted.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Chuck Murcko <chuck@topsail.org>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Remove indirection on number of bytes to read for input filters.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Chuck Murcko <chuck@topsail.org>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fixed a problem with directory listing corruption in the
68bcde9c52e9e749482df2800dbdff09559115e0chuck PROXY_DIR filter.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) mod_proxy and the proxy submodules now build properly as DSOs.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Stopped the HTTP proxy from trying to read entity bodies when there
68bcde9c52e9e749482df2800dbdff09559115e0chuck wasn't one (response was 1xx, 204, 205 or 304).
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Made sure dates were canonicalised correctly when passed to the client
68bcde9c52e9e749482df2800dbdff09559115e0chuck browser through the HTTP proxy.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck *) Split each individual proxy protocol into separate modules.
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Added Max-Forwards support for all request types so as to prevent
68bcde9c52e9e749482df2800dbdff09559115e0chuck loops.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fix warnings about byte count type on Darwin (connect handler).
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Chuck Murcko <chuck@topsail.org>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckmod_proxy changes for httpd 2.0.18
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) IPV6 EPSV support for IPV6 in FTP proxy.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) FTP directory filter works now.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fixed some thread-safety issues with the HTTP proxy in mod_proxy.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) PASV FTP works now.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Reworked the line-at-a-time read from the control connection to
68bcde9c52e9e749482df2800dbdff09559115e0chuck workaround a stray empty bucket returned by the HTTP_IN filter.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck *) Stopped the CORE filter from sending off an HTTP response when a
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck CONNECT tunnel was closed.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fixed the poll() loop in proxy_connect.c -> it works now!!!
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Converted send_dir() to ap_proxy_send_dir_filter() in proxy_ftp.c.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckmod_proxy changes for httpd 2.0.17
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Major rework of ap_proxy_ftp_handler() to use filters (begone foul
68bcde9c52e9e749482df2800dbdff09559115e0chuck BUFF!!!). It compiles, but is untested, and the build environment needs
68bcde9c52e9e749482df2800dbdff09559115e0chuck to be fixed to include proxy_ftp.c.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Cleanup of dead functions within proxy_util.c.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck *) Reworked the storage of the client socket between keepalive connections
68bcde9c52e9e749482df2800dbdff09559115e0chuck to fix some nasty problems with the socket lasting longer than the
68bcde9c52e9e749482df2800dbdff09559115e0chuck memory pool it was allocated from.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fixed bug where a hostname without a "." in it (such as "localhost")
68bcde9c52e9e749482df2800dbdff09559115e0chuck would not trigger an IP address check with ProxyBlock.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckmod_proxy changes for httpd 2.0.16
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fixed ProxyBlock bugs with ap_proxy_http_handler() and
68bcde9c52e9e749482df2800dbdff09559115e0chuck ap_proxy_connect_handler().
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Updated ap_proxy_connect_handler() to support APR, while
68bcde9c52e9e749482df2800dbdff09559115e0chuck moving some common code between http_handler and connect_handler
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck to proxy_util.c.
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Updated mod_proxy.html docs to include v2.0 configuration.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fixed problem where responses without entity bodies would cause
68bcde9c52e9e749482df2800dbdff09559115e0chuck the directly following proxy keepalive request to fail.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckmod_proxy changes for httpd 2.0.15
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Added support for downstream keepalives in mod_proxy.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Changed mod_proxy ap_proxy_http_handler() to support APR properly.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fix problem where incoming response headers were not being returned
68bcde9c52e9e749482df2800dbdff09559115e0chuck to the client in mod_proxy.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Added X-Forwarded-For, X-Forwarded-Host and X-Forwarded-Server to
68bcde9c52e9e749482df2800dbdff09559115e0chuck reverse proxied request headers in mod_proxy.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) replace INADDR_NONE with APR_INADDR_NONE [Ian Holsman <IanH@cnet.com>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fix problem with proxy configuration where globally set
68bcde9c52e9e749482df2800dbdff09559115e0chuck configuration options were overridden inside virtual hosts.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Fix ProxyReceiveBufferSize where default value was left
68bcde9c52e9e749482df2800dbdff09559115e0chuck uninitialised.
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck [Graham Leggett <minfrin@sharp.fm>]
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck *) Some small changes:
4f7dd0949d92462a8adc31eee8aff266eea55204chuck - Ensured hop-by-hop headers were stripped as per
4f7dd0949d92462a8adc31eee8aff266eea55204chuck RFC2616 13.5.1.
68bcde9c52e9e749482df2800dbdff09559115e0chuck - Upgraded version code to HTTP/1.1.
4f7dd0949d92462a8adc31eee8aff266eea55204chuck - Added Connection: close until Keepalives come.
4f7dd0949d92462a8adc31eee8aff266eea55204chuck - Some cosmetic fixes and commenting.
68bcde9c52e9e749482df2800dbdff09559115e0chuck [Graham Leggett <minfrin@sharp.fm>]
4f7dd0949d92462a8adc31eee8aff266eea55204chuck
4f7dd0949d92462a8adc31eee8aff266eea55204chuckmod_proxy changes for httpd 2.0.14
68bcde9c52e9e749482df2800dbdff09559115e0chuck
*) removed ProxyNoCache and ProxyCacheForceCompletion config directives,
since we no longer directly cache from this module
[Chuck Murcko <chuck@topsail.org>]
*) removed cache
[Chuck Murcko <chuck@topsail.org>]
*) initial rerebuild for 2.0
[Chuck Murcko <chuck@topsail.org>]