CHANGES revision 9e430d18dde58791589bd699416c8319560dd067
48c0c81cd6fabac9d3386406d97633780365b839coar******************************************
d11fd86c8be5d8a2ecfbc860aeab89e90faa27bfwrowe* PLEASE NOTE: Now that development for *
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj* mod_proxy has been folded back into *
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj* the httpd-2.1 tree, this file has *
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj* been deprecated. Proxy changes should *
d8028365066fca602bf35d014530a1802114378crbb* be noted in httpd-2.x's CHANGES file. *
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe* This file exists for historical *
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe* purposes. *
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe******************************************
d89c116f82699294ca744125723651c554bc5925wrowe
4214e98fc9045e5010e66f9a967bd6d68f40d342aaronmod_proxy changes for httpd 2.0.29-dev
8721697e2aece27b0e738519329f7976c72b27bfjerenkrantz *) don't do keepalives for sub-requests. [Ian Holsman]
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz *) fix up proxypass handling [Ian Holsman]
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbb *) don't send If-Modified-Since, Cache-Control, or If-None-Match on
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbb a subrequest [Ian Holsman]
ab71b233b3a36489e44a7b061c48293be0b17788jwoolley
571760de5e60c0b459cb11be45507b923cd023eejwoolleymod_proxy changes for httpd 2.0.26-dev
571760de5e60c0b459cb11be45507b923cd023eejwoolley *) Add New option 'HTTPProxyOverrideReturnedErrors'. By Turning the
9180a5933673ffb1af633c255ceee029340f3b1erbb Flag on, you will mask the error pages returned by the proxied
bcb6e1be6041dfeb549c8ea8d37f97ad4e90a0c3rbb server, and will it will be handled as if your server generated
9bd71e35f5d26d26d23fe3a677401828e842ed72wrowe the error. This change was put in so that a 404 on a included
2900ab946a2d76b73a14cebfe2985d253f01c967stoddard r-proxied component will act in the same manner as a 404 on a
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb included file. [Ian Holsman <ianh@cnet.com>]
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbbmod_proxy changes for httpd 2.0.25-dev
b876b7bcf0ce3d232da723246d709e8dbbfe8762rbb
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein *) Split proxy: space using <Proxy[Match] > directive blocks from
35330e0d79ceb8027223bbb8330a381b1f989d6etrawick the <Directory[Match] > and <Files[Match] > blocks. Mod_proxy
6f6f4a4bca281779d196acbdd5c017bb90858305trawick now bypasses the directory and files testing phase (and skips
8dd4618c4709236b4ea297d7250d282e463ce2d8rbb the http TRACE default handler on it's own, as well). Note that
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick <Location > blocks continue to be processed for proxy: requests.
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb [William Rowe <wrowe@covalent.net>]
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj *) apr_uri type/function namespace changes in apr_uri functions
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj [Doug MacEachern <dougm@covalent.net>]
af4c982a7cf4515f124935f99a329744035fc699slive
af4c982a7cf4515f124935f99a329744035fc699slivemod_proxy changes for httpd 2.0.23-dev
af4c982a7cf4515f124935f99a329744035fc699slive
af4c982a7cf4515f124935f99a329744035fc699slive *) break the proxy_http_handler into multiple smaller functions.
af4c982a7cf4515f124935f99a329744035fc699slive [John Barbee <barbee@veribox.net>]
af4c982a7cf4515f124935f99a329744035fc699slive
af4c982a7cf4515f124935f99a329744035fc699slive *) Fix the proxy when the origin server sends back a 100
10270f6f94b2069d0d357805c140a9897449b9ccianh Continue response. [John Barbee <barbee@veribox.net>]
4b62424416882687387923b3130b96241503cbe0jerenkrantz
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz *) Change 'readbytes' from apr_size_t to apr_off_t due to change
0d2f57cf389a981efa5e98d9b451c6baf0af12bfjerenkrantz in ap_get_brigade's parameters [John Barbee <barbee@veribox.net>]
0d2f57cf389a981efa5e98d9b451c6baf0af12bfjerenkrantz
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantzmod_proxy changes for httpd 2.0.20-dev
4b62424416882687387923b3130b96241503cbe0jerenkrantz *) Timeout added for backend connections.
4b62424416882687387923b3130b96241503cbe0jerenkrantz [Victor Orlikowski <v.j.orlikowski@gte.net>]
0d2f57cf389a981efa5e98d9b451c6baf0af12bfjerenkrantz
0d2f57cf389a981efa5e98d9b451c6baf0af12bfjerenkrantz *) Fix abort code path in proxy_http.c, similar to FTP fix.
0d2f57cf389a981efa5e98d9b451c6baf0af12bfjerenkrantz [Chuck Murcko <chuck@topsail.org>]
a12b7938cf47a0017a70ba195bbce035aa040e38aaron
a12b7938cf47a0017a70ba195bbce035aa040e38aaron *) Fix FTP ABOR command execution path.
a12b7938cf47a0017a70ba195bbce035aa040e38aaron [Victor Orlikowski <v.j.orlikowski@gte.net>]
92e6727dad0094c5a049f903aef92c5caf3cd65fjim
f49387f556886ad6a6b4efc724ed9aa1d3412228jerenkrantz *) FTP return code variable cleanup; fixed problem in login
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Chuck Murcko <chuck@topsail.org>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe *) Get PORT working again in the ftp proxy.
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Victor Orlikowski <v.j.orlikowski@gte.net>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz *) Return result code check for FTP QUIT, after fixing
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe problems with passive connection handling.
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Victor Orlikowski <v.j.orlikowski@gte.net>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz *) Reorganize ap_proxy_string_read() internally to not process eos
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz buckets.
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Chuck Murcko <chuck@topsail.org>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Victor Orlikowski <v.j.orlikowski@gte.net>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz *) Remove result code check for FTP QUIT command. Some servers send
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz nothing at all back in response to QUIT.
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Chuck Murcko <chuck@topsail.org>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Victor Orlikowski <v.j.orlikowski@gte.net>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowemod_proxy changes for httpd 2.0.19
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz *) Reverse previous patch since the core reverted.
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Chuck Murcko <chuck@topsail.org>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
bcca8071772ad81c16009aea3a7da3ef9da41173trawick *) Remove indirection on number of bytes to read for input filters.
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz [Chuck Murcko <chuck@topsail.org>]
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
1b3f48fd6b1ccb8745f908e40156c5a85ca3c347jerenkrantz *) Fixed a problem with directory listing corruption in the
984a1ce6391060f0eea811dbbdbc993250399aa1stoddard PROXY_DIR filter.
984a1ce6391060f0eea811dbbdbc993250399aa1stoddard [Graham Leggett <minfrin@sharp.fm>]
a23b1c5a74208b03884c09a6f9dd5d6c97fa6415trawick
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe *) mod_proxy and the proxy submodules now build properly as DSOs.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe [Graham Leggett <minfrin@sharp.fm>]
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe *) Stopped the HTTP proxy from trying to read entity bodies when there
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe wasn't one (response was 1xx, 204, 205 or 304).
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe [Graham Leggett <minfrin@sharp.fm>]
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe *) Made sure dates were canonicalised correctly when passed to the client
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe browser through the HTTP proxy.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe [Graham Leggett <minfrin@sharp.fm>]
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe *) Split each individual proxy protocol into separate modules.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe [Graham Leggett <minfrin@sharp.fm>]
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe *) Added Max-Forwards support for all request types so as to prevent
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe loops.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe [Graham Leggett <minfrin@sharp.fm>]
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe *) Fix warnings about byte count type on Darwin (connect handler).
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe [Chuck Murcko <chuck@topsail.org>]
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowemod_proxy changes for httpd 2.0.18
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
638a9edaf48cf003cd40ac25ee8c25f572107414stoddard *) IPV6 EPSV support for IPV6 in FTP proxy.
638a9edaf48cf003cd40ac25ee8c25f572107414stoddard [Graham Leggett <minfrin@sharp.fm>]
638a9edaf48cf003cd40ac25ee8c25f572107414stoddard
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron *) FTP directory filter works now.
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron [Graham Leggett <minfrin@sharp.fm>]
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb *) Fixed some thread-safety issues with the HTTP proxy in mod_proxy.
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb [Graham Leggett <minfrin@sharp.fm>]
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb *) PASV FTP works now.
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb [Graham Leggett <minfrin@sharp.fm>]
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb *) Reworked the line-at-a-time read from the control connection to
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron workaround a stray empty bucket returned by the HTTP_IN filter.
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron [Graham Leggett <minfrin@sharp.fm>]
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron *) Stopped the CORE filter from sending off an HTTP response when a
a12f07383f9c286519fe88f559187148d5bd1c16aaron CONNECT tunnel was closed.
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron [Graham Leggett <minfrin@sharp.fm>]
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz *) Fixed the poll() loop in proxy_connect.c -> it works now!!!
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz *) Converted send_dir() to ap_proxy_send_dir_filter() in proxy_ftp.c.
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz
5d12baef135b5d3cb94745e007a1575398469724jerenkrantzmod_proxy changes for httpd 2.0.17
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz *) Major rework of ap_proxy_ftp_handler() to use filters (begone foul
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz BUFF!!!). It compiles, but is untested, and the build environment needs
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz to be fixed to include proxy_ftp.c.
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz *) Cleanup of dead functions within proxy_util.c.
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz *) Reworked the storage of the client socket between keepalive connections
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz to fix some nasty problems with the socket lasting longer than the
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz memory pool it was allocated from.
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz *) Fixed bug where a hostname without a "." in it (such as "localhost")
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz would not trigger an IP address check with ProxyBlock.
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzmod_proxy changes for httpd 2.0.16
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz
dc098c7ce5d36179c504d09fc722d190683d0262aaron *) Fixed ProxyBlock bugs with ap_proxy_http_handler() and
dc098c7ce5d36179c504d09fc722d190683d0262aaron ap_proxy_connect_handler().
dc098c7ce5d36179c504d09fc722d190683d0262aaron [Graham Leggett <minfrin@sharp.fm>]
dc098c7ce5d36179c504d09fc722d190683d0262aaron
dc098c7ce5d36179c504d09fc722d190683d0262aaron *) Updated ap_proxy_connect_handler() to support APR, while
dc098c7ce5d36179c504d09fc722d190683d0262aaron moving some common code between http_handler and connect_handler
dc098c7ce5d36179c504d09fc722d190683d0262aaron to proxy_util.c.
364dfd4527e6ce37b828a42e2c0bbdf9ba19a9b8gregames [Graham Leggett <minfrin@sharp.fm>]
364dfd4527e6ce37b828a42e2c0bbdf9ba19a9b8gregames
dc098c7ce5d36179c504d09fc722d190683d0262aaron *) Updated mod_proxy.html docs to include v2.0 configuration.
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaron [Graham Leggett <minfrin@sharp.fm>]
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaron
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaron *) Fixed problem where responses without entity bodies would cause
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaron the directly following proxy keepalive request to fail.
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaron [Graham Leggett <minfrin@sharp.fm>]
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaron
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzmod_proxy changes for httpd 2.0.15
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz *) Added support for downstream keepalives in mod_proxy.
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz *) Changed mod_proxy ap_proxy_http_handler() to support APR properly.
ff42f83cbf31893bcde9712332a8e5ee970f6a74trawick [Graham Leggett <minfrin@sharp.fm>]
ff42f83cbf31893bcde9712332a8e5ee970f6a74trawick
ff42f83cbf31893bcde9712332a8e5ee970f6a74trawick *) Fix problem where incoming response headers were not being returned
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz to the client in mod_proxy.
54e1babd5a5a56c576eeeace54110150769cc916coar [Graham Leggett <minfrin@sharp.fm>]
54e1babd5a5a56c576eeeace54110150769cc916coar
54e1babd5a5a56c576eeeace54110150769cc916coar *) Added X-Forwarded-For, X-Forwarded-Host and X-Forwarded-Server to
54e1babd5a5a56c576eeeace54110150769cc916coar reverse proxied request headers in mod_proxy.
54e1babd5a5a56c576eeeace54110150769cc916coar [Graham Leggett <minfrin@sharp.fm>]
54e1babd5a5a56c576eeeace54110150769cc916coar
54e1babd5a5a56c576eeeace54110150769cc916coar *) replace INADDR_NONE with APR_INADDR_NONE [Ian Holsman <IanH@cnet.com>]
54e1babd5a5a56c576eeeace54110150769cc916coar
54e1babd5a5a56c576eeeace54110150769cc916coar *) Fix problem with proxy configuration where globally set
54e1babd5a5a56c576eeeace54110150769cc916coar configuration options were overridden inside virtual hosts.
54e1babd5a5a56c576eeeace54110150769cc916coar [Graham Leggett <minfrin@sharp.fm>]
54e1babd5a5a56c576eeeace54110150769cc916coar
54e1babd5a5a56c576eeeace54110150769cc916coar *) Fix ProxyReceiveBufferSize where default value was left
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz uninitialised.
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz *) Some small changes:
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz - Ensured hop-by-hop headers were stripped as per
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz RFC2616 13.5.1.
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoar - Upgraded version code to HTTP/1.1.
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoar - Added Connection: close until Keepalives come.
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantz - Some cosmetic fixes and commenting.
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantz
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantzmod_proxy changes for httpd 2.0.14
f126ee03179eb54308118f1ec3de5a7b461685d8aaron
f126ee03179eb54308118f1ec3de5a7b461685d8aaron *) removed ProxyNoCache and ProxyCacheForceCompletion config directives,
f126ee03179eb54308118f1ec3de5a7b461685d8aaron since we no longer directly cache from this module
f126ee03179eb54308118f1ec3de5a7b461685d8aaron [Chuck Murcko <chuck@topsail.org>]
f126ee03179eb54308118f1ec3de5a7b461685d8aaron
f126ee03179eb54308118f1ec3de5a7b461685d8aaron *) removed cache
f126ee03179eb54308118f1ec3de5a7b461685d8aaron [Chuck Murcko <chuck@topsail.org>]
f126ee03179eb54308118f1ec3de5a7b461685d8aaron
f126ee03179eb54308118f1ec3de5a7b461685d8aaron *) initial rerebuild for 2.0
f126ee03179eb54308118f1ec3de5a7b461685d8aaron [Chuck Murcko <chuck@topsail.org>]
f126ee03179eb54308118f1ec3de5a7b461685d8aaron
f126ee03179eb54308118f1ec3de5a7b461685d8aaron