CHANGES revision ad4a5834dfdf9488af4ac3238ea4d8b18dce49ac
8efcf516f2b6514879fff8d034be55b6d64ff830striker******************************************
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley* PLEASE NOTE: Now that development for *
e2653756d0d14a9a620b24bd04a6ab1182178462brianp* mod_proxy has been folded back into *
e2653756d0d14a9a620b24bd04a6ab1182178462brianp* the httpd-2.1 tree, this file has *
e2653756d0d14a9a620b24bd04a6ab1182178462brianp* been depreciated. Proxy changes should *
d980a97cfc68de0ef35432ce03f1c1e468a19877jwoolley* be noted in httpd-2.1's CHANGES file. *
d980a97cfc68de0ef35432ce03f1c1e468a19877jwoolley* This file exists for historical *
d980a97cfc68de0ef35432ce03f1c1e468a19877jwoolley* purposes. *
d980a97cfc68de0ef35432ce03f1c1e468a19877jwoolley******************************************
d980a97cfc68de0ef35432ce03f1c1e468a19877jwoolley
d980a97cfc68de0ef35432ce03f1c1e468a19877jwoolleymod_proxy changes for httpd 2.0.29-dev
aa3510b82ec5d82ddbf4748829ec90f1ce71398ebrianp *) don't do keepalives for sub-requests. [Ian Holsman]
aa3510b82ec5d82ddbf4748829ec90f1ce71398ebrianp
aa3510b82ec5d82ddbf4748829ec90f1ce71398ebrianp *) fix up proxypass handling [Ian Holsman]
51b1d7f8eaa74807ab14479edde4421e77f5d1d7brianp
51b1d7f8eaa74807ab14479edde4421e77f5d1d7brianp *) don't send If-Modified-Since, Cache-Control, or If-None-Match on
08aff55373b2ae69182a58055a5c1b3a12d927b0slive a subrequest [Ian Holsman]
08aff55373b2ae69182a58055a5c1b3a12d927b0slive
08aff55373b2ae69182a58055a5c1b3a12d927b0slivemod_proxy changes for httpd 2.0.26-dev
4f50bfb0367b91396c0fe85b80536b760080d39etrawick *) Add New option 'HTTPProxyOverrideReturnedErrors'. By Turning the
4f50bfb0367b91396c0fe85b80536b760080d39etrawick Flag on, you will mask the error pages returned by the proxied
4f50bfb0367b91396c0fe85b80536b760080d39etrawick server, and will it will be handled as if your server generated
5a63340978acb9dd7e87724be57d2bde1cf1f629trawick the error. This change was put in so that a 404 on a included
5a63340978acb9dd7e87724be57d2bde1cf1f629trawick r-proxied component will act in the same manner as a 404 on a
5a63340978acb9dd7e87724be57d2bde1cf1f629trawick included file. [Ian Holsman <ianh@cnet.com>]
9f7325ecad575cf77ab76b01beaaf339a63490b5trawick
8565f742f1ee3d514b2d48a1f2a5af5d7437c3b9trawickmod_proxy changes for httpd 2.0.25-dev
8565f742f1ee3d514b2d48a1f2a5af5d7437c3b9trawick
8565f742f1ee3d514b2d48a1f2a5af5d7437c3b9trawick *) Split proxy: space using <Proxy[Match] > directive blocks from
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley the <Directory[Match] > and <Files[Match] > blocks. Mod_proxy
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley now bypasses the directory and files testing phase (and skips
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley the http TRACE default handler on it's own, as well). Note that
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley <Location > blocks continue to be processed for proxy: requests.
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley [William Rowe <wrowe@covalent.net>]
dcecfbe7e63603d0fb95e4811e015039e9401990stoddard
dcecfbe7e63603d0fb95e4811e015039e9401990stoddard *) apr_uri type/function namespace changes in apr_uri functions
dcecfbe7e63603d0fb95e4811e015039e9401990stoddard [Doug MacEachern <dougm@covalent.net>]
0c7592379b55b7736dd70d2d87f53af9a2347614jerenkrantz
4844d314b0b6e55a309621b84c1786446c5fb418ianhmod_proxy changes for httpd 2.0.23-dev
4844d314b0b6e55a309621b84c1786446c5fb418ianh
4844d314b0b6e55a309621b84c1786446c5fb418ianh *) break the proxy_http_handler into multiple smaller functions.
127c81d6b2c9ba8932273c2e1b13e3ea3d673b07trawick [John Barbee <barbee@veribox.net>]
127c81d6b2c9ba8932273c2e1b13e3ea3d673b07trawick
127c81d6b2c9ba8932273c2e1b13e3ea3d673b07trawick *) Fix the proxy when the origin server sends back a 100
127c81d6b2c9ba8932273c2e1b13e3ea3d673b07trawick Continue response. [John Barbee <barbee@veribox.net>]
59d01b9ed1de043745262e49bb44bde7095c4723jwoolley
59d01b9ed1de043745262e49bb44bde7095c4723jwoolley *) Change 'readbytes' from apr_size_t to apr_off_t due to change
59d01b9ed1de043745262e49bb44bde7095c4723jwoolley in ap_get_brigade's parameters [John Barbee <barbee@veribox.net>]
59d01b9ed1de043745262e49bb44bde7095c4723jwoolley
59d01b9ed1de043745262e49bb44bde7095c4723jwoolleymod_proxy changes for httpd 2.0.20-dev
e6e65585927961caf45d4e9e932bb1f4e9e89ca1jerenkrantz *) Timeout added for backend connections.
e6e65585927961caf45d4e9e932bb1f4e9e89ca1jerenkrantz [Victor Orlikowski <v.j.orlikowski@gte.net>]
e6e65585927961caf45d4e9e932bb1f4e9e89ca1jerenkrantz
b068b71651c802cc4e0b835495ad0e41c65e1174trawick *) Fix abort code path in proxy_http.c, similar to FTP fix.
b068b71651c802cc4e0b835495ad0e41c65e1174trawick [Chuck Murcko <chuck@topsail.org>]
b068b71651c802cc4e0b835495ad0e41c65e1174trawick
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe *) Fix FTP ABOR command execution path.
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe [Victor Orlikowski <v.j.orlikowski@gte.net>]
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe *) FTP return code variable cleanup; fixed problem in login
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe [Chuck Murcko <chuck@topsail.org>]
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe *) Get PORT working again in the ftp proxy.
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe [Victor Orlikowski <v.j.orlikowski@gte.net>]
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe *) Return result code check for FTP QUIT, after fixing
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe problems with passive connection handling.
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe [Victor Orlikowski <v.j.orlikowski@gte.net>]
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe *) Reorganize ap_proxy_string_read() internally to not process eos
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe buckets.
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe [Chuck Murcko <chuck@topsail.org>]
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe [Victor Orlikowski <v.j.orlikowski@gte.net>]
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe
34a1e566d4af2735c87e2d3e6ac5e505855518aawrowe *) Remove result code check for FTP QUIT command. Some servers send
dd39efc1f7ed97cf526aefa24359f0be2ac5c3f4trawick nothing at all back in response to QUIT.
dd39efc1f7ed97cf526aefa24359f0be2ac5c3f4trawick [Chuck Murcko <chuck@topsail.org>]
dd39efc1f7ed97cf526aefa24359f0be2ac5c3f4trawick [Victor Orlikowski <v.j.orlikowski@gte.net>]
dd39efc1f7ed97cf526aefa24359f0be2ac5c3f4trawick
f53367106769f90696d9c1f0ffcf9fbb4db883c2jerenkrantzmod_proxy changes for httpd 2.0.19
f53367106769f90696d9c1f0ffcf9fbb4db883c2jerenkrantz
f53367106769f90696d9c1f0ffcf9fbb4db883c2jerenkrantz *) Reverse previous patch since the core reverted.
9a940e8e90f9b163737e23bbf72a3f2c67a39220brianp [Chuck Murcko <chuck@topsail.org>]
9a940e8e90f9b163737e23bbf72a3f2c67a39220brianp
9a940e8e90f9b163737e23bbf72a3f2c67a39220brianp *) Remove indirection on number of bytes to read for input filters.
8496c88debb9962575dac2b1ef9b81984d7bd759brianp [Chuck Murcko <chuck@topsail.org>]
8496c88debb9962575dac2b1ef9b81984d7bd759brianp
8496c88debb9962575dac2b1ef9b81984d7bd759brianp *) Fixed a problem with directory listing corruption in the
8496c88debb9962575dac2b1ef9b81984d7bd759brianp PROXY_DIR filter.
7c8747b339a5e47ea8301907051a9974d15b23b7brianp [Graham Leggett <minfrin@sharp.fm>]
7c8747b339a5e47ea8301907051a9974d15b23b7brianp
98f81eac9530d487f05013cda9df99755bb59689trawick *) mod_proxy and the proxy submodules now build properly as DSOs.
98f81eac9530d487f05013cda9df99755bb59689trawick [Graham Leggett <minfrin@sharp.fm>]
0b493ad526b8bbc2ff21ce19510fc32238abb816jwoolley
0b493ad526b8bbc2ff21ce19510fc32238abb816jwoolley *) Stopped the HTTP proxy from trying to read entity bodies when there
0b493ad526b8bbc2ff21ce19510fc32238abb816jwoolley wasn't one (response was 1xx, 204, 205 or 304).
0b493ad526b8bbc2ff21ce19510fc32238abb816jwoolley [Graham Leggett <minfrin@sharp.fm>]
1376737cb6afa24d3e12f3a223318fe1bd71bb1fslive
1376737cb6afa24d3e12f3a223318fe1bd71bb1fslive *) Made sure dates were canonicalised correctly when passed to the client
1376737cb6afa24d3e12f3a223318fe1bd71bb1fslive browser through the HTTP proxy.
1376737cb6afa24d3e12f3a223318fe1bd71bb1fslive [Graham Leggett <minfrin@sharp.fm>]
ec1719a5748717f67dcd279bb64bd0da424ae450jerenkrantz
ec1719a5748717f67dcd279bb64bd0da424ae450jerenkrantz *) Split each individual proxy protocol into separate modules.
ec1719a5748717f67dcd279bb64bd0da424ae450jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
dea9ded7417a8328f8fce5d57eca9d7af5500520trawick
dea9ded7417a8328f8fce5d57eca9d7af5500520trawick *) Added Max-Forwards support for all request types so as to prevent
3f0220bf6e864d982a10348c9cc269bfe798d65eaaron loops.
3f0220bf6e864d982a10348c9cc269bfe798d65eaaron [Graham Leggett <minfrin@sharp.fm>]
3f0220bf6e864d982a10348c9cc269bfe798d65eaaron
3f0220bf6e864d982a10348c9cc269bfe798d65eaaron *) Fix warnings about byte count type on Darwin (connect handler).
75d133afee2e3636b07366fd62102b13b67b1b1djerenkrantz [Chuck Murcko <chuck@topsail.org>]
75d133afee2e3636b07366fd62102b13b67b1b1djerenkrantz
75d133afee2e3636b07366fd62102b13b67b1b1djerenkrantzmod_proxy changes for httpd 2.0.18
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolley
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolley *) IPV6 EPSV support for IPV6 in FTP proxy.
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolley [Graham Leggett <minfrin@sharp.fm>]
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolley
5b30f835d627766b024500189c35bb55e686e890brianp *) FTP directory filter works now.
5b30f835d627766b024500189c35bb55e686e890brianp [Graham Leggett <minfrin@sharp.fm>]
5b30f835d627766b024500189c35bb55e686e890brianp
d45481dadf7f1f0ffd95b38b1c5b0ea6b2d57888jerenkrantz *) Fixed some thread-safety issues with the HTTP proxy in mod_proxy.
d45481dadf7f1f0ffd95b38b1c5b0ea6b2d57888jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
d45481dadf7f1f0ffd95b38b1c5b0ea6b2d57888jerenkrantz
0c7592379b55b7736dd70d2d87f53af9a2347614jerenkrantz *) PASV FTP works now.
0c7592379b55b7736dd70d2d87f53af9a2347614jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
0c7592379b55b7736dd70d2d87f53af9a2347614jerenkrantz
6d62bc22f8f22a43e66e2e4d8860a5a144316b1astoddard *) Reworked the line-at-a-time read from the control connection to
6d62bc22f8f22a43e66e2e4d8860a5a144316b1astoddard workaround a stray empty bucket returned by the HTTP_IN filter.
6d62bc22f8f22a43e66e2e4d8860a5a144316b1astoddard [Graham Leggett <minfrin@sharp.fm>]
8efcf516f2b6514879fff8d034be55b6d64ff830striker
71eda8b1c14e4d0adb2f294f22299587cd3d74a9striker *) Stopped the CORE filter from sending off an HTTP response when a
71eda8b1c14e4d0adb2f294f22299587cd3d74a9striker CONNECT tunnel was closed.
922c0ad0014590bb10d13674012683eef44c0bbarederpj [Graham Leggett <minfrin@sharp.fm>]
922c0ad0014590bb10d13674012683eef44c0bbarederpj
922c0ad0014590bb10d13674012683eef44c0bbarederpj *) Fixed the poll() loop in proxy_connect.c -> it works now!!!
922c0ad0014590bb10d13674012683eef44c0bbarederpj [Graham Leggett <minfrin@sharp.fm>]
aec964227053fab7e59deb26709b94726ce67224rederpj
aec964227053fab7e59deb26709b94726ce67224rederpj *) Converted send_dir() to ap_proxy_send_dir_filter() in proxy_ftp.c.
8ffd5c9693162130d35be41953f0dd3bba18edf7rederpj [Graham Leggett <minfrin@sharp.fm>]
aec964227053fab7e59deb26709b94726ce67224rederpj
1e27f530f81c6058d1a11944ae1e2da45977fc7bjerenkrantzmod_proxy changes for httpd 2.0.17
1e27f530f81c6058d1a11944ae1e2da45977fc7bjerenkrantz
1e27f530f81c6058d1a11944ae1e2da45977fc7bjerenkrantz *) Major rework of ap_proxy_ftp_handler() to use filters (begone foul
469549ac22c6f7b9ecdd9df2565925563e4df84djwoolley BUFF!!!). It compiles, but is untested, and the build environment needs
469549ac22c6f7b9ecdd9df2565925563e4df84djwoolley to be fixed to include proxy_ftp.c.
469549ac22c6f7b9ecdd9df2565925563e4df84djwoolley [Graham Leggett <minfrin@sharp.fm>]
469549ac22c6f7b9ecdd9df2565925563e4df84djwoolley
469549ac22c6f7b9ecdd9df2565925563e4df84djwoolley *) Cleanup of dead functions within proxy_util.c.
7a9f3bef545b0bbc93c2ed758119b0d2e2647c31trawick [Graham Leggett <minfrin@sharp.fm>]
7a9f3bef545b0bbc93c2ed758119b0d2e2647c31trawick
7a9f3bef545b0bbc93c2ed758119b0d2e2647c31trawick *) Reworked the storage of the client socket between keepalive connections
0be05c658c7e6e5a05fd2d4068d8ac0f030d4752jwoolley to fix some nasty problems with the socket lasting longer than the
0be05c658c7e6e5a05fd2d4068d8ac0f030d4752jwoolley memory pool it was allocated from.
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolley [Graham Leggett <minfrin@sharp.fm>]
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolley
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolley *) Fixed bug where a hostname without a "." in it (such as "localhost")
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolley would not trigger an IP address check with ProxyBlock.
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolley [Graham Leggett <minfrin@sharp.fm>]
639cf068707865a81ad2c610e72d57b043d20dd6wrowe
639cf068707865a81ad2c610e72d57b043d20dd6wrowemod_proxy changes for httpd 2.0.16
639cf068707865a81ad2c610e72d57b043d20dd6wrowe
639cf068707865a81ad2c610e72d57b043d20dd6wrowe *) Fixed ProxyBlock bugs with ap_proxy_http_handler() and
f3f0c2a5f6009d06350341219d1f38a1644708bcbrianp ap_proxy_connect_handler().
f3f0c2a5f6009d06350341219d1f38a1644708bcbrianp [Graham Leggett <minfrin@sharp.fm>]
f3f0c2a5f6009d06350341219d1f38a1644708bcbrianp
33b095d35c5dac22358ce63c32635ab59ce7cb25aaron *) Updated ap_proxy_connect_handler() to support APR, while
33b095d35c5dac22358ce63c32635ab59ce7cb25aaron moving some common code between http_handler and connect_handler
33b095d35c5dac22358ce63c32635ab59ce7cb25aaron to proxy_util.c.
33b095d35c5dac22358ce63c32635ab59ce7cb25aaron [Graham Leggett <minfrin@sharp.fm>]
33b095d35c5dac22358ce63c32635ab59ce7cb25aaron
100e6f5dec61d108494565f8f3bfa894afadc33ajerenkrantz *) Updated mod_proxy.html docs to include v2.0 configuration.
100e6f5dec61d108494565f8f3bfa894afadc33ajerenkrantz [Graham Leggett <minfrin@sharp.fm>]
100e6f5dec61d108494565f8f3bfa894afadc33ajerenkrantz
100e6f5dec61d108494565f8f3bfa894afadc33ajerenkrantz *) Fixed problem where responses without entity bodies would cause
5d5d5ca04c57c7ab865924f4648e8f80de27adfebrianp the directly following proxy keepalive request to fail.
5d5d5ca04c57c7ab865924f4648e8f80de27adfebrianp [Graham Leggett <minfrin@sharp.fm>]
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaron
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaronmod_proxy changes for httpd 2.0.15
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaron
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaron *) Added support for downstream keepalives in mod_proxy.
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaron [Graham Leggett <minfrin@sharp.fm>]
3c0c3ae288166a8736593093c636768702abf263aaron
3c0c3ae288166a8736593093c636768702abf263aaron *) Changed mod_proxy ap_proxy_http_handler() to support APR properly.
3c0c3ae288166a8736593093c636768702abf263aaron [Graham Leggett <minfrin@sharp.fm>]
b8a843847aae3d9a1838fb8f1de84cd66212f48atrawick
b8a843847aae3d9a1838fb8f1de84cd66212f48atrawick *) Fix problem where incoming response headers were not being returned
c8411888a54dd5dbfd8a5d337ebf0e911a789063trawick to the client in mod_proxy.
c8411888a54dd5dbfd8a5d337ebf0e911a789063trawick [Graham Leggett <minfrin@sharp.fm>]
c8411888a54dd5dbfd8a5d337ebf0e911a789063trawick
28caffb98f18c0b9562ac20870f7ab91f3d9a01fjerenkrantz *) Added X-Forwarded-For, X-Forwarded-Host and X-Forwarded-Server to
28caffb98f18c0b9562ac20870f7ab91f3d9a01fjerenkrantz reverse proxied request headers in mod_proxy.
28caffb98f18c0b9562ac20870f7ab91f3d9a01fjerenkrantz [Graham Leggett <minfrin@sharp.fm>]
d757628a07145aa711ba75b4e7c7c01a33133ca1jerenkrantz
d757628a07145aa711ba75b4e7c7c01a33133ca1jerenkrantz *) replace INADDR_NONE with APR_INADDR_NONE [Ian Holsman <IanH@cnet.com>]
d757628a07145aa711ba75b4e7c7c01a33133ca1jerenkrantz
1585c2979d749ee71edb6a1d57bc9ff6db12a426jerenkrantz *) Fix problem with proxy configuration where globally set
1585c2979d749ee71edb6a1d57bc9ff6db12a426jerenkrantz configuration options were overridden inside virtual hosts.
1585c2979d749ee71edb6a1d57bc9ff6db12a426jerenkrantz [Graham Leggett <minfrin@sharp.fm>]
6bdb2c094666367615890147775bb18761216c8dminfrin
6bdb2c094666367615890147775bb18761216c8dminfrin *) Fix ProxyReceiveBufferSize where default value was left
6bdb2c094666367615890147775bb18761216c8dminfrin uninitialised.
c069757188a3cd9ab19b05169b005a824b60b6fcaaron [Graham Leggett <minfrin@sharp.fm>]
c069757188a3cd9ab19b05169b005a824b60b6fcaaron
c069757188a3cd9ab19b05169b005a824b60b6fcaaron *) Some small changes:
c069757188a3cd9ab19b05169b005a824b60b6fcaaron - Ensured hop-by-hop headers were stripped as per
c069757188a3cd9ab19b05169b005a824b60b6fcaaron RFC2616 13.5.1.
11ce97701b22d795fd1a5ec3769a3367bc220921wrowe - Upgraded version code to HTTP/1.1.
11ce97701b22d795fd1a5ec3769a3367bc220921wrowe - Added Connection: close until Keepalives come.
11ce97701b22d795fd1a5ec3769a3367bc220921wrowe - Some cosmetic fixes and commenting.
11ce97701b22d795fd1a5ec3769a3367bc220921wrowe [Graham Leggett <minfrin@sharp.fm>]
11ce97701b22d795fd1a5ec3769a3367bc220921wrowe
6cdd5cd95d8323de5cfb912d8fc0df8c5e3d02cejerenkrantzmod_proxy changes for httpd 2.0.14
e45d7d4ca98387c2898f8302bafb31e3b4f5a5d8jwoolley
6cdd5cd95d8323de5cfb912d8fc0df8c5e3d02cejerenkrantz *) removed ProxyNoCache and ProxyCacheForceCompletion config directives,
239ab9d14d3851c2efc1312b3b42c838073533f4jerenkrantz since we no longer directly cache from this module
239ab9d14d3851c2efc1312b3b42c838073533f4jerenkrantz [Chuck Murcko <chuck@topsail.org>]
239ab9d14d3851c2efc1312b3b42c838073533f4jerenkrantz
239ab9d14d3851c2efc1312b3b42c838073533f4jerenkrantz *) removed cache
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbb [Chuck Murcko <chuck@topsail.org>]
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbb
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbb *) initial rerebuild for 2.0
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbb [Chuck Murcko <chuck@topsail.org>]
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbb
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbb