home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / Apache 1.0 / src / TODO < prev    next >
Encoding:
Text File  |  1995-12-04  |  2.2 KB  |  46 lines  |  [TEXT/R*ch]

  1. *) Random stray failures to get_local_addr --- it's returning EINVAL, of all
  2.    things.  Are these clients aborting really, really early or what?
  3.  
  4. *) Clean up inclusion stuff --- PATH_INFO in <!--#exec cgi-->, also
  5.    make sure that if the response handler sets an error code, then an
  6.    error report winds up on the output...
  7.  
  8. *) More complete scoreboard for child processes.  For each process, at least:
  9.    number of requests handled, start time, current request (first line and
  10.    client and server addresses).  Also an httpstat program to print this all
  11.    out readably (thereby giving you your first real shot at figuring out what
  12.    that CGI script which has been chewing up all your CPU for the past few
  13.    minutes thinks it's actually doing...).
  14.  
  15. *) Assess efficiency cost of rputc() in includes.
  16.  
  17. *) Varargs printf-like log_reason (would allow me to ditch most of the
  18.    remaining instances of MAX_STRING_LENGTH).
  19.  
  20. *) Byte ranges, as per recent Netscape/Franks I-D.
  21.  
  22. *) Allow modules to request their own AllowOverrides and Options bits.
  23.    (If nothing else, will get rid of the last bit of directory-handling
  24.    lint in the core --- likewise for CGI and includes lint).
  25.  
  26. *) -c command line option; processed as commands, *after* config files
  27.    (so -c "Port ..." can override).
  28.  
  29. *) multiple util_files:  util_time, util_string, util_sys, util_misc (?).
  30.  
  31. *) Look at multithreading... known problem areas:
  32.    need to throw a mutex around free-block management in alloc.c; need to
  33.    adjust timeout and SIGPIPE handling (who got the SIGPIPE?); need to
  34.    create new per-connection pools in main.c (as subpools of pconf,
  35.    presumably), rather than just using one global ptrans pool, and need
  36.    to triple-check that no thread will want to allocate in the same pool
  37.    as another that is simultaneously running.  Then we get to worry about
  38.    all the obscure C library functions that return pointers to static
  39.    data (the time stuff is particularly bad about this).
  40.  
  41.    Oh yeah, the rfc931 code is nowhere near thread-safe (is it leak-safe?);
  42.    it has a single static jmp_buf, and returns a pointer to static data.
  43.  
  44. *) Possible cleanup --- feed module functions their per-directory configuration
  45.    as a second argument, rather than making them fish it out of r->per_dir_....
  46.