]> granicus.if.org Git - apache/blob - STATUS
sysconfdir/examples is my current favorite
[apache] / STATUS
1 APACHE 2.0 STATUS:                                              -*-text-*-
2 Last modified at [$Date: 2002/07/23 17:24:35 $]
3
4 Release:
5
6     2.0.40  : in development.
7     2.0.39  : rolled June 17, 2002.
8     2.0.38  : rolled June 16, 2002.  not released.
9     2.0.37  : rolled June 11, 2002.  not released.
10     2.0.36  : released May 6, 2002 as GA.
11     2.0.35  : released April 5, 2002 as GA.
12     2.0.34  : tagged March 26, 2002.
13     2.0.33  : tagged March 6, 2002.  not released.
14     2.0.32  : released Feburary 16, 2002 as beta.
15     2.0.31  : rolled Feburary 1, 2002.  not released.
16     2.0.30  : tagged January 8, 2002.  not rolled.
17     2.0.29  : tagged November 27, 2001.  not rolled.
18     2.0.28  : released November 13, 2001 as beta.
19     2.0.27  : rolled November 6, 2001
20     2.0.26  : tagged October 16, 2001.  not rolled.
21     2.0.25  : rolled August 29, 2001
22     2.0.24  : rolled August 18, 2001
23     2.0.23  : rolled August 9, 2001
24     2.0.22  : rolled July 29, 2001
25     2.0.21  : rolled July 20, 2001
26     2.0.20  : rolled July 8, 2001
27     2.0.19  : rolled June 27, 2001
28     2.0.18  : rolled May 18, 2001
29     2.0.17  : rolled April 17, 2001
30     2.0.16  : rolled April 4, 2001
31     2.0.15  : rolled March 21, 2001
32     2.0.14  : rolled March 7, 2001
33     2.0a9   : released December 12, 2000
34     2.0a8   : released November 20, 2000
35     2.0a7   : released October 8, 2000
36     2.0a6   : released August 18, 2000
37     2.0a5   : released August 4, 2000
38     2.0a4   : released June 7, 2000
39     2.0a3   : released April 28, 2000
40     2.0a2   : released March 31, 2000
41     2.0a1   : released March 10, 2000
42
43 Please consult the following STATUS files for information
44 on related projects:
45
46     * srclib/apr/STATUS
47     * srclib/apr-util/STATUS
48     * docs/STATUS
49
50
51 CURRENT RELEASE NOTES:
52
53
54 RELEASE SHOWSTOPPERS:
55
56     * apr_poll() grows the pool (e.g., pchild or the thread's pool) on
57       each call...  Apache MPMs don't have logic to work around this
58       issue.
59
60     * On AIX and Tru64, Apache won't load due to an unresolved
61       reference to iconv.
62
63 CURRENT VOTES:
64
65     * httpd-std.conf and friends
66
67       a) httpd-std.conf should be tailored by install (from src or
68          binbuild) even if user has existing httpd.conf
69          +1:   trawick, slive, gregames
70
71       b) tailored httpd-std.conf should be copied by install to
72          sysconfdir/examples
73          +1:   trawick
74
75       c) tailored httpd-std.conf should be installed to
76          sysconfdir/examples or manualdir/exampleconf/
77          +1:   slive
78
79     * apachectl should revert to just being an init script and
80       httpd.sh should be the wrapper for httpd which sources envvars
81       and allows any options to be passed through
82
83       +1:  trawick
84
85     * Should we always build [support*] binaries statically unless otherwise
86       indicated?
87         Message-ID: <20020129210006.B23512@Lithium.MeepZor.Com>
88
89       +1:  Ken, *wrowe [they are PITAs on OSX]
90       -1:  Justin, Ian
91         
92     * If the parent process dies, should the remaining child processes
93       "gracefully" self-terminate. Or maybe we should make it a runtime
94       option, or have a concept of 2 parent processes (one being a 
95       "hot spare").
96       See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
97
98       Self-destruct: Ken, Martin
99       Not self-destruct: BrianP, Ian, Cliff, BillS
100       Make it runtime configurable: Aaron, Jim, Justin
101       Have 2 parents: +1: Jim
102                       -1: Justin, wrowe [for 2.0]
103                       +0: Martin (while standing by, could it do
104                                   something useful?)
105
106     * Make the worker MPM the default MPM for threaded Unix boxes.
107       +1:   Justin, Ian, Cliff, BillS
108       +0:   BrianP, Aaron (mutex contention is looking better with the
109             latest code, let's continue tuning and testing)
110       -0:   Lars
111
112 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
113
114     * All handlers should always send content down even if r->header_only
115       is set.  If not, it means that the HEAD requests don't generate the
116       same headers as a GET which is wrong.
117       Is this a showstopper?
118         +1: Justin
119         -1: Aaron
120
121     * server pushed CGI's not working.  (Is this a showstopper??)
122       PR: 8482
123       Message-ID: <3CE15B85.2FF45121@apache.org>
124
125     * HP/UX 10.20: compile breakage in APR.  Looks like it should be easy
126       to fix, probably just some extraneous #include's that are fouling
127       things up.
128       PR: 9457
129       Jeff: See my reply and patch in the PR (and previous commit to
130       stop using "pipe" as a field name).  If patch is committed, we
131       should be okay.  I'll wait to see if the user tests the patch.
132       Update by Jeff 20020722: I got an account on HP 10.20.  It looks
133       like some of the APR thread detection is screwed up.  If we find
134       pthread.h but we can't compile the pthread test program we still
135       think we can use threads.  For that reason, the patch I posted
136       to the PR won't work as-is since a failed compile of the test
137       program means nothing.
138
139     * exec cmd and suexec arg-passing enhancements
140       Status: Patches proposed
141       Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
142       (see the "proc.patch" and "suexec-shell.patch" links in this message)
143
144     * Get mod_cache/mod_mem_cache out of experimental (still some
145       work items left to complete)
146
147     * The 2.0.36 worker MPM graceless shutdown changes work but are
148       a bit clunky on some platforms; eg, on Linux, the loop to
149       join each worker thread seems to hang, and the parent ends up
150       killing off the child with SIGKILL.  But at least it shuts down.
151
152     * --enable-mods-shared="foo1 foo2" is busted on Darwin.  Pier
153         posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
154
155     * We do not properly substitute the prefix-variables in the configuration
156       scripts or generated-configs.  (i.e. if sysconfdir is etc,
157       httpd-std.conf points to conf.)
158
159     * If any request gets through ap_process_request_internal() and is
160       scheduled to be served by the core handler, without a flag that this 
161       r->filename was tested by dir/file_walk, we need to 500 at the very 
162       end of the ap_process_request_internal() processing so sub_req-esters
163       know this request cannot be run.  This provides authors of older 
164       modules better compatibility, while still improving the security and 
165       robustness of 2.0. 
166
167         Status: still need to decide where this goes, OtherBill comments...
168         Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
169         [Deleted comments regarding the ap_run_handler phase, as irrelevant
170             as BillS points out that "common case will be caught in
171             default_handler already (with the r->finfo.filetype == 0 check)"
172             and the issue is detecting this -before- we try to run the req.]
173
174         gregames says: can this happen somehow without a broken module
175             being involved?  If not, why waste cycles trying to defend against
176             potential broken modules?  It seems futile.
177         wrowe counters: no, it shouldn't happen unless the module is broken.
178             But the right answer is to fail the request up-front in dir/file
179             walk if the path was entirely invalid; and we can't do that either
180             or we break modules that are unwilling to hook map_to_storage.
181
182     * Rewrite core_output_filter. It is nearly impossible to support
183       it with predictable results as it is implemented now.
184
185     * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
186       how the Perchild MPM should be re-written.  It hasn't worked
187       correctly since filters were added because it wasn't possible to
188       get the content that had already been written and the socket at
189       the same time.  This mode lets us do that, so the MPM can be
190       fixed.
191
192     * htpasswd blindly processes the file you give it, and does no
193       sanity checking before totally corrupting whatever file it was
194       you thought you had. It should check the input file and bail
195       if it finds non-comment lines that do not contain exactly 1
196       ':' character.
197         Message-ID: <20020217150457.A31632@clove.org>
198
199     * Can a static httpd be built reliably?
200         Message-ID: <20020207142751.T31582@clove.org>
201
202     * [Ken] Test suite failures:
203       o worker is also failing some of the 'cgi' subtests
204       (see <URL:http://Source-Zone.Org/Apache/regression/>):
205         Justin says: "Worker should be fine and passes httpd-test here.
206                       If you can provide evidence that it can be reproduced
207                       outside of httpd-test, then it's a showstopper.  I
208                       think it's a perl or a httpd-test problem."
209         Not a showstopper: Justin
210
211     * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
212       removed if possible.
213         Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
214         Jeff wonders if we still care about this.  It is no longer an
215         API issue but simply an extra trip through the brigade.
216
217     * There is a bug in how we sort some hooks, at least the pre-config
218       hook.  The first time we call the hooks, they are in the correct 
219       order, but the second time, we don't sort them correctly.  Currently,
220       the modules/http/config.m4 file has been renamed to 
221       modules/http/config2.m4 to work around this problem, it should moved
222       back when this is fixed.    rbb
223         Justin says: "Is this really a showstopper?  This has been here
224                       forever.  What's wrong?  Does this have to do with
225                       autoconf or m4?"
226         Not a showstopper: Justin, BrianP, trawick, gregames
227
228     * The Add...Filter and Set...Filter directives do not allow the
229       administrator to order filters, beyond the order of filename (mime)
230       extensions.  It isn't clear if Set...Filter(s) should be inserted 
231       before or after the Add...Filter(s) which are ordered by sequence of
232       filename extensions.  At minimum, some sort of +-[0-10] syntax seems
233       like the quickest fix for a 2.0 gold release.
234         Justin says: "Could we delay this for a point release or 2.1?"
235         Not a showstopper: justin, wrowe, trawick, stoddard, Jim, Ian, Aaron,
236                            gregames
237
238     * Get perchild to work on platforms other than Linux. This
239       will require a portable mechanism to pass data and file/socket
240       descriptors between vhost child groups. An API was proposed
241       on dev@apr:
242         Message-ID: <20020111115006.K1529@clove.org>
243
244     * Try to get libtool inter-library dependency code working on AIX.
245         Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
246
247       Justin says: If we get it working on AIX, we can enable this
248                    on all platforms and clean up our build system
249                    somewhat.
250       Jeff says:   I thought I tested a patch for you sometime in
251                    January that you were going to commit within a few
252                    days.
253
254     * Handling of %2f in URIs.  Currently both 1.3 and 2.0
255       completely disallow %2f in the request URI path (see
256       ap_unescape_url() in util.c).  It's permitted and passed
257       through in the query string, however.  Roy says the
258       original reason for disallowing it, from five years ago,
259       was to protect CGI scripts that applied PATH_INFO to
260       a filesystem location and which might be tricked by
261       ..%2f..%2f(...).  We *should* allow path-info of the
262       form 'http://foo.com/index.cgi/path/to/path%2finfo'.
263       Since we've revamped a lot of our processing of path
264       segments, it would be nice to allow this, or at least
265       allow it conditionally with a directive.
266
267     * FreeBSD, threads, and worker MPM.  All seems to work fine 
268       if you only have one worker process with many threads.  Add 
269       a second worker process and the accept lock seems to be
270       lost.  This might be an APR issue with how it deals with
271       the child_init hook (i.e. the fcntl lock needs to be resynced).
272       More examination and analysis is required.
273         Status: This has also been reported on Cygwin.  
274         Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
275
276       Justin says: So, FreeBSD-CURRENT and Cywin have the same 
277                    problem.  Yum.  If another platform has this
278                    with worker, this becomes a showstopper.
279       Aaron says: I spent some time disecting this and have come to
280               the conclusion that it is not a problem in the worker MPM
281               (or at least, it is not isolated to a problem in worker).
282               I'll list some of the problems I'm seeing in case someone
283               else wants to pick up where I've left off:
284                - Delivery of just about any signal to one of the child
285                  processes will send it into an infinite loop as well.
286                - Even though the parent is spinning out of control,
287                  at first the child or children will appear to work
288                  properly. At times it is possible to get it into a state,
289                  however, where a request will hang until another concurrent
290                  request "kicks" the first, at which point the second will
291                  hang. My theory is that this has to do with the
292                  pthread_cond_*() implementation in FreeBSD, but it's still
293                  possible that it is in APR.
294       
295       Justin adds: Oh, FreeBSD threads are implemented entirely with 
296                    select()/poll()/longjmp().  Welcome to the nightmare.
297                    So, that means a ktrace output also has the thread 
298                    scheduling internals in it (since it is all the same to 
299                    the kernel).  Which makes it hard to distinguish between 
300                    our select() calls and their select() calls.  
301                    *bangs head on wall repeatedly*  But, some of the libc_r 
302                    files have a DBG_MSG #define.  This is moderately helpful
303                    when used with -DNO_DETACH.  The kernel scheduler isn't 
304                    waking up the threads on a select().  Yum.  And, I bet 
305                    those decrementing select calls have to do with the 
306                    scheduler.  Time to brush up on our OS fundamentals.
307
308     * There is increasing demand from module writers for an API
309       that will allow them to control the server Ã  la apachectl.
310       Reasons include sole-function servers that need to die if
311       an external dependency (e.g., a database) fails, et cetera.
312       Perhaps something in the (ever more abused) scoreboard?
313         rbb: I don't believe the scoreboard is the correct mechanism
314              for this.  We already have a pipe that goes between parent
315              and child for graceful shutdown events, along with an API that
316              can be used to send a message down that pipe.  In threaded MPMs,
317              it is easy enough to make that one pipe be used for graceful
318              and graceless events, and it is also easy to open that pipe
319              to both parent and child for writing.  Then we just need to
320              figure out how to do graceless on non-threaded MPMs.
321
322     * Allow the DocumentRoot directive within <Location > scopes?  This
323       allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
324       by a <Directory /somepath/foo> to become simply 
325       <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
326       and in-your-face.)  DocumentRoot unset would be accepted [and would
327       not permit content to be served, only virtual resources such as
328       server-info or server-status.
329         This proposed change would _not_ depricate Alias.
330
331     * Win32: Rotatelogs sometimes is not terminated when Apache
332       goes down hard.  FirstBill was looking at possibly tracking the 
333       child's-child processes in the parent process.
334         OtherBill asks, wasn't this fixed? 
335         stoddard: Not fixed. Shared scoreboard might offer a good
336         way for the parent to keep track of 'other child' processes
337         and whack them if the child goes down.
338         Other thoughts on walking the process chain using the NT kernel
339         have also been proposed on APR.
340
341     * Win32: Add a simple hold console open patch (wait for close or
342         the ESC key, with a nice message) if the server died a bad 
343         death (non-zero exit code) in console mode.
344         Resolution: bring forward same ugly hacks from 1.3.13-.20
345         This is not so simple.  Any exit() from APR or other libraries
346         can't be caught unless we add some sort of apr_exit(rv) with
347         registered apr_atexit() fn's that have the return code as an
348         argument to the registered fn.
349
350     * Eliminate unnecessary creation of pipes in mod_cgid
351
352     * Combine log_child and piped_log_spawn. Clean up http_log.c.
353       Common logging API.
354
355     * Document mod_file_cache.
356
357     * Platforms that do not support fork (primarily Win32 and AS/400)
358       Architect start-up code that avoids initializing all the modules 
359       in the parent process on platforms that do not support fork.
360
361     * Win32: Migrate the MPM over to use APR thread/process calls. This
362       would eliminate some code in the Win32 branch that essentially
363       duplicates what is in APR.
364
365     * There are still a number of places in the code where we are
366       losing error status (i.e. throwing away the error returned by a
367       system call and replacing it with a generic error code)
368
369     * Mass vhosting version of suEXEC.
370
371     * All DBMs suffer from confusion in support/dbmmanage (perl script) since 
372       the dbmmanage employs the first-matched dbm format.  This is not
373       necessarily the library that Apache was built with.  Aught to
374       rewrite dbmmanage upon installation to bin/ with the proper library 
375       for predictable mod_auth_dbm administration.
376         Questions; htdbm exists, time to kill dbmmanage, or does it remain
377                    useful as a perl dbm management example?  If we keep it,
378                    do we address the issue above?
379
380     * Integrate mod_dav.
381         Some additional items remaining:
382         - case_preserved_filename stuff
383             (use the new canonical name stuff?)
384         - find a new home for ap_text(_header)
385         - is it possible to remove the DAV: namespace stuff from util_xml?
386
387     * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
388       are a bit wonky.  The function should probably be exposed as a utility 
389       function (such as ap_translate_url2fs() or ap_validate_fs_url() or 
390       something).  Another approach would be a new hook phase after
391       "translate" which would allow the module to munge what the
392       translation has decided to do.
393         Status: Greg +1 (volunteers), Ryan +1
394
395     * Explore use of a post-config hook for the code in http_main.c which
396       calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
397       ap_sort_hooks()  [to reduce the logic in main()]
398
399     * read the config tree just once, and process N times (as necessary)
400
401     * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
402
403     * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
404       into a VirtualHost container) to 2.0.
405
406     * shift stuff to mod_core.h
407
408     * callers of ap_run_create_request() should check the return value
409       for failure (Doug volunteers)
410
411     * Win32: Get Apache working on Windows 95/98. The following work
412         (at least) needs to be done:
413         - Document warning that OSR2 is required (for Crypt functions, in
414         rand.c, at least.)  This could be resolved with an SSL library, or
415         randomization in APR itself.
416         - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
417         actually works) and add in a splash of Win9x service code.
418
419     * Fix the worker MPM to use POD to kill child processes instead
420       of ap_os_killpg, regardless of how they should die. (Ryan Bloom)
421
422     * Scoreboard structures could be changed in the future such that
423       proper alignment is not maintained, leading to segfaults on 
424       some systems.  Cliff posted a patch to deal with this issue but
425       later recanted. See this message to dev@apr.apache.org:
426       Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
427                   .cs.virginia.edu>
428
429 TODO ISSUES REMAINING IN MOD_SSL:
430
431     * In order to use a DSO version of mod_ssl we have to link with
432       -lssl and -lcrypto. A workaround is in place right now where the
433       entire EXTRA_LIBS macro is being appended to the objects list, but
434       this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
435       autoconf function or come up with some other autoconf checks to
436       search for libssl and libcrypto and properly add them to mod_ssl's
437       link flags.
438
439     * SSL renegotiations in combination with POST request
440
441     * Port or dispose all code inside #if 0...#endif blocks that remain
442       from the porting effort.
443
444     * Do we need SSL_set_read_ahead()?
445
446     * the ssl_expr api is NOT THREAD SAFE.  race conditions exist:
447        -in ssl_expr_comp() if SSLRequire is used in .htaccess
448         (ssl_expr_info is global)
449        -is ssl_expr_eval() if there is an error
450         (ssl_expr_error is global)
451
452     * SSLRequire directive (parsing of) leaks memory
453
454     * Diffie-Hellman-Parameters for temporary keys are hardcoded in
455       ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
456       "it is suggested that keys be changed daily or every 500
457       transactions, and more often if possible."
458
459     * ssl_var_lookup could be rewritten to be MUCH faster
460
461     * CRL callback should be pluggable
462
463     * session cache store should be pluggable
464
465     * init functions should return status code rather than ssl_die()
466
467     * ssl_engine_pphrase.c needs to be reworked so it is generic enough
468       to also decrypt proxy keys
469
470     * the shmcb code should just align its memory segment rather than
471       jumping through all the "safe" memcpy and memset hoops
472
473
474 EXPERIMENTAL MODULES:
475
476     Experimental modules should eventually be be promoted to fully supported
477     status or removed from the repository entirely (ie, the
478     'experiment' failed). This section tracks what needs to happen to 
479     get the modules promoted to fully supported status.
480
481     mod_cache/mod_mem_cache/mod_disk_cache:
482
483     * mod_cache: handle cache_control: no_cache "field_name" to enable 
484       cacheing the response w/o header "field_name"
485       See RFC2616 section 14.9.1
486
487     * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
488
489     * mod_cache: Fix dependency on ATOMIC operators. Need
490       APR_HAS_ATOMIC_* feature macros.
491
492     * mod_disk_cache: Implement garbage collection
493
494     * mod_mem_cache/mod_disk_cache: Need to be able to query cache
495       status (num of entries, cache object properties, etc.).
496       mod_status could be extended to query optional hooks defined
497       by modules for the purpose of reporting module status.
498       mod_cache (et. al.) could define optional hooks that are called
499       to collect status.  Status should be queryable by
500       HTTP or SNMP?
501
502     * mod_mem_cache: garbage collection. One strategy is to simply
503       remove stale entries as we attempt to serve them. Another
504       strategy is to kick off a GC thread that traverses the cache
505       and preemptively remove stale entries.  How to manage a 
506       cache that is full? Do LRU GC? Other? Bueller?
507
508     * mod_mem_cache/mod_disk_cache: Complete implementing config
509       directives. 
510
511     * Sample config for mod_cache/mod_mem_cache/mod_disk_cache for
512       inclusion into httpd.conf.
513
514     * mod_cache/mod_mem_cache/mod_disk_cache: Documentation.
515
516 PRs that have been suspended forever waiting for someone to
517 put them into 'the next release':
518
519     * documentation and Q&A
520
521       PR#2221: Make online documentation search link back to my installation
522         Status: 
523
524       PR#2906: Propose that Apache recommend $UNIQUE_ID for all "session id"
525       algorithms
526         Status: 
527
528       PR#2793: When will Apache support P3P? Any Plans?
529         Status: 
530
531     * build
532
533       PR#2113: HTTP Server Rebuild Line Needs Changing for the better
534         Status: 
535
536       PR#2421: problem specifying ndbm library for build ?with autoconfigure
537         Status: 
538
539     * config
540
541       PR#76: missing call to "setlocale();"
542         Status: 
543
544       PR#628: Request of "Options SymLinksIfGroupMatch"
545         Status: 
546
547       PR#793: RLimitCPU and RLimitMEM don't apply to all children like they should
548         Status: 
549
550       PR#922:  it is useful to allow specifiction that root-owned symlinks
551       should always be followed
552         Status: 
553
554       PR#1028: DoS attacks involving memory consumption
555         Status: 
556
557       PR#1191: setlogin() is not called, causing problems with e.g. identd
558         Status: 
559
560       PR#1204: regerror() exists, use it
561         Status: 
562
563       PR#2284: Can not POST to ErrorDocument - Apache/1.3b6
564         Status: 
565
566       PR#2396: Proposal for TimeZone directive
567         Status: 
568
569       PR#2446: AllowOverride FileInfo is too coarse
570         Status: 
571
572       PR#2760: [PATCH] User/Group for <Directory> and <Location> i.e. not only
573       in global and <Virtual>.
574         Status: 
575
576       PR#2907: suggestion: power up your Include directive :)
577         Status: 
578
579       PR#3018: cannot limit some HTTP methods
580         Status: 
581
582       PR#3677: New ErrorDocumentMatch directive
583         Status: 
584
585       PR#4244: "Files" and "FilesMatch" regexp does not recognize bang as
586       negation operator
587         Status: 
588
589       PR#5993: AllowOverride should have a 'CheckNone' and 'AllowNone' argument
590       instead of only 'None'
591         Status: 
592
593     * mod_access
594
595       PR#537: mod_access syntax allows hosts that should be restricted
596         Status: 
597
598       PR#1287: add allow,deny/deny,allow warning to mod_access
599         Status: 
600
601       PR#2512: <IfDenied> directive wanted
602         Status: 
603
604     * mod_auth-any
605
606       PR#557: ~UserHome directories are not honored in absolute pathname
607       requests (.htaccess)
608         Status: 
609
610       PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
611         Status: 
612
613       PR#1809: Suggestion for improving authentication modules and core source
614       code, problem with 401 and ErrorDocument
615         Status: 
616
617     * mod_autoindex
618
619       PR#1263: Add frame-safe anchor attribute to mod_autoindex links
620         Status: 
621
622     * mod_cgi (and suexec)
623
624       PR#921: suexec Uses cwd before filling it in, doesn't use syslog
625         Status: 
626
627       PR#1176: Apache cannot handle continuation line in headers
628         Status: 
629
630       PR#1120: suexec does not parse arguments to #exec cmd
631         Status: 
632
633       PR#1268: CGI scripts running as Apache user: security (suexec etc.)
634         Status: 
635
636       PR#1285: Error messages could be easier to spot in cgi.log file for suexec.c
637         Status: 
638
639       PR#1905: suexec - Allow modules to set user:group for execution.
640         Status: 
641
642       PR#2360: suexec for general access of user content?
643         Status: 
644
645       PR#2460: TimeOut applies to output of CGI scripts
646         Status: 
647
648       PR#2573: CGI's for general use still have to be run as another user
649       with suExec
650         Status: 
651
652       PR#4241: Need to be able to override shebang line to make CGI scripts
653       more portable.
654         Status: 
655
656       PR#4490: mod_cgi prevents handling of OPTIONS requests
657         Status: 
658
659     * mod_env
660
661       PR#370: Modified PATH environemnt variable is not passed, instead
662       system's is used
663         Status: 
664
665     * mod_headers
666
667       PR#1383: I make mod_headers to modify request headers as well as
668       response ones.
669         Status: 
670
671       PR#1677: mod_headers should allow mod_log_config-style formats in
672       header values
673         Status: 
674
675     * mod_imap
676
677       PR#759: imap should read <MAP><AREA>*</MAP> too!
678         Status: 
679
680     * mod_include
681
682       PR#78: Additional status for XBitHack directive
683         Status: 
684
685       PR#623: A smarter "Last Modified" value for SSI documents (see PR number 600)
686         Status: 
687
688       PR#1145: mod_include
689       Allow for Last-Modified: without resorting to XBitHack
690         Status: 
691
692       PR#1803: patches to mod_include to allow for file tests
693         Status: 
694
695       PR#4459: Suggestion for better handling of Last-modified headers
696         Status: 
697
698     * mod_info
699
700       PR#2415: /server-info doesn't check for the virtual host to list the info
701         Status: 
702
703     * mod_log-any
704
705       PR#1050: Logging of virtual server to error_log as well
706         Status: 
707
708       PR#1358: Selective url-encode of log fields (or maybe a pseudo
709       log_rewrite module?)
710         Status: 
711
712       PR#2073: pipelined connections are not logged correctly
713         Status: 
714
715       PR#4448: Please allow CGI env variables (QUERY_STRING, ...) to be logged
716       with %{}e
717         Status: 
718
719     * mod_negotiation
720
721       PR#3191: no way to set global quality-of-source (qs) coneg values
722       with multiviews
723         Status: 
724
725     * mod_proxy
726
727       PR#362: Mod_proxy doesn't allow change of error pages
728         Status: 
729
730       PR#440: Proxy doesn't deliver documents if not connected
731         Status: 
732
733       PR#534: proxy converts ~name to %7Ename when name starts with a dot (.)
734         Status: 
735
736       PR#612: Proxy FTP Authentication Fails
737         Status: 
738
739       PR#700: Proxy doesn't do links right for OpenVMS files through ftp:
740         Status: 
741
742       PR#980: Controlling Access to Remote Proxies would be nice...
743         Status: 
744
745       PR#994: Adding authentication "on the fly" through the proxy module
746         Status: 
747
748       PR#1085: ProxyRemote make a dead cycle.
749         Status: 
750
751       PR#1166: ``nph-'' not honored (no buffering) for ProxyRemote mapping
752         Status: 
753
754       PR#1290: Need to know "hit-rate" on proxy cache
755         Status: 
756
757       PR#1532: Proxy transfer logging
758         Status: 
759
760       PR#1547: No HTTP_X_FORWARDED_FOR set...
761         Status: 
762
763       PR#1567: ProxyRemote proxy requests fail authentication by firewall
764         Status: 
765
766       PR#1702: mod_proxy to support persistent conns?
767         Status: 
768
769       PR#1878: listing of proxy cache content
770         Status: 
771
772       PR#2314: patterns in ProxyRemote
773         Status: 
774
775       PR#2648: Cache file names in Proxy module
776         Status: 
777
778       PR#3568: Accessing URL through proxy server corrupts data.
779         Status: 
780
781       PR#3605: Some anonymous FTP URLs ask for authentication
782         Status: 
783
784     * mod_rewrite
785
786       PR#1582: mod_rewrite forms REQUEST_URI different than mod_cgi does
787         Status: 
788
789       PR#2074: mod_rewrite doesn't pass Proxy Throughput on internal subrequests
790         Status: 
791
792     * mod_status
793
794       PR#2138: mod_status always displays 256 possible connection slots
795         Status: 
796
797       PR#2343: Status module averages are for entire uptime
798         Status: 
799
800     * apache-api
801
802       PR#1004: request_config field in request_rec is moderately bogus
803         Status: 
804
805       PR#1158: improvements to child spawning API
806         Status: 
807
808       PR#1233: there is no way to keep per-connection per-module state
809         Status: 
810
811       PR#2024: adding auth_why to conn_rec
812         Status: 
813
814       PR#2873: Feedback/Comment on APACI
815         Status: 
816
817       PR#3143: No module specific data hook for per-connection data
818         Status: 
819
820     * generally odds and ends
821
822       PR#2431: A small addition to rotatelogs.c to improve program functionality.
823         Status: 
824
825       PR#2763: mailto tags and bundling bug report script
826         Status: 
827
828       PR#2785: os-aix Support for System Resource Controller
829         Status: 
830
831       PR#2889: Inclusion of RPM spec file in CVS/distributions
832         Status: 
833
834       PR#5713: os-windows [PATCH] install as win32 service with domain account
835         Status: Cannot accept password-as-arg, we should prompt the
836                 user when -k install/-k config with a user argument.
837
838
839
840 Other bugs that need fixing:
841
842     * ap_discard_request should be converted to use the bucket API
843       directly rather than waste cycles copying buffers with the old API.
844
845     * MaxRequestsPerChild measures connections, not requests.
846         Until someone has a better way, we'll probably just rename it
847         "MaxConnectionsPerChild".
848     
849     * Regex containers don't work in an intutive way
850         Status: No one has come up with an efficient way to fix this
851         behavior. Dean has suggested getting rid of regex containers
852         completely.
853         OtherBill suggests: We at least seem to agree on eliminating
854                             the <Container ~ foo> forms, and using only
855                             <ContainerMatch foo> semantics.
856
857     * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
858       sigwaiting thread. We need to work around this, perhaps unless
859       there is hope soon for a fixed glibc.
860
861     * orig_ct in the byterange/multipart handling may not be
862       needed. Apache 1.3 just never stashed "multipart" into
863       r->content_type. We should probably follow suit since the
864       byterange stuff doesn't want the rest of the code to see the
865       multipart content-type; the other code should still think it is
866       dealing with the <orig_ct> stuff.
867         Status: Greg volunteers to investigate (esp. since he was most 
868                 likely the one to break it :-)
869
870 Binaries (2.0.39):
871
872  Platform                      Avail.  Volunteer
873  ------------------------------------------------------------------
874  AIX 4.3.3                     no      Bill Stoddard
875  Mandrake 8.1                  no      Ryan Bloom
876  FreeBSD 4.1                   no      Ryan Bloom
877  hppa2.0w-hp-hpux11.00         yes     Cliff Woolley
878  i386-pc-solaris2.8            yes     Aaron Bannert
879  i386-unknown-freebsd4.5       no
880  i386-unknown-freebsd4.6       yes     Aaron Bannert
881  i686-pc-linux-gnu             yes     Aaron Bannert
882  i686-pc-linux-gnu-rh70        yes     Aaron Bannert
883  ia64-hp-hpux11.20             yes     Cliff Woolley
884  powerpc-apple-darwin5.5       yes     Aaron Bannert
885  powerpc-unknown-linux-gnu     yes     Graham Leggett
886  sparc-sun-solaris2.8          yes     Jim Jagielski
887  NetWare                       yes     Brad Nicholes
888  OS/2                          yes     Brian Havard
889  Win32-x86                     yes     William Rowe
890
891 Other features that need writing:
892
893     * Finish infrastructure in core for async MPMs
894         Status: post 2.0
895
896     * TODO in source -- just do an egrep on "TODO" and see what's there
897
898 Available Patches:
899
900    * Martin Sojka <msojka@gmx.de>'s patch to add error reporting for failed 
901      htpasswd actions due to a full /tmp volume (other programs may have
902      similar problems?)
903         PR: 6475
904         Status:
905
906    * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
907      performance
908        Status: These were written for 1.3, and are awaiting a port to
909        2.0
910  
911    * Jim Winstead's <jimw@trainedmonkey.com> patch to add CookieDomain and 
912      other small mod_usertrack features
913
914    * Dan Rench's <drench@xnet.com> patch to add allow the errmsg and timefmt 
915      of SSI's to be modified in the config file.  Patch is available in 
916      PR6193