STATUS revision afbd720d176856630fed7c6576cdd3ae25a407ed
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederAPACHE 2.1 STATUS: -*-text-*-
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederLast modified at [$Date: 2002/12/03 18:26:44 $]
a480b70e29a3ed7e77b89e410fd7bbab3e5a7e67Christian Maeder
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian MaederRelease [NOTE that only Alpha/Beta releases occur in 2.1 development]:
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder 2.1.0 : in development
3f69b6948966979163bdfe8331c38833d5d90ecdChristian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederPlease consult the following STATUS files for information
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maederon related projects:
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder
a480b70e29a3ed7e77b89e410fd7bbab3e5a7e67Christian Maeder * srclib/apr/STATUS
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * srclib/apr-util/STATUS
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * docs/STATUS
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederContributors looking for a mission:
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder
8adae8b1eb0dd8562f0d1541b9ecb2fd80bda7e7Christian Maeder * just do an egrep on "TODO" or "XXX" and see what's there
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederCURRENT RELEASE NOTES:
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederRELEASE SHOWSTOPPERS:
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder
e07d9f9e0e04995f2c21b6edc74ef48c6dbe62b1Christian Maeder
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian MaederCURRENT VOTES:
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang
831bfb0c3598d0508b976cd36fa97c65839ed5a3Christian Maeder * httpd-std.conf and friends
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder a) httpd-std.conf should be tailored by install (from src or
2b4130336e941b7d01c78a6da55449a4c6eca609Till Mossakowski binbuild) even if user has existing httpd.conf
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder +1: trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim
9ecf13b5fd914bc7272f1fc17348d7f4a8c77061Christian Maeder wrowe - prefer httpd.default.conf to avoid ambiguity with cvs
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder b) tailored httpd-std.conf should be copied by install to
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder sysconfdir/examples
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder -0: striker
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder c) tailored httpd-std.conf should be installed to
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder sysconfdir/examples or manualdir/exampleconf/
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder +1: slive, trawick, Ken
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder d) Installing a set of default config files when upgrading a server
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder doesn't make ANY sense at all.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder +1: ianh - medium/big sites don't use 'standard config' anyway, as it
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder usually needs major customizations
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder -1: Ken, wrowe, jwoolley, jim
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder wrowe - diff is wonderful when comparing old/new default configs,
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder even for customized sites that ianh mentions
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder jim - ... assuming that the default configs have been updated
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder with the required inline docs to explain the
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder changes
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * If the parent process dies, should the remaining child processes
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder "gracefully" self-terminate. Or maybe we should make it a runtime
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder option, or have a concept of 2 parent processes (one being a
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder "hot spare").
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder Self-destruct: Ken, Martin
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder Not self-destruct: BrianP, Ian, Cliff, BillS
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder /* The below was a concept on *how* to handle the problem */
90c174bac60a72ffd81bc3bf5ae2dd9a61943b8bChristian Maeder Have 2 parents: +1: jim
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder -1: Justin, wrowe, rederpj
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder +0: Martin (while standing by, could it do
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder something useful?)
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * Make the worker MPM the default MPM for threaded Unix boxes.
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder +1: Justin, Ian, Cliff, BillS, striker, wrowe
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder +0: BrianP, Aaron (mutex contention is looking better with the
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder latest code, let's continue tuning and testing), rederpj, jim
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder -0: Lars
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder
03136b84a0c70d877e227444f0875e209506b9e4Christian MaederRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder * There is a bug in how we sort some hooks, at least the pre-config
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder hook. The first time we call the hooks, they are in the correct
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder order, but the second time, we don't sort them correctly. Currently,
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder the modules/http/config.m4 file has been renamed to
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder modules/http/config2.m4 to work around this problem, it should moved
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder back when this is fixed.
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder OtherBill offers that this is a SERIOUS problem. We do not sort
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder correctly by the ordering arguments passed to the register hook
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder functions. This was proven when I reordered the open_logs hook
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder to attempt to open the error logs prior to the access logs. Possibly
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder the entire sorting code needs to be refactored.
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * pipes deadlock on all platforms with limited pipe buffers (e.g. both
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder Linux and Win32, as opposed to only Win32 on 1.3). The right solution
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder is either GStein's proposal for a "CGI Brigade", or OtherBill's proposal
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder for "Poll Buckets" for "Polling Filter Chains". Or maybe both :-)
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * All handlers should always send content down even if r->header_only
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder is set. If not, it means that the HEAD requests don't generate the
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder same headers as a GET which is wrong.
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * HP/UX 10.20: compile breakage in APR. Looks like it should be easy
2b4130336e941b7d01c78a6da55449a4c6eca609Till Mossakowski to fix, probably just some extraneous #include's that are fouling
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder things up.
1f086d5155f47fdad9a0de4e46bbebb2c4b33d30Christian Maeder PR: 9457
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder Jeff: See my reply and patch in the PR (and previous commit to
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder stop using "pipe" as a field name). If patch is committed, we
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder should be okay. I'll wait to see if the user tests the patch.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder Update by Jeff 20020722: I got an account on HP 10.20. It looks
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder like some of the APR thread detection is screwed up. If we find
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder pthread.h but we can't compile the pthread test program we still
2b4130336e941b7d01c78a6da55449a4c6eca609Till Mossakowski think we can use threads. For that reason, the patch I posted
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder to the PR won't work as-is since a failed compile of the test
1f086d5155f47fdad9a0de4e46bbebb2c4b33d30Christian Maeder program means nothing.
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * exec cmd and suexec arg-passing enhancements
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Status: Patches proposed
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder (see the "proc.patch" and "suexec-shell.patch" links in this message)
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * The 2.0.36 worker MPM graceless shutdown changes work but are
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder a bit clunky on some platforms; eg, on Linux, the loop to
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder join each worker thread seems to hang, and the parent ends up
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder killing off the child with SIGKILL. But at least it shuts down.
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * --enable-mods-shared="foo1 foo2" is busted on Darwin. Pier
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * We do not properly substitute the prefix-variables in the configuration
cfef1cb40723f3d5273e460ec391335220b21324Christian Maeder scripts or generated-configs. (i.e. if sysconfdir is etc,
1f086d5155f47fdad9a0de4e46bbebb2c4b33d30Christian Maeder httpd-std.conf points to conf.)
cfef1cb40723f3d5273e460ec391335220b21324Christian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * If any request gets through ap_process_request_internal() and is
cfef1cb40723f3d5273e460ec391335220b21324Christian Maeder scheduled to be served by the core handler, without a flag that this
1f086d5155f47fdad9a0de4e46bbebb2c4b33d30Christian Maeder r->filename was tested by dir/file_walk, we need to 500 at the very
cfef1cb40723f3d5273e460ec391335220b21324Christian Maeder end of the ap_process_request_internal() processing so sub_req-esters
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder know this request cannot be run. This provides authors of older
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder modules better compatibility, while still improving the security and
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder robustness of 2.0.
42c01284bba8d7c8d995c8dfb96ace57d28ed1bcTill Mossakowski
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder Status: still need to decide where this goes, OtherBill comments...
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
42c01284bba8d7c8d995c8dfb96ace57d28ed1bcTill Mossakowski [Deleted comments regarding the ap_run_handler phase, as irrelevant
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder as BillS points out that "common case will be caught in
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski default_handler already (with the r->finfo.filetype == 0 check)"
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder and the issue is detecting this -before- we try to run the req.]
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski gregames says: can this happen somehow without a broken module
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski being involved? If not, why waste cycles trying to defend against
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski potential broken modules? It seems futile.
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang wrowe counters: no, it shouldn't happen unless the module is broken.
8adae8b1eb0dd8562f0d1541b9ecb2fd80bda7e7Christian Maeder But the right answer is to fail the request up-front in dir/file
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder walk if the path was entirely invalid; and we can't do that either
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang UNTIL 2.1 or we break modules that haven't hooked map_to_storage.
8adae8b1eb0dd8562f0d1541b9ecb2fd80bda7e7Christian Maeder
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang how the Perchild MPM should be re-written. It hasn't worked
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang correctly since filters were added because it wasn't possible to
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang get the content that had already been written and the socket at
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder the same time. This mode lets us do that, so the MPM can be
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder fixed.
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * htpasswd blindly processes the file you give it, and does no
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder sanity checking before totally corrupting whatever file it was
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder you thought you had. It should check the input file and bail
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder if it finds non-comment lines that do not contain exactly 1
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder ':' character.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Message-ID: <20020217150457.A31632@clove.org>
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Can a static httpd be built reliably?
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Message-ID: <20020207142751.T31582@clove.org>
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder * [Ken] Test suite failures:
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder o worker is also failing some of the 'cgi' subtests
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder (see <URL:http://Source-Zone.Org/Apache/regression/>):
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder Justin says: "Worker should be fine and passes httpd-test here.
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder I think it's a perl or a httpd-test problem."
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder removed if possible.
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Jeff wonders if we still care about this. It is no longer an
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder API issue but simply an extra trip through the brigade.
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder * The Add...Filter and Set...Filter directives do not allow the
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder administrator to order filters, beyond the order of filename (mime)
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder extensions. It isn't clear if Set...Filter(s) should be inserted
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder before or after the Add...Filter(s) which are ordered by sequence of
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder filename extensions. At minimum, some sort of +-[0-10] syntax seems
c438c79d00fc438f99627e612498744bdc0d0c89Christian Maeder like a nice solution. See ROADMAP.
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang * Get perchild to work on platforms other than Linux. This
c554b3175bf1c2291e4ab2a51a4af3f82a8104d7Christian Maeder will require a portable mechanism to pass data and file/socket
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang descriptors between vhost child groups. An API was proposed
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang on dev@apr:
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang Message-ID: <20020111115006.K1529@clove.org>
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * Try to get libtool inter-library dependency code working on AIX.
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder Justin says: If we get it working on AIX, we can enable this
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder on all platforms and clean up our build system
eca4db63ed0bdbd93b62678feea6e3eb80aa47bbChristian Maeder somewhat.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder Jeff says: I thought I tested a patch for you sometime in
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder January that you were going to commit within a few
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder days.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder * Handling of %2f in URIs. Currently both 1.3 and 2.0
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder completely disallow %2f in the request URI path (see
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder ap_unescape_url() in util.c). It's permitted and passed
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder through in the query string, however. Roy says the
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder original reason for disallowing it, from five years ago,
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder was to protect CGI scripts that applied PATH_INFO to
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder a filesystem location and which might be tricked by
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder ..%2f..%2f(...). We *should* allow path-info of the
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder form 'http://foo.com/index.cgi/path/to/path%2finfo'.
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder Since we've revamped a lot of our processing of path
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder segments, it would be nice to allow this, or at least
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder allow it conditionally with a directive.
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder OtherBill adds that %2f as the SECOND character of a multibyte
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder sequence causes the request to fail! This happens notably in
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder the ja-jis encoding.
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder * FreeBSD, threads, and worker MPM. All seems to work fine
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder if you only have one worker process with many threads. Add
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder a second worker process and the accept lock seems to be
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder lost. This might be an APR issue with how it deals with
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder the child_init hook (i.e. the fcntl lock needs to be resynced).
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder More examination and analysis is required.
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder Status: This has also been reported on Cygwin.
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder FreeBSD 4.7 was reputed to have 'fixed' threads. Not.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Aaron says: I spent some time disecting this and have come to
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder the conclusion that it is not a problem in the worker MPM
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder (or at least, it is not isolated to a problem in worker).
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder I'll list some of the problems I'm seeing in case someone
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder else wants to pick up where I've left off:
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder - Delivery of just about any signal to one of the child
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder processes will send it into an infinite loop as well.
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder - Even though the parent is spinning out of control,
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder at first the child or children will appear to work
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder properly. At times it is possible to get it into a state,
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder however, where a request will hang until another concurrent
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder request "kicks" the first, at which point the second will
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder hang. My theory is that this has to do with the
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder pthread_cond_*() implementation in FreeBSD, but it's still
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder possible that it is in APR.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Justin adds: Oh, FreeBSD threads are implemented entirely with
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder select()/poll()/longjmp(). Welcome to the nightmare.
7fd4c34af8415eb699517b1b238a24c02a9a2e9bDominik Luecke So, that means a ktrace output also has the thread
56c56b2181e76c239929ddade2925ba5c3f3fffdChristian Maeder scheduling internals in it (since it is all the same to
7fd4c34af8415eb699517b1b238a24c02a9a2e9bDominik Luecke the kernel). Which makes it hard to distinguish between
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder our select() calls and their select() calls.
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder *bangs head on wall repeatedly* But, some of the libc_r
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder files have a DBG_MSG #define. This is moderately helpful
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder when used with -DNO_DETACH. The kernel scheduler isn't
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder waking up the threads on a select(). Yum. And, I bet
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder those decrementing select calls have to do with the
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder scheduler. Time to brush up on our OS fundamentals.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * There is increasing demand from module writers for an API
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder that will allow them to control the server � la apachectl.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder Reasons include sole-function servers that need to die if
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder an external dependency (e.g., a database) fails, et cetera.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Perhaps something in the (ever more abused) scoreboard?
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder On the other hand, we already have a pipe that goes between parent
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder and child for graceful shutdown events, along with an API that
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder can be used to send a message down that pipe. In threaded MPMs,
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder it is easy enough to make that one pipe be used for graceful
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder and graceless events, and it is also easy to open that pipe
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder to both parent and child for writing. Then we just need to
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder figure out how to do graceless on non-threaded MPMs.
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder * Allow the DocumentRoot directive within <Location > scopes? This
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder by a <Directory /somepath/foo> to become simply
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder and in-your-face.) DocumentRoot unset would be accepted [and would
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder not permit content to be served, only virtual resources such as
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder server-info or server-status.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder This proposed change would _not_ depricate Alias.
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder striker: See the thread starting with Message-ID:
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder JLEGKKNELMHCJPNMOKHOGEEJFBAA.striker@apache.org.
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder * Win32: Rotatelogs sometimes is not terminated when Apache
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder goes down hard. FirstBill was looking at possibly tracking the
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder child's-child processes in the parent process.
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder stoddard: Shared scoreboard might offer a good way for the parent
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder to keep track of 'other child' processes and whack them if the child
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian Maeder goes down.
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian Maeder Other thoughts on walking the process chain using the NT kernel
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder have also been proposed on APR.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder * Eliminate unnecessary creation of pipes in mod_cgid
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian Maeder
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder * Combine log_child and piped_log_spawn. Clean up http_log.c.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder Common logging API.
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * Platforms that do not support fork (primarily Win32 and AS/400)
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder Architect start-up code that avoids initializing all the modules
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder in the parent process on platforms that do not support fork.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder
c438c79d00fc438f99627e612498744bdc0d0c89Christian Maeder * There are still a number of places in the code where we are
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder losing error status (i.e. throwing away the error returned by a
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder system call and replacing it with a generic error code)
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * Mass vhosting version of suEXEC.
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * All DBMs suffer from confusion in support/dbmmanage (perl script) since
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder the dbmmanage employs the first-matched dbm format. This is not
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder necessarily the library that Apache was built with. Aught to
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder rewrite dbmmanage upon installation to bin/ with the proper library
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder for predictable mod_auth_dbm administration.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Questions; htdbm exists, time to kill dbmmanage, or does it remain
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder useful as a perl dbm management example? If we keep it,
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski do we address the issue above?
f39ed99723025fc283f54359ad53b46f2e178f1eChristian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Integrate mod_dav.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Some additional items remaining:
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder - case_preserved_filename stuff
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder (use the new canonical name stuff?)
f39ed99723025fc283f54359ad53b46f2e178f1eChristian Maeder - find a new home for ap_text(_header)
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder - is it possible to remove the DAV: namespace stuff from util_xml?
f39ed99723025fc283f54359ad53b46f2e178f1eChristian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder are a bit wonky. The function should probably be exposed as a utility
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder function (such as ap_translate_url2fs() or ap_validate_fs_url() or
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder something). Another approach would be a new hook phase after
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder "translate" which would allow the module to munge what the
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder translation has decided to do.
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Status: Greg +1 (volunteers)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Explore use of a post-config hook for the code in http_main.c which
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder ap_sort_hooks() [to reduce the logic in main()]
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * read the config tree just once, and process N times (as necessary)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder into a VirtualHost container) to 2.0.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * shift stuff to mod_core.h
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * callers of ap_run_create_request() should check the return value
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder for failure (Doug volunteers)
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * Win32: Get Apache working on Windows 95/98. The following work
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder (at least) needs to be done:
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder - Document warning that OSR2 is required (for Crypt functions, in
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski rand.c, at least.) This could be resolved with an SSL library, or
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder randomization in APR itself.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder actually works) and add in a splash of Win9x service code.
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder * Fix the worker MPM to use POD to kill child processes instead
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder of ap_os_killpg, regardless of how they should die.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Scoreboard structures could be changed in the future such that
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski proper alignment is not maintained, leading to segfaults on
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder some systems. Cliff posted a patch to deal with this issue but
752c91d9483d1ecc6dd3f2a56b636bd9bc64cd56Christian Maeder later recanted. See this message to dev@apr.apache.org:
752c91d9483d1ecc6dd3f2a56b636bd9bc64cd56Christian Maeder Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder .cs.virginia.edu>
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian MaederTODO ISSUES REMAINING IN MOD_SSL:
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * In order to use a DSO version of mod_ssl we have to link with
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder -lssl and -lcrypto. A workaround is in place right now where the
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder entire EXTRA_LIBS macro is being appended to the objects list, but
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder autoconf function or come up with some other autoconf checks to
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder search for libssl and libcrypto and properly add them to mod_ssl's
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder link flags.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * SSL renegotiations in combination with POST request
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Port or dispose all code inside #if 0...#endif blocks that remain
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder from the porting effort.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Do we need SSL_set_read_ahead()?
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * the ssl_expr api is NOT THREAD SAFE. race conditions exist:
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder -in ssl_expr_comp() if SSLRequire is used in .htaccess
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder (ssl_expr_info is global)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder -is ssl_expr_eval() if there is an error
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder (ssl_expr_error is global)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * SSLRequire directive (parsing of) leaks memory
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Diffie-Hellman-Parameters for temporary keys are hardcoded in
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder "it is suggested that keys be changed daily or every 500
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder transactions, and more often if possible."
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder * ssl_var_lookup could be rewritten to be MUCH faster
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * CRL callback should be pluggable
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * session cache store should be pluggable
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * init functions should return status code rather than ssl_die()
bf52f113af1263696a1115e46097d787c9323754Christian Maeder
bf52f113af1263696a1115e46097d787c9323754Christian Maeder * ssl_engine_pphrase.c needs to be reworked so it is generic enough
bf52f113af1263696a1115e46097d787c9323754Christian Maeder to also decrypt proxy keys
bf52f113af1263696a1115e46097d787c9323754Christian Maeder
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder * the shmcb code should just align its memory segment rather than
bf52f113af1263696a1115e46097d787c9323754Christian Maeder jumping through all the "safe" memcpy and memset hoops
bf52f113af1263696a1115e46097d787c9323754Christian Maeder
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian MaederWISH LIST
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder * mod_proxy performance: when mod_proxy is configured to do proxy
bf52f113af1263696a1115e46097d787c9323754Christian Maeder gateway (aka reverse proxy), it would be nice to be able to reuse
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder connections to the backend servers. Now, connections to the
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder backend servers are taken down when the corresponding frontend
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder connection is taken down.
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder * mod_proxy: Ability to run SSL over proxy gateway connections,
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski encrypting (or reencrypting) at the proxy.
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder * mod_proxy: Add capability of mod_proxy to load balance across
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder a farm of backend servers.
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder * mod_cache: Handle ESI tags.
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian MaederEXPERIMENTAL MODULES:
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder Experimental modules should eventually be be promoted to fully supported
bf52f113af1263696a1115e46097d787c9323754Christian Maeder status or removed from the repository entirely (ie, the
bf52f113af1263696a1115e46097d787c9323754Christian Maeder 'experiment' failed). This section tracks what needs to happen to
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder get the modules promoted to fully supported status.
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder mod_cache/mod_mem_cache/mod_disk_cache:
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder * mod_cache: handle cache_control: no_cache "field_name" to enable
06455925c22c6409dc3887d200eee0584bf29364Klaus Luettich cacheing the response w/o header "field_name"
bb9c344bcfdca677181baeab9548208ed59072afChristian Maeder See RFC2616 section 14.9.1
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski
6a50fa6b0d93a521d8e52c61a3ceb71d9f878cebChristian Maeder * mod_mem_cache: Consider adding a RevalidateTimeout directive to
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski specify time at which local cached content is to be revalidated
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski (ie, underlying file stat'ed to see if it has changed).
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski
6a50fa6b0d93a521d8e52c61a3ceb71d9f878cebChristian Maeder * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski * mod_cache: Fix dependency on ATOMIC operators. Need
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski APR_HAS_ATOMIC_* feature macros.
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder * mod_disk_cache: Implement garbage collection
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder * mod_mem_cache/mod_disk_cache: Need to be able to query cache
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder status (num of entries, cache object properties, etc.).
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder mod_status could be extended to query optional hooks defined
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder by modules for the purpose of reporting module status.
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder mod_cache (et. al.) could define optional hooks that are called
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder to collect status. Status should be queryable by
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder HTTP or SNMP?
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder * Enable mod_cache/mod_mem_cache/mod_disk_cache to handle
multiviews
* mod_mem_cache/mod_disk_cache: Complete implementing config
directives (mod_disk_cache: CacheExpiryCheck and GC directives
including CacheGc*, CacheSize, and, CacheTimeMargin)
(mod_mem_cache: MCacheMaxObjectCount) and
(mod_cache: CacheForceCompletion).
mod_auth_ldap/util_ldap:
* implement cross-platform/cross-library TLS support
* General stabilization and testing
PRs that have been suspended forever waiting for someone to
put them into 'the next release':
* documentation and Q&A
PR#2221: Make online documentation search link back to my installation
Status:
PR#2906: Propose that Apache recommend $UNIQUE_ID for all "session id"
algorithms
Status:
PR#2793: When will Apache support P3P? Any Plans?
Status:
* build
PR#2113: HTTP Server Rebuild Line Needs Changing for the better
Status:
PR#2421: problem specifying ndbm library for build ?with autoconfigure
Status:
* config
PR#76: missing call to "setlocale();"
Status:
PR#628: Request of "Options SymLinksIfGroupMatch"
Status:
PR#793: RLimitCPU and RLimitMEM don't apply to all children like they should
Status:
PR#922: it is useful to allow specifiction that root-owned symlinks
should always be followed
Status:
PR#1028: DoS attacks involving memory consumption
Status:
PR#1191: setlogin() is not called, causing problems with e.g. identd
Status:
PR#1204: regerror() exists, use it
Status:
PR#2284: Can not POST to ErrorDocument - Apache/1.3b6
Status:
PR#2396: Proposal for TimeZone directive
Status:
PR#2446: AllowOverride FileInfo is too coarse
Status:
PR#2760: [PATCH] User/Group for <Directory> and <Location> i.e. not only
in global and <Virtual>.
Status:
PR#2907: suggestion: power up your Include directive :)
Status:
PR#3018: cannot limit some HTTP methods
Status:
PR#3677: New ErrorDocumentMatch directive
Status:
PR#4244: "Files" and "FilesMatch" regexp does not recognize bang as
negation operator
Status:
PR#5993: AllowOverride should have a 'CheckNone' and 'AllowNone' argument
instead of only 'None'
Status:
* mod_access
PR#537: mod_access syntax allows hosts that should be restricted
Status:
PR#1287: add allow,deny/deny,allow warning to mod_access
Status:
PR#2512: <IfDenied> directive wanted
Status:
* mod_auth-any
PR#557: ~UserHome directories are not honored in absolute pathname
requests (.htaccess)
Status:
PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
Status:
PR#1809: Suggestion for improving authentication modules and core source
code, problem with 401 and ErrorDocument
Status:
* mod_autoindex
PR#1263: Add frame-safe anchor attribute to mod_autoindex links
Status:
* mod_cgi (and suexec)
PR#921: suexec Uses cwd before filling it in, doesn't use syslog
Status:
PR#1176: Apache cannot handle continuation line in headers
Status:
PR#1120: suexec does not parse arguments to #exec cmd
Status:
PR#1268: CGI scripts running as Apache user: security (suexec etc.)
Status:
PR#1285: Error messages could be easier to spot in cgi.log file for suexec.c
Status:
PR#1905: suexec - Allow modules to set user:group for execution.
Status:
PR#2360: suexec for general access of user content?
Status:
PR#2460: TimeOut applies to output of CGI scripts
Status:
PR#2573: CGI's for general use still have to be run as another user
with suExec
Status:
PR#4241: Need to be able to override shebang line to make CGI scripts
more portable.
Status:
PR#4490: mod_cgi prevents handling of OPTIONS requests
Status:
* mod_env
PR#370: Modified PATH environemnt variable is not passed, instead
system's is used
Status:
* mod_headers
PR#1383: I make mod_headers to modify request headers as well as
response ones.
Status:
PR#1677: mod_headers should allow mod_log_config-style formats in
header values
Status:
* mod_imap
PR#759: imap should read <MAP><AREA>*</MAP> too!
Status:
* mod_include
PR#78: Additional status for XBitHack directive
Status:
PR#623: A smarter "Last Modified" value for SSI documents (see PR number 600)
Status:
PR#1145: mod_include
Allow for Last-Modified: without resorting to XBitHack
Status:
PR#1803: patches to mod_include to allow for file tests
Status:
PR#4459: Suggestion for better handling of Last-modified headers
Status:
* mod_info
PR#2415: /server-info doesn't check for the virtual host to list the info
Status:
* mod_log-any
PR#1050: Logging of virtual server to error_log as well
Status:
PR#1358: Selective url-encode of log fields (or maybe a pseudo
log_rewrite module?)
Status:
PR#2073: pipelined connections are not logged correctly
Status:
PR#4448: Please allow CGI env variables (QUERY_STRING, ...) to be logged
with %{}e
Status:
* mod_negotiation
PR#3191: no way to set global quality-of-source (qs) coneg values
with multiviews
Status:
* mod_proxy
PR#362: Mod_proxy doesn't allow change of error pages
Status:
PR#440: Proxy doesn't deliver documents if not connected
Status:
PR#534: proxy converts ~name to %7Ename when name starts with a dot (.)
Status:
PR#612: Proxy FTP Authentication Fails
Status:
PR#700: Proxy doesn't do links right for OpenVMS files through ftp:
Status:
PR#980: Controlling Access to Remote Proxies would be nice...
Status:
PR#994: Adding authentication "on the fly" through the proxy module
Status:
PR#1085: ProxyRemote make a dead cycle.
Status:
PR#1166: ``nph-'' not honored (no buffering) for ProxyRemote mapping
Status:
PR#1290: Need to know "hit-rate" on proxy cache
Status:
PR#1532: Proxy transfer logging
Status:
PR#1547: No HTTP_X_FORWARDED_FOR set...
Status:
PR#1567: ProxyRemote proxy requests fail authentication by firewall
Status:
PR#1702: mod_proxy to support persistent conns?
Status:
PR#1878: listing of proxy cache content
Status:
PR#2314: patterns in ProxyRemote
Status:
PR#2648: Cache file names in Proxy module
Status:
PR#3568: Accessing URL through proxy server corrupts data.
Status:
PR#3605: Some anonymous FTP URLs ask for authentication
Status:
* mod_rewrite
PR#1582: mod_rewrite forms REQUEST_URI different than mod_cgi does
Status:
PR#2074: mod_rewrite doesn't pass Proxy Throughput on internal subrequests
Status:
* mod_status
PR#2138: mod_status always displays 256 possible connection slots
Status:
PR#2343: Status module averages are for entire uptime
Status:
* apache-api
PR#1004: request_config field in request_rec is moderately bogus
Status:
PR#1158: improvements to child spawning API
Status:
PR#1233: there is no way to keep per-connection per-module state
Status:
PR#2024: adding auth_why to conn_rec
Status:
PR#2873: Feedback/Comment on APACI
Status:
PR#3143: No module specific data hook for per-connection data
Status:
* generally odds and ends
PR#2431: A small addition to rotatelogs.c to improve program functionality.
Status:
PR#2763: mailto tags and bundling bug report script
Status:
PR#2785: os-aix Support for System Resource Controller
Status:
PR#2889: Inclusion of RPM spec file in CVS/distributions
Status:
PR#5713: os-windows [PATCH] install as win32 service with domain account
Status: Cannot accept password-as-arg, we should prompt the
user when -k install/-k config with a user argument.
Other bugs that need fixing:
* ap_discard_request should be converted to use the bucket API
directly rather than waste cycles copying buffers with the old API.
* MaxRequestsPerChild measures connections, not requests.
Until someone has a better way, we'll probably just rename it
"MaxConnectionsPerChild".
* Regex containers don't work in an intutive way
Status: No one has come up with an efficient way to fix this
behavior. Dean has suggested getting rid of regex containers
completely.
OtherBill suggests: We at least seem to agree on eliminating
the <Container ~ foo> forms, and using only
<ContainerMatch foo> semantics.
* SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
sigwaiting thread. We need to work around this, perhaps unless
there is hope soon for a fixed glibc.
* orig_ct in the byterange/multipart handling may not be
needed. Apache 1.3 just never stashed "multipart" into
r->content_type. We should probably follow suit since the
byterange stuff doesn't want the rest of the code to see the
multipart content-type; the other code should still think it is
dealing with the <orig_ct> stuff.
Status: Greg volunteers to investigate (esp. since he was most
likely the one to break it :-)
Binaries (probably not till beta):
Platform Avail. Volunteer
------------------------------------------------------------------
AIX 4.3.3 no Bill Stoddard
Mandrake 8.1 no open
FreeBSD 4.1 no open
hppa2.0w-hp-hpux11.00 no Cliff Woolley
i386-pc-solaris2.8 no Aaron Bannert
i386-unknown-freebsd4.5 no
i386-unknown-freebsd4.6 no Cliff Woolley
i686-pc-linux-gnu-slackware81 no Cliff Woolley
i686-pc-linux-gnu-rh70 no Aaron Bannert
i686-pc-linux-gnu-rh73 no Cliff Woolley
ia64-hp-hpux11.20 no
powerpc-apple-darwin5.5 no Aaron Bannert
powerpc-unknown-linux-gnu no Graham Leggett
s390-ibm-linux no Greg Ames
sparc-sun-solaris2.8 no Jim Jagielski
NetWare no Brad Nicholes
OS/2 no Brian Havard
OS/390 no Greg Ames
Win32-x86 no William Rowe