]> granicus.if.org Git - apache/blob - STATUS
Fix chinese default page.
[apache] / STATUS
1 APACHE 2.1 STATUS:                                              -*-text-*-
2 Last modified at [$Date: 2003/03/07 20:24:07 $]
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, Lars
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: Lars, 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     * General stabilization and testing
481     
482
483 PRs that have been suspended forever waiting for someone to
484 put them into 'the next release':
485
486     * documentation and Q&A
487
488       PR#2221: Make online documentation search link back to my installation
489         Status: 
490
491       PR#2906: Propose that Apache recommend $UNIQUE_ID for all "session id"
492       algorithms
493         Status: 
494
495       PR#2793: When will Apache support P3P? Any Plans?
496         Status: 
497
498     * build
499
500       PR#2113: HTTP Server Rebuild Line Needs Changing for the better
501         Status: 
502
503       PR#2421: problem specifying ndbm library for build ?with autoconfigure
504         Status: 
505
506     * config
507
508       PR#76: missing call to "setlocale();"
509         Status: 
510
511       PR#628: Request of "Options SymLinksIfGroupMatch"
512         Status: 
513
514       PR#793: RLimitCPU and RLimitMEM don't apply to all children like they should
515         Status: 
516
517       PR#922:  it is useful to allow specifiction that root-owned symlinks
518       should always be followed
519         Status: 
520
521       PR#1028: DoS attacks involving memory consumption
522         Status: 
523
524       PR#1191: setlogin() is not called, causing problems with e.g. identd
525         Status: 
526
527       PR#1204: regerror() exists, use it
528         Status: 
529
530       PR#2284: Can not POST to ErrorDocument - Apache/1.3b6
531         Status: 
532
533       PR#2396: Proposal for TimeZone directive
534         Status: 
535
536       PR#2446: AllowOverride FileInfo is too coarse
537         Status: 
538
539       PR#2760: [PATCH] User/Group for <Directory> and <Location> i.e. not only
540       in global and <Virtual>.
541         Status: 
542
543       PR#2907: suggestion: power up your Include directive :)
544         Status: 
545
546       PR#3018: cannot limit some HTTP methods
547         Status: 
548
549       PR#3677: New ErrorDocumentMatch directive
550         Status: 
551
552       PR#4244: "Files" and "FilesMatch" regexp does not recognize bang as
553       negation operator
554         Status: 
555
556       PR#5993: AllowOverride should have a 'CheckNone' and 'AllowNone' argument
557       instead of only 'None'
558         Status: 
559
560     * mod_access
561
562       PR#537: mod_access syntax allows hosts that should be restricted
563         Status: 
564
565       PR#1287: add allow,deny/deny,allow warning to mod_access
566         Status: 
567
568       PR#2512: <IfDenied> directive wanted
569         Status: 
570
571     * mod_auth-any
572
573       PR#557: ~UserHome directories are not honored in absolute pathname
574       requests (.htaccess)
575         Status: 
576
577       PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
578         Status: 
579
580       PR#1809: Suggestion for improving authentication modules and core source
581       code, problem with 401 and ErrorDocument
582         Status: 
583
584     * mod_autoindex
585
586       PR#1263: Add frame-safe anchor attribute to mod_autoindex links
587         Status: 
588
589     * mod_cgi (and suexec)
590
591       PR#921: suexec Uses cwd before filling it in, doesn't use syslog
592         Status: 
593
594       PR#1176: Apache cannot handle continuation line in headers
595         Status: 
596
597       PR#1120: suexec does not parse arguments to #exec cmd
598         Status: 
599
600       PR#1268: CGI scripts running as Apache user: security (suexec etc.)
601         Status: 
602
603       PR#1285: Error messages could be easier to spot in cgi.log file for suexec.c
604         Status: 
605
606       PR#1905: suexec - Allow modules to set user:group for execution.
607         Status: 
608
609       PR#2360: suexec for general access of user content?
610         Status: 
611
612       PR#2460: TimeOut applies to output of CGI scripts
613         Status: 
614
615       PR#2573: CGI's for general use still have to be run as another user
616       with suExec
617         Status: 
618
619       PR#4241: Need to be able to override shebang line to make CGI scripts
620       more portable.
621         Status: 
622
623       PR#4490: mod_cgi prevents handling of OPTIONS requests
624         Status: 
625
626     * mod_env
627
628       PR#370: Modified PATH environemnt variable is not passed, instead
629       system's is used
630         Status: 
631
632     * mod_headers
633
634       PR#1383: I make mod_headers to modify request headers as well as
635       response ones.
636         Status: 
637
638       PR#1677: mod_headers should allow mod_log_config-style formats in
639       header values
640         Status: 
641
642     * mod_imap
643
644       PR#759: imap should read <MAP><AREA>*</MAP> too!
645         Status: 
646
647     * mod_include
648
649       PR#78: Additional status for XBitHack directive
650         Status: 
651
652       PR#623: A smarter "Last Modified" value for SSI documents (see PR number 600)
653         Status: 
654
655       PR#1145: mod_include
656       Allow for Last-Modified: without resorting to XBitHack
657         Status: 
658
659       PR#1803: patches to mod_include to allow for file tests
660         Status: 
661
662       PR#4459: Suggestion for better handling of Last-modified headers
663         Status: 
664
665     * mod_info
666
667       PR#2415: /server-info doesn't check for the virtual host to list the info
668         Status: 
669
670     * mod_log-any
671
672       PR#1050: Logging of virtual server to error_log as well
673         Status: 
674
675       PR#1358: Selective url-encode of log fields (or maybe a pseudo
676       log_rewrite module?)
677         Status: 
678
679       PR#2073: pipelined connections are not logged correctly
680         Status: 
681
682       PR#4448: Please allow CGI env variables (QUERY_STRING, ...) to be logged
683       with %{}e
684         Status: 
685
686     * mod_negotiation
687
688       PR#3191: no way to set global quality-of-source (qs) coneg values
689       with multiviews
690         Status: 
691
692     * mod_proxy
693
694       PR#362: Mod_proxy doesn't allow change of error pages
695         Status: 
696
697       PR#440: Proxy doesn't deliver documents if not connected
698         Status: 
699
700       PR#534: proxy converts ~name to %7Ename when name starts with a dot (.)
701         Status: 
702
703       PR#612: Proxy FTP Authentication Fails
704         Status: 
705
706       PR#700: Proxy doesn't do links right for OpenVMS files through ftp:
707         Status: 
708
709       PR#980: Controlling Access to Remote Proxies would be nice...
710         Status: 
711
712       PR#994: Adding authentication "on the fly" through the proxy module
713         Status: 
714
715       PR#1085: ProxyRemote make a dead cycle.
716         Status: 
717
718       PR#1166: ``nph-'' not honored (no buffering) for ProxyRemote mapping
719         Status: 
720
721       PR#1290: Need to know "hit-rate" on proxy cache
722         Status: 
723
724       PR#1532: Proxy transfer logging
725         Status: 
726
727       PR#1547: No HTTP_X_FORWARDED_FOR set...
728         Status: 
729
730       PR#1567: ProxyRemote proxy requests fail authentication by firewall
731         Status: 
732
733       PR#1702: mod_proxy to support persistent conns?
734         Status: 
735
736       PR#1878: listing of proxy cache content
737         Status: 
738
739       PR#2314: patterns in ProxyRemote
740         Status: 
741
742       PR#2648: Cache file names in Proxy module
743         Status: 
744
745       PR#3568: Accessing URL through proxy server corrupts data.
746         Status: 
747
748       PR#3605: Some anonymous FTP URLs ask for authentication
749         Status: 
750
751     * mod_rewrite
752
753       PR#1582: mod_rewrite forms REQUEST_URI different than mod_cgi does
754         Status: 
755
756       PR#2074: mod_rewrite doesn't pass Proxy Throughput on internal subrequests
757         Status: 
758
759     * mod_status
760
761       PR#2138: mod_status always displays 256 possible connection slots
762         Status: 
763
764       PR#2343: Status module averages are for entire uptime
765         Status: 
766
767     * apache-api
768
769       PR#1004: request_config field in request_rec is moderately bogus
770         Status: 
771
772       PR#1158: improvements to child spawning API
773         Status: 
774
775       PR#1233: there is no way to keep per-connection per-module state
776         Status: 
777
778       PR#2024: adding auth_why to conn_rec
779         Status: 
780
781       PR#2873: Feedback/Comment on APACI
782         Status: 
783
784       PR#3143: No module specific data hook for per-connection data
785         Status: 
786
787     * generally odds and ends
788
789       PR#2431: A small addition to rotatelogs.c to improve program functionality.
790         Status: 
791
792       PR#2763: mailto tags and bundling bug report script
793         Status: 
794
795       PR#2785: os-aix Support for System Resource Controller
796         Status: 
797
798       PR#2889: Inclusion of RPM spec file in CVS/distributions
799         Status: 
800
801       PR#5713: os-windows [PATCH] install as win32 service with domain account
802         Status: Cannot accept password-as-arg, we should prompt the
803                 user when -k install/-k config with a user argument.
804
805
806
807 Other bugs that need fixing:
808
809     * ap_discard_request should be converted to use the bucket API
810       directly rather than waste cycles copying buffers with the old API.
811
812     * MaxRequestsPerChild measures connections, not requests.
813         Until someone has a better way, we'll probably just rename it
814         "MaxConnectionsPerChild".
815     
816     * Regex containers don't work in an intutive way
817         Status: No one has come up with an efficient way to fix this
818         behavior. Dean has suggested getting rid of regex containers
819         completely.
820         OtherBill suggests: We at least seem to agree on eliminating
821                             the <Container ~ foo> forms, and using only
822                             <ContainerMatch foo> semantics.
823
824     * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
825       sigwaiting thread. We need to work around this, perhaps unless
826       there is hope soon for a fixed glibc.
827
828     * orig_ct in the byterange/multipart handling may not be
829       needed. Apache 1.3 just never stashed "multipart" into
830       r->content_type. We should probably follow suit since the
831       byterange stuff doesn't want the rest of the code to see the
832       multipart content-type; the other code should still think it is
833       dealing with the <orig_ct> stuff.
834         Status: Greg volunteers to investigate (esp. since he was most 
835                 likely the one to break it :-)
836
837 Binaries (probably not till beta):
838
839  Platform                      Avail.  Volunteer
840  ------------------------------------------------------------------
841  AIX 4.3.3                     no      Bill Stoddard
842  Mandrake 8.1                  no      open
843  FreeBSD 4.1                   no      open
844  hppa2.0w-hp-hpux11.00         no      Cliff Woolley
845  i386-pc-solaris2.8            no      Aaron Bannert
846  i386-unknown-freebsd4.5       no
847  i386-unknown-freebsd4.6       no      Cliff Woolley
848  i686-pc-linux-gnu-slackware81 no      Cliff Woolley
849  i686-pc-linux-gnu-rh70        no      Aaron Bannert
850  i686-pc-linux-gnu-rh73        no      Cliff Woolley
851  ia64-hp-hpux11.20             no
852  powerpc-apple-darwin5.5       no      Aaron Bannert
853  powerpc-unknown-linux-gnu     no      Graham Leggett
854  s390-ibm-linux                no      Greg Ames
855  sparc-sun-solaris2.8          no      Jim Jagielski
856  NetWare                       no      Brad Nicholes
857  OS/2                          no      Brian Havard
858  OS/390                        no      Greg Ames
859  Win32-x86                     no      William Rowe