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