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