CHANGES revision d1d25826dbd7d2ba97db90b77122ae2b0f363e89
ee9c9500ab13c1093fc3feaf2aa5a0d330d0bfadKay SieversChanges with Apache 2.0b1
b3ae710c251d0ce5cf2cef63208e325497b5e323Zbigniew Jędrzejewski-Szmek *) Return HTTP_RANGE_NOT_SATISFIABLE if the every range requested starts
b3ae710c251d0ce5cf2cef63208e325497b5e323Zbigniew Jędrzejewski-Szmek after the end of the response. [Ryan Bloom]
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers *) Get byterange requests working with responses that do not have a
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers content-length. Because of the way byterange requests work, we have to
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers have all of the data before we can actually do the byterange, so we
cff452c7e974db5053cdbd0d7bbbab2e3b4c91b9Kay Sievers can compute the content-length in the byterange filter.
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers [Ryan Bloom]
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers *) Get exe CGI's working again on Windows.
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers [Allan Edwards]
a40593a0d0d740efa387e35411e1e456a6c5aba7Lennart Poettering
20ffc4c4a9226b0e45cc02ad9c0108981626c0bbKay Sievers *) Get mod_cgid and mod_rewrite to work as DSOs by changing the way
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-Szmek they keep track of whether or not their post config hook has been
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-Szmek called before. Instead of a static variable (which is replaced when
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-Szmek the DSO is loaded a second time), use userdata in the process pool.
04ac799283f517672a5424e7c5bf066cfa4ca020Zbigniew Jędrzejewski-Szmek [Jeff Trawick]
d8160f21fd295b451cee9679aa281fedf1cb8e8cZbigniew Jędrzejewski-Szmek
d8160f21fd295b451cee9679aa281fedf1cb8e8cZbigniew Jędrzejewski-SzmekChanges with Apache 2.0a9
374c356979ba7222fa7e09005824fe6996b0e91eDavid Herrmann
374c356979ba7222fa7e09005824fe6996b0e91eDavid Herrmann *) Win32 now requires perl to complete the final install step for users
374c356979ba7222fa7e09005824fe6996b0e91eDavid Herrmann to build + install on Win32. Makefile.win now rewrites @@ServerRoot@
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering and installs the conf, htdocs and htdocs/manual directories.
7b4da18c1717f811bae67ea3d39290495857c03eLennart Poettering [William Rowe]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sievers *) Make mod_include use a hash table to associate directive tags with
55d32caf94d8df547ca763be52b0c35bb6388606Lennart Poettering functions. This allows modules to implement their own SSI tags easily.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering The idea is simple enough, a module can insert it's own tag and function
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering combination into a hash table provided by mod_include. While mod_include
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering parses an SSI file, when it encounters a tag in the file, it does a
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering hash lookup to find the function that implements that tag, and passes
eb124a97fb72d076014253b1acde69d428f15ecfLennart Poettering all of the relevant data to the function. That function is then
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poettering responsible for processing the tag and handing the remaining data back
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering to mod_include for further processing.
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering [Paul J. Reder <rederpj@raleigh.ibm.com>]
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering *) Get rid of ap_new_apr_connection(). ap_new_connection() now has
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering fewer parameters: the local and remote socket addresses were removed
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering from the parameter list because all required information is available
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering via the APR socket. [Jeff Trawick]
11fb37f16ed99c1603c9d770b60ce4953b96a58dLennart Poettering
01083ad094664e5c685060f4fb35a05ea2f212edLennart Poettering *) Distribution directory structure reorganized to reflect a
01083ad094664e5c685060f4fb35a05ea2f212edLennart Poettering normal source distribution with external install targets.
a2b135e3d8d5dfa103a87e304ed8a91b01fdbb02Lennart Poettering [Roy Fielding]
a2b135e3d8d5dfa103a87e304ed8a91b01fdbb02Lennart Poettering
a2b135e3d8d5dfa103a87e304ed8a91b01fdbb02Lennart Poettering *) The MPMs that need multiple segments of shared memory now create
a2b135e3d8d5dfa103a87e304ed8a91b01fdbb02Lennart Poettering two apr_shmem_t variables, one for each shared memory allocation.
b107b705cc97d3033e37c44229deb37b5aa31df5Lennart Poettering the problem is that we can't determine how much memory will be required
b107b705cc97d3033e37c44229deb37b5aa31df5Lennart Poettering for shared memory allocations once we try to allocate more than one
edb2935c5c5b95c42b8679086f60da5eafad74cbLennart Poettering variable. The MM code automatically aligns the shared memory allocations,
edb2935c5c5b95c42b8679086f60da5eafad74cbLennart Poettering so we end up needing to pad the amount of shared memory we want based
769918ecd30c0f7ee6e87b9aa6226d956bd2f530Lennart Poettering on how many variables will be allocated out of the shared memory segment.
769918ecd30c0f7ee6e87b9aa6226d956bd2f530Lennart Poettering It is just easier to create a second apr_shmem_t variable, and two
769918ecd30c0f7ee6e87b9aa6226d956bd2f530Lennart Poettering shmem memory blocks.
769918ecd30c0f7ee6e87b9aa6226d956bd2f530Lennart Poettering [Ryan Bloom]
6a3f892a23db71544d0439355f96c44350dafa8fLennart Poettering
2a781fc9bd33982c81e5ff75974a442a33d4f167Lennart Poettering *) Cleanup the export list a bit. This creates a single unified list of
2a781fc9bd33982c81e5ff75974a442a33d4f167Lennart Poettering functions exported by APR. The export list is generated at configure
6a3f892a23db71544d0439355f96c44350dafa8fLennart Poettering time, and that list is then used to generate the exports.c file.
6a3f892a23db71544d0439355f96c44350dafa8fLennart Poettering Because of the way the export list is generated, we only export those
efc141b8ffbfa1e449da40ce27fccaa81428f779Lennart Poettering functions that are valid on the platform we are building on.
efc141b8ffbfa1e449da40ce27fccaa81428f779Lennart Poettering [Ryan Bloom]
efc141b8ffbfa1e449da40ce27fccaa81428f779Lennart Poettering
efc141b8ffbfa1e449da40ce27fccaa81428f779Lennart Poettering *) Enable logging the cookie with mod_log_config
efc141b8ffbfa1e449da40ce27fccaa81428f779Lennart Poettering [Sander van Zoest <sander@covalent.net>]
726a6e963056a7238a512cfe6ce612af2c2d1419Lennart Poettering
7ba4fedb8048182fb765bd6ae5aa1e548389bef3Lennart Poettering *) Fix a segfault in mod_info when it reaches the end of the configuration.
23fae27185ddde98706faac0f45d77b11ecd66e6Lennart Poettering [Jeff Trawick]
23fae27185ddde98706faac0f45d77b11ecd66e6Lennart Poettering
650264033f2f98f6319513958d94d59078654af8Lennart Poettering *) Added lib/aputil/ as a placeholder for utility functions which are not
650264033f2f98f6319513958d94d59078654af8Lennart Poettering specific to the Apache HTTP Server (but do not make sense with APR).
650264033f2f98f6319513958d94d59078654af8Lennart Poettering The first utility is "apu_dbm": a set of functions to work with DBM
650264033f2f98f6319513958d94d59078654af8Lennart Poettering files. This first version can be compiled for SDBM or GDBM databases.
650264033f2f98f6319513958d94d59078654af8Lennart Poettering [Greg Stein]
650264033f2f98f6319513958d94d59078654af8Lennart Poettering
650264033f2f98f6319513958d94d59078654af8Lennart Poettering *) Complete re-write of mod_include. This makes mod_include a filter that
650264033f2f98f6319513958d94d59078654af8Lennart Poettering uses buckets directly. This has now served the FAQ correctly.
650264033f2f98f6319513958d94d59078654af8Lennart Poettering [Paul Reder <rederpj@raleigh.ibm.com>]
650264033f2f98f6319513958d94d59078654af8Lennart Poettering
650264033f2f98f6319513958d94d59078654af8Lennart Poettering *) Allow modules to specify the first filter in a sub_request when
f8901862b2b030921b3d5aba4157044ceab16451Lennart Poettering making the sub_request. This keeps modules from having to change the
eda8f06755bd98c4639293c26b856c225f0d1fe1Lennart Poettering output_filter immediately after creating the sub-request, and therefore
eda8f06755bd98c4639293c26b856c225f0d1fe1Lennart Poettering skip the sub_req_output_filter. [Ryan Bloom]
d4fdc205a4610965cee46408dbd046c922e7620cLennart Poettering
d4fdc205a4610965cee46408dbd046c922e7620cLennart Poettering *) Update ab to accept URLs with IPv6 literal address strings (in the
d4fdc205a4610965cee46408dbd046c922e7620cLennart Poettering format described in RFC 2732), and to build Host header fields in
4c63a53ac5190dc8b837c15daefec5772de66bdcLennart Poettering the same format. This allows IPv6 literal address strings to be
4c63a53ac5190dc8b837c15daefec5772de66bdcLennart Poettering used with ab. This support has been tested against Apache 1.3 with
7bb2954901b2e568efaf67254e480032e0958cadLennart Poettering the KAME patch, but Apache 2.0 does not yet work with this format
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart Poettering of the Host header field. [Jeff Trawick]
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart Poettering
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart Poettering *) Accomodate an out-of-space condition in the piped logs and the
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart Poettering rotatelogs.c code, and no longer churn log processes for this
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart Poettering condition. [Victor J. Orlikowski]
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart Poettering
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart Poettering *) Add support for partial writes with apr_sendfile() to core_output_filter.
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart Poettering [Greg Ames]
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart Poettering
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart PoetteringChanges with Apache 2.0a8
47c94a96df29080f8b3a97e7362df4e9c6ba3265Lennart Poettering
47c94a96df29080f8b3a97e7362df4e9c6ba3265Lennart Poettering *) Add a directive to mod_mime so that filters can be associated with
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poettering a given mime-type.
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poettering [Ryan Bloom]
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poettering
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poettering *) Get multi-views working again. We were setting the path_info
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poettering field incorrectly if we couldn't find the specified file.
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poettering [Ryan Bloom]
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poettering
ef417cfd2211ae017a38b9796c6db29130133e63Zbigniew Jędrzejewski-Szmek *) Fix 304 processing. The core should never try to send the headers
ef417cfd2211ae017a38b9796c6db29130133e63Zbigniew Jędrzejewski-Szmek down the filter stack. Always, just setup the table in the request
3333d748facc15f49935b6b793490ba0824976e6Zbigniew Jędrzejewski-Szmek record, and let the header filter convert it to data that is ready
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering for the network.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Ryan Bloom]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) More fixes for the proxy. There are still bugs in the proxy code,
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering but this has now proxied www.yahoo.com and www.ntrnet.net (my ISP)
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering successfully.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Ryan Bloom]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
0bee65f0622c4faa8ac8ae771cc0c8a936dfa284Lennart Poettering *) Fix params for apr_getaddrinfo() call in connect proxy handler.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Chuck Murcko]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) APR: Add new apr_getopt_long function to handle long options.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [B. W. Fitzpatrick <fitz@red-bean.com>]
ebcf1f97de4f6b1580ae55eb56b1a3939fe6b602Lennart Poettering
47c94a96df29080f8b3a97e7362df4e9c6ba3265Lennart Poettering *) APR: Change apr_connect() to take apr_sockaddr_t instead of hostname.
47c94a96df29080f8b3a97e7362df4e9c6ba3265Lennart Poettering Add generic apr_create_socket(). Add apr_getaddrinfo() for doing
718db96199eb307751264e4163555662c9a389faLennart Poettering hostname resolution/address string parsing and building
718db96199eb307751264e4163555662c9a389faLennart Poettering apr_sockaddr_t. Add apr_get_sockaddr() for getting the address
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering of one of the apr_sockaddr_t structures for a socket. Change
718db96199eb307751264e4163555662c9a389faLennart Poettering apr_bind() to take apr_sockaddr_t. [David Reid and Jeff Trawick]
718db96199eb307751264e4163555662c9a389faLennart Poettering
718db96199eb307751264e4163555662c9a389faLennart Poettering *) Remove the BUFF from the HTTP proxy. This is still a bit ugly, but
966204e010ed432a1d7a0481d41a326d8ec7b0c8Lennart Poettering I have proxied pages with it, cleanup will commence soon.
966204e010ed432a1d7a0481d41a326d8ec7b0c8Lennart Poettering [Ryan Bloom]
94676f3e9352cbf1f72e0a512ee0d2ed83ff676dLennart Poettering
6fd4d0209827e5c3e52fa8c7144852f550f8f95cLennart Poettering *) Make the proxy work with filters. This isn't perfect, because we
ced4d06784dbb19666688947901961f949f2aa6dLennart Poettering aren't dealing with the headers properly. [Ryan Bloom]
ced4d06784dbb19666688947901961f949f2aa6dLennart Poettering
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart Poettering *) Do not send a content-length iff the C-L is 0 and this is a head
416446221d905b6815175dc4d525d27f8ae43d1bLennart Poettering request. [Ryan Bloom]
416446221d905b6815175dc4d525d27f8ae43d1bLennart Poettering
416446221d905b6815175dc4d525d27f8ae43d1bLennart Poettering *) Make cgi-bin work as a regular directory when using mod_vhost_alias
7f79cd7109a60810140a045cc725291fc5515264Lennart Poettering with no VirtualScriptAlias directives. PR#6829 [Tony Finch]
0aafd43d235982510d1c40564079f7bcec0c7c19Lennart Poettering
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt *) Remove BUFF from the PROXY connect handling. [Ryan Bloom]
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt
df5f6971e6e15b4632884916c71daa076c8bae96Lennart Poettering *) Get the default_handler to stop trying to deal with HEAD requests.
df5f6971e6e15b4632884916c71daa076c8bae96Lennart Poettering The idea is to let the content-length filter compute the C-L before
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poettering we try to send the data. If we can get the C-L correctly, then we
fcba531ed4c6e6f8f21d8ca4e3a56e3162b1c578Lennart Poettering should send it in the HEAD response.
8b8f259170e35b93e6c6d1757cb8b835bbdaa40cZbigniew Jędrzejewski-Szmek [Ryan Bloom]
8b8f259170e35b93e6c6d1757cb8b835bbdaa40cZbigniew Jędrzejewski-Szmek
e10e429f2dcbb586215e65f62847f40c7d8b5956David Herrmann *) The Header filter can now determine if a body should be sent based
e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960Lennart Poettering on r->header_only. The general idea of this is that if we delay
6aaa8c2f783cd1b3ac27c5ce40625d032e7e3d71Zbigniew Jędrzejewski-Szmek deciding to send the body, then we might be able to compute the
c3bb87dbab8b79bb9253407cb5b7f3e6fe8db395Lennart Poettering content-length correctly, which will help caching proxies to cache
e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960Lennart Poettering our data better. Any handler that doesn't want to try to compute
18d4e7c26e7806ac363d19989df7144d5058ce41Lennart Poettering the content-length can just send an EOS bucket without data and
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering everything will just work.
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering [Ryan Bloom]
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poettering *) Add the referer to the error log if one is available.
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering [Markus Gyger <mgyger@itr.ch>]
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmek
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering *) Mod_info.c has now been ported to Apache 2.0. As a part of this
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sievers change, the root of the configuration tree has been exposed to modules
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sievers as ap_conftree.
9444b1f20e311f073864d81e913bd4f32fe95cfdLennart Poettering [Ryan Morgan <rmorgan@covalent.net>]
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering *) Get the core_output_filter to use the bucket interface directly.
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering This keeps us from calling the content-length filter multiple times
6bb648a16ae4a682ad4784412af706d2e6a3e4daTom Gundersen for a simple static request.
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering [Ryan Bloom]
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poettering
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poettering *) We are sending the content-type correctly now.
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poettering [Ryan Bloom and Will Rowe]
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poettering
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poettering *) APR on FreeBSD: Fix a bug in apr_sendfile() which caused us to report
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poettering a bogus bytes-sent value when the only thing being sent was trailers
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poettering and writev() returned an error (or EAGAIN). [Jeff Trawick]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Get SINGLE_LISTEN_UNSERIALIZED_ACCEPT working again. This uses the
80caea6cc72ebd311a311b1527cc6b87201c13bfLennart Poettering hints file to determine which platforms define
ab9716c2489f9141ed13ec22dbb216b3e6fbd6b5Lennart Poettering SINGLE_LISTEN_UNSERIALIZED_ACCEPT.
df98a87ba389bdfc0359beedf47557411f3af434Lennart Poettering [Ryan Bloom]
df98a87ba389bdfc0359beedf47557411f3af434Lennart Poettering
df98a87ba389bdfc0359beedf47557411f3af434Lennart Poettering *) APR: add apr_get_home_directory() [Jeff Trawick]
df98a87ba389bdfc0359beedf47557411f3af434Lennart Poettering
bee7e928990fd8a0c5909c2022a2b9eede557c81Lennart Poettering *) Initial import of 1.3-current mod_proxy. [Chuck Murcko]
2ecfc64e59b5e4e96bed6f68bd36b612ef77a146Lennart Poettering
6a8b5fa4635ed858788fb10099ec9b62b3359a0aLennart Poettering *) Not all platforms have INADDR_NONE defined by default. Apache
69727e6dc69ae5d9b5ae3681723778a3faa354e9Lennart Poettering used to make this check and define INADDR_NONE if appropriate,
0f3e07b7cc535af3c4ea56c3b28c140c1771fa6aLennart Poettering but APR needs the check too, and I suspect other applications will
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering as well. APR now defines APR_INADDR_NONE, which is always a valid
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering value on all platforms.
12179984a38fe74581333fbcdc11c822d81f505fLennart Poettering [Branko �ibej <brane@xbc.nu>]
eb01ba5de14859d7a94835ab9299de40132d549aLennart Poettering
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poettering *) Destroy the pthread mutex in lock_intra_cleanup() for PR#6824.
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poettering [Shuichi Kitaguchi <ki@hh.iij4u.or.jp>]
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poettering
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poettering *) Relax the syntax checking of Host: headers in order to support
69af45035913e7119cffd94c542bd3039600e45dZbigniew Jędrzejewski-Szmek iDNS. PR#6635 [Tony Finch]
e8a7a315391a6a07897122725cd707f4e9ce63d7Lennart Poettering
461bd8e47cafacfcd38389e7558330bfb6e902adLennart Poettering *) When reading from file buckets we convert to an MMAP if it makes
461bd8e47cafacfcd38389e7558330bfb6e902adLennart Poettering sense. This also simplifies the default handler because the
461bd8e47cafacfcd38389e7558330bfb6e902adLennart Poettering default handler no longer needs to try to create MMAPs.
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering [Ryan Bloom]
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering *) BUFF has been removed from the main server. The BUFF code will remain
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poettering in the code until it has been purged from the proxy module as well.
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering [Ryan Bloom]
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering *) Byteranges have been completely re-written to be a filter. This
b454b11220e87add6d0f011695c7912b009c853dLennart Poettering has been tested, and I believe it is working correctly, but it could
06db8540cdfc8259423ed90e7352dbc1d71eccd9Lennart Poettering doesn't work for the Adobe Acrobat plug-in. The output almost matches
06db8540cdfc8259423ed90e7352dbc1d71eccd9Lennart Poettering the output from 1.3, the only difference being that 1.3 includes
4ff49cb63075aba646b578f2516b37a8dfd5a65bLennart Poettering a content-length in the response, and this does not.
4ff49cb63075aba646b578f2516b37a8dfd5a65bLennart Poettering [Ryan Bloom]
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmek
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmek *) APR read/write functions and bucket read functions now operate
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmek on unsigned integers, instead of signed ones. It doesn't make
b8b4d3dddc7611dce3bf28004b0375d661120c62Lennart Poettering any sense to use signed ints, because we return the error codes,
b8b4d3dddc7611dce3bf28004b0375d661120c62Lennart Poettering so if we have an error we should report 0 bytes read or written.
b8b4d3dddc7611dce3bf28004b0375d661120c62Lennart Poettering [Ryan Bloom]
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poettering
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poettering *) Always compute the content length, whether it is sent or not.
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poettering The reason for this, is that it allows us to correctly report
3df82d5a8cdc510f518fd5e234ccb3233b748719Lennart Poettering the bytes_sent when logging the request. This also simplifies
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering content-length filter a bit, and fixes the actual byte-reporing
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering code in mod_log_config.c
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering [Ryan Bloom]
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart Poettering *) Remove AP_END_OF_BRIGADE definition. This does not signify what
eece8c6fb5f4d354dcef6fd369e876c4f3a3f163Lennart Poettering it says, because it was only used by EOS and FLUSH buckets. Since
eece8c6fb5f4d354dcef6fd369e876c4f3a3f163Lennart Poettering neither of those are required at the end of a brigade, this was
eece8c6fb5f4d354dcef6fd369e876c4f3a3f163Lennart Poettering really signifying FLUSH_THE_DATA, but that can be determined better
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poettering by checking AP_BUCKET_IS_EOS() or AP_BUCKET_IS_FLUSH. EOS and FLUSH
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poettering buckets now return a length of 0, which is actually the amount of data
09f727eebd87661f263d3c2c1e0de7b7771acd40Lennart Poettering read, so they make more sense.
09f727eebd87661f263d3c2c1e0de7b7771acd40Lennart Poettering [Ryan Bloom]
09f727eebd87661f263d3c2c1e0de7b7771acd40Lennart Poettering
c144692179098c1861f2aeafc67689a74439cf4cLennart Poettering *) Allow the core_output_filter to save some data past the end of a
c144692179098c1861f2aeafc67689a74439cf4cLennart Poettering request. If we get an EOS bucket, we only send the data if it
c144692179098c1861f2aeafc67689a74439cf4cLennart Poettering makes sense to send it. This allows us to pipeline request
c144692179098c1861f2aeafc67689a74439cf4cLennart Poettering responses. As a part of this, we also need to allocate mmap
795607b22308f5b92073b012e43be1892fdd97c0Lennart Poettering buckets out of the connection pool, not the request pool. This
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering allows the mmap to outlive the request.
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering [Ryan Bloom]
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering *) Make blocking and non-blocking bucket reads work correctly for
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poettering sockets and pipes. These are the only bucket types that should
e5ec62c56963d997edaffa904af5dc45dac23988Lennart Poettering have non-blocking reads, because the other bucket types should
54c31a79f72ff57ac8eba089acacc4ab482b745dLennart Poettering ALWAYS be able to return something immediately.
826872b61e4857dfffe63ba84e2b005623baecd6Lennart Poettering [Ryan Bloom]
826872b61e4857dfffe63ba84e2b005623baecd6Lennart Poettering
54c31a79f72ff57ac8eba089acacc4ab482b745dLennart Poettering *) In the Apache/Win32 console window, accept Ctrl+C to stop the
826872b61e4857dfffe63ba84e2b005623baecd6Lennart Poettering server, but use Ctrl+Break to initiate a graceful restart
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering instead of duplicating behavior. [John Sterling]
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering *) Patch mod_autoindex to set the Last-Modified header based on
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering the directory's mtime, and add the ETag header. [William Rowe]
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering *) Merge the 1.3 patch to add support for logging query string in
cbb7712189527f9f483321607e44c4ead3dd11b8Lennart Poettering such a way that "%m %U%q %H" is the same as "%r".
cbb7712189527f9f483321607e44c4ead3dd11b8Lennart Poettering [Bill Stoddard]
d01a73b6396f57792113c1b5df6e8492fc703e5eLennart Poettering
d01a73b6396f57792113c1b5df6e8492fc703e5eLennart Poettering *) Port three log methods from mod_log_config 1.3 to 2.0:
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poettering CLF compliant '-' byte count, method and protocol.
490b7e47093d491a2bdb1084fe92b796f4e07eefLennart Poettering [Bill Stoddard]
81d112a8f0522a09fcfe317f420363a2b728137cLennart Poettering
490b7e47093d491a2bdb1084fe92b796f4e07eefLennart Poettering *) Add a new LogFormat directive, %c, that will log connection
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering status at the end of the response as follows:
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering 'X' - connection aborted before the response completed.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering '+' - connection may be kept-alive by the server.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering '-' - connection will be closed by the server.
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sievers [Bill Stoddard]
e41814846c19a48f4490169d82e359e005c4db45Lennart Poettering
c0fe5db522b52f27e030655ce2c03e05cbbc1558Kay Sievers *) Expand APR for WinNT to fully accept and return utf-8 encoded
e9fd44b728ff1fc0d1f24fccb87a767f6865df27Lennart Poettering Unicode file names and paths for Win32, and tag the Content-Type
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering from mod_autoindex to reflect that charset if the the feature
e9fd44b728ff1fc0d1f24fccb87a767f6865df27Lennart Poettering macro APR_HAS_UNICODE_FS is true. [William Rowe]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Compute the content length (and add appropriate header field) for
3040728b6691ea2e9df3a2060e2d49a792bbaedaLennart Poettering the response when no content length is available and we can't use
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering chunked encoding. [Jeff Trawick]
8ed206517c2be381324ac5832bf34cc14024270eLennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Changed ap_discard_request_body() to use REQUEST_CHUNKED_DECHUNK,
e6c6e7afffa80ad74efdb1ddfa815294624f1608Lennart Poettering so that content input filters get dechunked data when using
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering the default handler. Also removed REQUEST_CHUNKED_PASS.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Sascha Schumann]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Add mod_ext_filter as an experimental module. This module allows
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering the administrator to use external programs as filters. Currently,
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering only filtering of output is supported. [Jeff Trawick]
e5ec62c56963d997edaffa904af5dc45dac23988Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Most Apache functions work on EBCDIC machines again, as protocol
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering data is now translated (again). [Jeff Trawick]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering the EBCDIC support. They are noops on ASCII machines, so this
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering type of translation doesn't have to be surrounded by #ifdef
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering CHARSET_EBCDIC. [Jeff Trawick]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering *) Fix mod_include. tag commands work again, and the server will
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering send the FAQ again. This also allows mod_include to set aside
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering buckets that include partial buckets.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom and David Reid]
c06bf414042cd1bf94e0af63e9e2a0c291bfc546Kay Sievers
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Add suexec support back. [Manoj Kasichainula]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Lingering close now uses the socket directly instead of using
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering BUFF. This has been tested, but since all we can tell is that it
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering doesn't fail, this needs to be really hacked on.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Allow filters to modify headers and have those headers be sent to
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering the client. The idea is that we have an http_header filter that
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering actually sends the headers to the network. This removes the need
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering for the BUFF to send headers.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
f47ec8ebb3858553dec870e1c596e39525f46360Lennart Poettering *) Charset translation: mod_charset_lite handles translation of
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering request bodies. Get rid of the xlate version of ap_md5_digest()
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering since we don't compute digests of filtered (e.g., translated)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering response bodies this way anymore. (Note that we don't do it at
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering all at the present; somebody needs to write a filter to do so.)
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Jeff Trawick]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Input filters and ap_get_brigade() now have a input mode parameter
f47ec8ebb3858553dec870e1c596e39525f46360Lennart Poettering (blocking, non-blocking, peek) instead of a length parameter.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [hackathon]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Update the mime.types file to the registered media types as
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering of 2000-10-19. PR#6613 [Carsten Klapp <carsten.klapp@home.net>,
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering Tony Finch]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
601d9d6fb394a780765e80581daab850623e9698Josh Triplett *) Namespace protect some macros declared in ap_config.h
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Ryan Bloom]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Support HTTP header line folding with input filtering.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Greg Ames]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Mod_include works again. This should still be re-written, but at
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering least now we can serve an SHTML page again.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Ryan Bloom]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Begin to remove BUFF from the core. Currently, we keep a pointer
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering to both the BUFF and the socket in the conn_rec. Functions that
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering want to use the BUFF can, functions that want to use the socket,
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering can. They point to the same place.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom]
8b8f259170e35b93e6c6d1757cb8b835bbdaa40cZbigniew Jędrzejewski-Szmek
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) apr_psprintf doesn't understand %lld as a format. Make it %ld.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Tomas "�gren" <stric@ing.umu.se>]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) APR pipes on Unix and Win32 are now cleaned up automatically when the
eb124a97fb72d076014253b1acde69d428f15ecfLennart Poettering associated pool goes away. (APR pipes on OS/2 were already had this
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering logic.) This resolvs a fatal file descriptor leak with CGIs.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Jeff Trawick]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) The final line of the config file was not being read if there was
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering no \n at the end of it. This was caused by apr_fgets returning
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering APR_EOF even though we had read valid data. This is solved by
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering making cfg_getline check the buff that was returned from apr_fgets.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering If apr_fgets return APR_EOF, but there was data in the buf, then we
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering return the buf, otherwise we return NULL.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Piped logs work again in the 2.0 series.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Restore functionality broken by the mod_rewrite security fix:
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering rewrite map lookup keys and default values are now expanded
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering so that the lookup can depend on the requested URI etc.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering PR #6671 [Tony Finch]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Tighten up the syntax checking of Host: headers to fix a
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering security bug in some mass virtual hosting configurations
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering that can allow a remote attacker to retrieve some files
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering on the system that should be inaccessible. [Tony Finch]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Add a pool bucket type. This bucket is used for data allocated out
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering of a pool. If the pool is cleaned before the bucket is destroyed, then
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering the data is converted to a heap bucket, allowing it to survive the
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering death of the pool.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering [Ryan Bloom]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering *) Add a flush bucket. This allows modules to signal that the filters
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering should all flush whatever data they currently have. There is no way
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering to actually force them to do this, so if a filter ignores this bucket,
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering that's life, but at least we can try with this.
8b04b925e587ff56568c62ff5ad3f2ea2b34ca7aLennart Poettering [Ryan Bloom]
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poettering *) Add an output filter for sub-requests. This filter just strips the
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering EOS bucket so that we don't confuse the main request's core output
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering filter by sending multiple EOS buckets. This change also makes sub
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering requests start to send EOS buckets when they are finished.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom]
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Make ap_bucket_(read|destroy|split|setaside) into macros. Also
eb124a97fb72d076014253b1acde69d428f15ecfLennart Poettering makes ap_bucket_destroy a return void, which is okay because it
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering used to always return APR_SUCCESS, and nobody ever checked its
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering return value anyway.
90e071d1d59be05fcba66561439c3ca67c80ee20Lennart Poettering [Cliff Woolley <cliffwoolley@yahoo.com>]
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sievers
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sievers *) Remove the index into the bucket-type table from the buckets
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sievers structure. This has now been replaced with a pointer to the
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sievers bucket_type. Also add some macros to test the bucket-type.
f6113d42d015ad9f3a9e702a09eb8006511a4424Kay Sievers [Ryan Bloom]
f6113d42d015ad9f3a9e702a09eb8006511a4424Kay Sievers
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sievers *) Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
7a43e910ce00eef22fd42925ae4c85cbea1b1320Kay Sievers for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sievers and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
c55b1b59b837dfd924b704d457ed77c55f8bfeabLennart Poettering All _VAR_ flavors changes to _DATA to be absolutely clear.
e707c49485b8f4f2ec040d3da232d39153e650b9Lennart Poettering [William Rowe]
e707c49485b8f4f2ec040d3da232d39153e650b9Lennart Poettering
e707c49485b8f4f2ec040d3da232d39153e650b9Lennart Poettering *) Add support for /, //, //servername and //server/sharename
7f8732835295fce29479b1afc9e8ee801852db09Lennart Poettering parsing of <Directory> blocks under Win32 and OS2.
7f8732835295fce29479b1afc9e8ee801852db09Lennart Poettering [Tim Costello, William Rowe, Brian Harvard]
7f8732835295fce29479b1afc9e8ee801852db09Lennart Poettering
e707c49485b8f4f2ec040d3da232d39153e650b9Lennart Poettering *) Remove the function pointers from the ap_bucket type. They have been
a19554ed92a7460b4e709cc40c558cde827ab85bLennart Poettering replaced with a global table. Modules are allowed to register bucket
a19554ed92a7460b4e709cc40c558cde827ab85bLennart Poettering types and use then use those buckets.
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart Poettering [Ryan Bloom]
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart Poettering
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart Poettering *) mod_cgid: In the handler, shut down the Unix socket (only for write)
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart Poettering once we finish writing the request body to the cgi child process;
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart Poettering otherwise, the client doesn't hit EOF on stdin. Small request bodies
603cd8fe07cb03e8b11722d1a732e569e5a46347Lennart Poettering worked without this change (for reasons I don't understand), but large
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering ones didn't. [Jeff Trawick]
6d0274f11547a0f11200bb82bf598a5a253e12cfLennart Poettering
a7a3f28be404875eff20443a0fa8088bcc4c18dfLennart Poettering *) Remove file bucket specific information from the ap_bucket type.
a7a3f28be404875eff20443a0fa8088bcc4c18dfLennart Poettering This has been moved to a file_bucket specific type that hangs off
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering the data pointer in the ap_bucket type.
08f9588885c5d65694b324846b0ed19211d2c178Lennart Poettering [Ryan Bloom]
7d8197d1f25c1291855bb6cffc705444978c6d8dKay Sievers
7d8197d1f25c1291855bb6cffc705444978c6d8dKay Sievers *) Input filtering now has a third argument. This is the amount of data
7d8197d1f25c1291855bb6cffc705444978c6d8dKay Sievers to read from lower filters. This argument can be -1, 0, or a positive
7d8197d1f25c1291855bb6cffc705444978c6d8dKay Sievers number. -1 means give me all the data you have, I'll deal with it and
7d8197d1f25c1291855bb6cffc705444978c6d8dKay Sievers let you know if I need more. 0 means give me one line and one line
7d8197d1f25c1291855bb6cffc705444978c6d8dKay Sievers only. A positive number means I want no more than this much data.
7d8197d1f25c1291855bb6cffc705444978c6d8dKay Sievers
9ee58bddeb6eb044753167e0047fe836479ca5dbKay Sievers Currently, only 0 and a positive number are implemented. This allows
9ee58bddeb6eb044753167e0047fe836479ca5dbKay Sievers us to remove the remaining field from the conn_rec structure, which
dcfc4b2e5c1af6375488c00bdc6fb8122f86c4d7Lennart Poettering has also been done.
71ef24d09573874c0f7bc323c07c3aec2a458707Lennart Poettering [Ryan Bloom]
71ef24d09573874c0f7bc323c07c3aec2a458707Lennart Poettering
1b89884ba31cbe98f159ce2c7d6fac5f6a57698fLennart Poettering *) Big cleanup of the input filtering. The goal is that http_filter
1b89884ba31cbe98f159ce2c7d6fac5f6a57698fLennart Poettering understands two conditions, headers and body. It knows where it is
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering based on c->remaining. If c->remaining is 0, then we are in headers,
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering and http_filter returns a line at a time. If it is not 0, then we are
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering in body, and http_filter returns raw data, but only up to c->remaining
9e281251e99bbbbcb0366575b5195c36fc9483d7Lennart Poettering bytes. It can return less, but never more.
9cb74bcb23dde8488459ca233bf9caee642b8402Zbigniew Jędrzejewski-Szmek [Greg Ames, Ryan Bloom, Jeff Trawick]
a56b63f41dc779a86573ae77814c14c1db156398Lennart Poettering
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart Poettering *) mod_cgi: Write all of the request body to the child, not just what
474cba1c7d5d04a3909499040dbe66959af59bd2Tom Gundersen the kernel would accept on the first write. [Jeff Trawick]
474cba1c7d5d04a3909499040dbe66959af59bd2Tom Gundersen
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering *) Back out the change that moved the brigade from the core_output_filters
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering ctx to the conn_rec. Since all requests over a given connection
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering go through the same core_output_filter, the ctx pointer has the
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering correct lifetime.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering [Ryan Bloom]
5f1dac6bf605871615b35891a3966fa474db5b20Lennart Poettering
f801968466fed39d50d410b30ac828c26722cc95Lennart Poettering *) Fix another bug in the send_the_file() read/write loop. A partial
424a19f8a2061c6b058283228734010b2fa24db4Lennart Poettering send by apr_send would cause unsent data in the read buffer to
41f9172f427bdbb8221c64029f78364b8dd4e527Lennart Poettering get clobbered. Complete making send_the_file handle partial
424a19f8a2061c6b058283228734010b2fa24db4Lennart Poettering writes to the network.
424a19f8a2061c6b058283228734010b2fa24db4Lennart Poettering [Bill Stoddard]
424a19f8a2061c6b058283228734010b2fa24db4Lennart Poettering
a1cccad1fe88ddd6943e18af97cf7f466296970fLennart Poettering *) Fix a couple of type fixes to allow compilation on AIX again
a1cccad1fe88ddd6943e18af97cf7f466296970fLennart Poettering [Victor J. Orlikowski <v.j.orlikowski@gte.net>]
8556879e0d14925ce897875c6c264368e2d048c2Lennart Poettering
d05c556b6b2a680ec8b51ecbbc99a9ab14c28eedZbigniew Jędrzejewski-Szmek *) Fix bug in send_the_file() which causes offset to be ignored
8556879e0d14925ce897875c6c264368e2d048c2Lennart Poettering if there are no headers to send.
8556879e0d14925ce897875c6c264368e2d048c2Lennart Poettering [Bill Stoddard]
8556879e0d14925ce897875c6c264368e2d048c2Lennart Poettering
4a30847b9d71e0381948d68279c8f775b9de7850Lennart Poettering *) Handle APR_ENOTIMPL returned from apr_sendfile in the core
4a30847b9d71e0381948d68279c8f775b9de7850Lennart Poettering filter. Useful for supporting Windows 9* with a binary
5e8b28838e493b59628322b69580097ef7dd9384Lennart Poettering compiled on Windows NT.
5e8b28838e493b59628322b69580097ef7dd9384Lennart Poettering [Bill Stoddard]
d87be9b0af81a6e07d4fb3028e45c4409100dc26Lennart Poettering
d87be9b0af81a6e07d4fb3028e45c4409100dc26Lennart PoetteringChanges with Apache 2.0a7
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poettering
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poettering *) Reimplement core_output_filter to buffer/save bucket brigades
d8b78264a5245307babbf5af8e39d6d4a1ae095fLennart Poettering across multiple calls to the core_filter. The brigade will be
d8b78264a5245307babbf5af8e39d6d4a1ae095fLennart Poettering sent when either MIN_BYTES_TO_SEND or MAX_IOVEC_TO_WRITE
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poettering thresholds are hit or the EOS bucket is received.
0790b9fed42eefc4e22dbbe2337cba9713b7848cLennart Poettering [Bill Stoddard]
5a7e959984788cf89719dec31999409b63bb802bLennart Poettering
5a7e959984788cf89719dec31999409b63bb802bLennart Poettering *) Create experimental filter (buffer_filter) that coalesces bytes
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poettering into one large buffer before invoking the next filter in the
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poettering chain. This filter is particularly useful with the current
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poettering implementation of mod_autoindex when it inserted above the
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poettering chunk_filter. mod_autoindex generates a lot of brigades that
edca2e2348b314e2d892fe6f8ae276fdc223f014Thomas Hindoe Paaboel Andersen containing buckets holding just a few bytes each. The
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poettering buffer_filter coalesces these buckets into a single large bucket.
0790b9fed42eefc4e22dbbe2337cba9713b7848cLennart Poettering [Bill Stoddard]
fd4d89b2c0b31da01d134301e30916931ae3c7d9Lennart Poettering
fd4d89b2c0b31da01d134301e30916931ae3c7d9Lennart Poettering *) Add apr_sendfile() support into the core_output_filter.
8230e26dc954a40d8c9dbc8ddd9376117021f9d2Lennart Poettering [Bill Stoddard]
8230e26dc954a40d8c9dbc8ddd9376117021f9d2Lennart Poettering
4d9909c93e9c58789c71b34555a1908307c6849eLennart Poettering *) Add apr_sendv() support into the core_output_filter.
4d9909c93e9c58789c71b34555a1908307c6849eLennart Poettering [Bill Stoddard]
47ae7201b1df43bd3da83a19e38483b0e5694c99Lennart Poettering
47ae7201b1df43bd3da83a19e38483b0e5694c99Lennart Poettering *) Fix mod_log_config so that it compiles cleanly with BUFFERED_LOGS
88a6c5894c9d3f85d63b87b040c130366b4006ceKay Sievers [Mike Abbott <mja@sgi.com>]
8351ceaea9480d9c2979aa2ff0f4982cfdfef58dLennart Poettering
9946996cda11a18b44d82344676e5a0e96339408Lennart Poettering *) Remove ap_send_fb. This is no longer used in Apache, and it doesn't
9946996cda11a18b44d82344676e5a0e96339408Lennart Poettering make much sense, because Apache uses buckets instead of BUFFs now.
9946996cda11a18b44d82344676e5a0e96339408Lennart Poettering [Ryan Bloom]
3471bedc005fab03f40b99bf6599645330adcd9eLennart Poettering
3471bedc005fab03f40b99bf6599645330adcd9eLennart Poettering *) send_the_file now falls back to a read/write loop on platforms that
59cea26a349cfa8db906b520dac72563dd773ff2Lennart Poettering do not have sendfile.
35eb6b124ebdf82bd77aad6e44962a9a039c4d33Lennart Poettering [Ryan Bloom and Brian Havard]
5b40d33761376354116a8cddb9b9fbdb6c4727d6Lennart Poettering
5b40d33761376354116a8cddb9b9fbdb6c4727d6Lennart Poettering *) Install apachectl correctly, and substitute the proper values so
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers that it works again. [Ryan Bloom]
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers *) Better(??) handle platforms that lack sendfile().
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers [Jim Jagielski]
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers *) APR now has UUID generation/formatting/parsing support.
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers [Greg Stein]
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers *) Begin the http_filter. This is an input filter that understands
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers the absolute basic amount required to parse an HTTP Request. The
465349c06d994dd2cc6b6fc4109ac0b9952d500aLennart Poettering goal is to be able to split headers from request body before passing
e01a15b71e18bf2008aec7e75041ffa42eb80b80Kay Sievers the data back to the other filters.
a888b352eb53b07daa24fa859ceeb254336b293dLennart Poettering [Ryan Bloom]
abd55b16547d0bb0ed1c31e72e16838f0f59f48bKay Sievers
3f60bcb5e69846fe8a3156ca1c9a7e0813ac158aKay Sievers *) Bring forward from 1.3.13 the config directory implementation
abd55b16547d0bb0ed1c31e72e16838f0f59f48bKay Sievers [Jim Jagielski]
abd55b16547d0bb0ed1c31e72e16838f0f59f48bKay Sievers
abd55b16547d0bb0ed1c31e72e16838f0f59f48bKay Sievers *) install apxs if it is created
e8d842a0d0b39f298e1e7f70d29759e50b2b16d4Tom Gundersen [Ryan Bloom]
b8217b7bd5fd171916a095b150fad4c3a37f5a41Kay Sievers
169c4f65131fbc7bcb51e7d5487a715cdcd0e0ebLennart Poettering *) Added APR_IS_STATUS_condition test macros to eliminate canonical error
169c4f65131fbc7bcb51e7d5487a715cdcd0e0ebLennart Poettering conversions. [William Rowe]
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering *) Now that we have ap_add_input_filter(), rename ap_add_filter() to
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poettering ap_add_output_filter(). [Jeff Trawick]
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poettering
7f110ff9b8828b477e87de7b28c708cf69a3d008Lennart Poettering *) Multiple build and configuration fixes
7f110ff9b8828b477e87de7b28c708cf69a3d008Lennart Poettering Build process:
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering -add datadir and localstatedir substitutions
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering -fix layout name
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering -fix logfilename misspelling
87a8baa35d6d65ac3b58ae8e26e338e67f8ae8edLennart Poettering -fix evaluation of installation dir variables and
87a8baa35d6d65ac3b58ae8e26e338e67f8ae8edLennart Poettering -replace $foobar by $(foobar) to be usefull in the makefile
87a8baa35d6d65ac3b58ae8e26e338e67f8ae8edLennart Poettering
87a8baa35d6d65ac3b58ae8e26e338e67f8ae8edLennart Poettering Cross compile:
65c0cf7108ae3537a357c74b4586a783baba82f9Lennart Poettering
65c0cf7108ae3537a357c74b4586a783baba82f9Lennart Poettering -add rules for cross-compiling in rules.mk. Okay, rule to check for
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers $CC_FOR_BUILD is still missing
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers -use CHECK_TOOL instead of CHECK_PROG for ranlib
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers -add missing "AR=@AR@" to severaly Makefile.in's
ad740100d108282d0244d5739d4dcc86fe4c5fdeLennart Poettering -cache result for "struct rlimit"
ad740100d108282d0244d5739d4dcc86fe4c5fdeLennart Poettering -compile all helper programs with native and cross compiler
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering and use the native version to generate header file
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering ["R�diger" Kuhlmann <Tadu@gmx.de>]
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering
7d441ddb5ca090b5a97f58ac4b4d97b3e84fa81eLennart Poettering *) Prepare our autoconf setup for autoconf 2.14a and for cross-
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering compiling.
14e639ae7a1dbf156273ce697d30fbc6c6594209Lennart Poettering ["R�diger" Kuhlmann <Tadu@gmx.de>]
7f8aa67131cfc03ddcbd31c0420754864fc122f0Lennart Poettering
ff01d048b4c1455241c894cf7982662c9d28fd34Lennart Poettering *) Fix a bug where a client which only sends \n to delimit header
d3c7d7dd77b2b72315164b672462825cef6c0f9aKay Sievers lines (netcat) gets a strange looking HTTP_NOT_IMPLEMENTED
72b9ed828bd22f3ddd74b6853c183eebf006d6d8Lennart Poettering message. Start working on ebcdic co-existance with input
1d6702e8d3877c0bebf3ac817dc45ff72f5ecfa9Lennart Poettering filtering.
1d6702e8d3877c0bebf3ac817dc45ff72f5ecfa9Lennart Poettering [William Rowe, Greg Ames]
1d6702e8d3877c0bebf3ac817dc45ff72f5ecfa9Lennart Poettering
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering *) If mod_so is enabled in the server always create libexec, even
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering if there are no modules installed in this directory. This is a
1258097cd3cdbc5dd3d264850119e553a29c5068Lennart Poettering requirement for APXS to work correctly.
1258097cd3cdbc5dd3d264850119e553a29c5068Lennart Poettering [Ryan Bloom]
1258097cd3cdbc5dd3d264850119e553a29c5068Lennart Poettering
a4c279f87451186b8beb1b8cc21c7cad561ecf4bLennart Poettering *) Connection oriented output filters are now stored in the
a4c279f87451186b8beb1b8cc21c7cad561ecf4bLennart Poettering conn_rec instead of the request_rec. This allows us to add the
7c697168102cb64c5cb65a542959684014da99c7Lennart Poettering output filter in the pre-connection phase instead of the
253ee27a0c7a410d27d490bb79ea97caed6a2b68Lennart Poettering post_read_request phase, which keeps us from trying to write an
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering error page before we have a filter to write to the network.
8d0e38a2b966799af884e78a54fd6a2dffa44788Lennart Poettering [Ryan Bloom, Jeff Trawick, and Greg Ames]
f28f1daf754a9a07de90e6fc4ada581bf5de677dLennart Poettering
f28f1daf754a9a07de90e6fc4ada581bf5de677dLennart Poettering *) Cleaning up an mmap bucket no longer deletes the mmap. An
f28f1daf754a9a07de90e6fc4ada581bf5de677dLennart Poettering mmap can be used across multiple buckets (default_handler with
f28f1daf754a9a07de90e6fc4ada581bf5de677dLennart Poettering byte ranges, mod_file_cache, mod_mmap_static), so cleanup of
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering the mmap itself can't be associated with the bucket.
a012ab5293a28af93454b3105ca85ca148b1c11fDave Reisner [Jeff Trawick]
88a07670cfa974a605c7c7b520b8a3135fce37f9Lennart Poettering
88a07670cfa974a605c7c7b520b8a3135fce37f9Lennart Poettering *) Add .dll caching directive ISAPICacheFile to mod_isapi.
88a07670cfa974a605c7c7b520b8a3135fce37f9Lennart Poettering [William Rowe]
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering
916abb21d0a6653e0187b91591e492026886b0a4Lennart Poettering *) Radical surgery to improve mod_isapi support under Win32.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering Includes a number of newer ServerSupportFunction calls, support
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering for ReadClient (in order to retrieve POSTs greater than 48KB),
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering and general bug fixes to more reliably load ISAPI .dll's and
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering prevent leaking handle resources. Note: There are still
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering discrepancies between IIS's and Apache's ServerVariables, and
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering async calls are still not supported. Additional warnings are
b23de6af893c11da4286bc416455cd0926d1532eLennart Poettering logged to facilitate debugging of unsupported ISAPI calls.
21bdae12e11ae20460715475d8a0c991f15464acLennart Poettering [William Rowe]
21bdae12e11ae20460715475d8a0c991f15464acLennart Poettering
9534ce54858c67363b841cdbdc315140437bfdb4Lennart Poettering *) Add input filtering to Apache. The basic idea for the input
9534ce54858c67363b841cdbdc315140437bfdb4Lennart Poettering filters is the same as the ideas for output filters. The biggest
68c7d001f4117f0c3d0a4582e32cbb03ae5fac57Lennart Poettering difference is that instead of calling ap_pass_brigade, ap_get_brigade
796b06c21b62d13c9021e2fbd9c58a5c6edb2764Kay Sievers should be called, and the order of execution for the filter itself is
68c7d001f4117f0c3d0a4582e32cbb03ae5fac57Lennart Poettering different. When writing an output filter, a brigade is passed in,
68c7d001f4117f0c3d0a4582e32cbb03ae5fac57Lennart Poettering and filters operate directly on that brigade, when done, they call
7a2a0b907b5cc60f5d9a871997d7d6e7f62bf4d8Lennart Poettering ap_pass_brigade. Input filters are the exact opposite. Because input
253ee27a0c7a410d27d490bb79ea97caed6a2b68Lennart Poettering is not a push operation, filters first call ap_get_brigade. When this
5d0fcd7c8d29340ac9425c309e8ac436a9af699cLennart Poettering function returns, the input filter will be left with a valid brigade.
5d0fcd7c8d29340ac9425c309e8ac436a9af699cLennart Poettering The input filter should then operate on the brigade, and return.
8bbabc447b1d913bd21faf97c7b17d20d315d2b4Lennart Poettering [Ryan Bloom]
f530371f1f85a070d7d0fb5112146a43533ae00bLennart Poettering
e707c49485b8f4f2ec040d3da232d39153e650b9Lennart Poettering *) Fix building on BSD/OS using its native make. The build system
a19554ed92a7460b4e709cc40c558cde827ab85bLennart Poettering falls back to the BSD .include directive on that host platform.
a73d88fa024b5668ed7dde681e99547d41e6a864Lennart Poettering [Sascha Schumann]
a74a8793b04de9886b4f6987b9cb86fa02c73520Lennart Poettering
3040728b6691ea2e9df3a2060e2d49a792bbaedaLennart Poettering *) Expand dbmmanage to allow -d -m -s -p options for Crypt, MD5,
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering SHA1 and plaintext password encodings. Make feature tests a
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering bit more flexible. [William Rowe]
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering *) Charset translation: mod_charset_lite handles output content
3679d1126bae52e02f6cd60fca196f616b9e660dLennart Poettering translation in a filter. mod_charset_lite no longer ignores
73090dc815390f4fca4e3ed8a7e1d3806605daaaLennart Poettering subrequests. A bunch of cruft related to BUFF's support for
44143309dd0b37d61d7d842ca58f01a65646ec71Kay Sievers translating request and response bodies was removed.
3d57c6ab801f4437f12948e29589e3d00c3ad9dbLennart Poettering [Jeff Trawick]
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering
3f7a8c4e9f1d3ce48919e24eb2c9d56dd6fd88d8Kay Sievers *) Move the addition of the CORE filter to the post_read_request
260abb780a135e4cae8c10715c7e85675efc345aLennart Poettering hook in http_core.c. This removes the need to add the filter in
2791a8f8dc8764a9247cdba3562bd4c04010f144Lennart Poettering multiple places and allows for an SSL module to be added much
a8f11321c209830a35edd0357e8def5d4437d854Lennart Poettering simpler. [Ryan Bloom]
a8f11321c209830a35edd0357e8def5d4437d854Lennart Poettering
21bdae12e11ae20460715475d8a0c991f15464acLennart Poettering *) Fix a security problem that affects certain configurations of
21bdae12e11ae20460715475d8a0c991f15464acLennart Poettering mod_rewrite. If the result of a RewriteRule is a filename that
c32e0c40f7e706e3ebcd101187d5ced96f083491Lennart Poettering contains expansion specifiers, especially regexp backreferences
c32e0c40f7e706e3ebcd101187d5ced96f083491Lennart Poettering $0..$9 and %0..%9, then it may be possible for an attacker to
Error!

 

There was an error!

null

java.lang.NullPointerException