3.0.7 -> 3.0.8 ~~~~~~~~~~~~~~ * Added simple logging support via the conf file directive "log". You can cause awhttpd to reopen the log file by sending it the HUP signal. * This is the end-of-life release for awhttpd 3.0. It will be superseded by Antiweb 4.0. 3.0.6 -> 3.0.7 ~~~~~~~~~~~~~~ * Applied an excellent patch from Nicolas Benoit that added come extra CGI functionality. Specifically it adds PATH_INFO and SCRIPT_NAME to a CGI script's environment. This allows AW to use certain CGI scripts that depend on these variables - like viewcvs. * Removed SERVER_SOFTWARE from CGI script's environment because my version of PHP doesn't like this variable at all. * Since Nicolas' patch changed the fork()ing method to the more conventional approach, I needed to add some zombie reaping code. Before, when we fork()ed a CGI process, the child would become the server and the parent the CGI process. That way once the CGI process exited, init would automatically wait() upon the process and there would be no zombies. Now we follow the more conventional approach: the server stays as the parent and handles SIGCHLD signals and manually wait()s upon the childs. Note: manually wait()ing on the process is more portable (HPUX et al) than explicitly ignoring SIGCHLD signals so that's what we do. * Rewrote some of Nicolas Benoit's trycgi_withpathinfo() so that it works under several different AW configurations. Also, this rewrite should be somewhat more efficient as less copying is done. This implementation makes use of a trick in how split() works. I call it unspliting. :) * Ripped out all legacy CGI code that would let you pass CGI arguments in as decoded environment variables. This has been disabled since 3.0.2. Updated the docs to reflect this. 3.0.5 -> 3.0.6 ~~~~~~~~~~~~~~ * Created a strncpy() wrapper to avoid potential non-null termination issues with libc's strncpy() on advice from Werner Almesberger. * Adjusted a possible issue with the split() and confsplit() functions on advice from Werner Almesberger. * Checked the value returned from write() in procsendfile() more carefully. Now, in the event that a write is only partially completed, awhttpd will not drop any data. With the default buffer sizes and checking the "writability" of a socket before write()ing to it, this should never happen but, as Werner Almesberger pointed out, this is better practise especially when targetting a diverse collection of unix kernels. * Fixed a CHANGES entry for the last release. My modification made Jon's patch use an automatic buffer, not a static buffer. 3.0.4 -> 3.0.5 ~~~~~~~~~~~~~~ * Applied an excellent patch from Jon Forsberg (zzed) that lets AW reply in directory listings with correctly formed URIs. That is, URIs with "unusual" characters hex encoded (' ' -> %20, for instance). * Slightly modified Jon's patch so it uses an automatic buffer instead of a dynamic buffer for efficiency's sake. * Made it so that the directory listing displays the URL that is being browsed, rather than just the directory. * Fixed some spelling errors in the documentation. * Added some names into AUTHORS that I forgot to add in the last release. 3.0.3 -> 3.0.4 ~~~~~~~~~~~~~~ * A scalability fix: Closes the directories scanned in permcheck() so we don't keep file descriptors open unnecessarily. Helps when you have low "ulimit -n"s and a large directory tree. * Closes the configuration file's descriptor too for pretty much the same reason as above. * Fixed some portability issues on Solaris thanks to Thomas Götz. * Added a full fledged Win32 port of AW on the website thanks to Doug Currie, aka "e". * Added a file PORTABILITY that describes portability issues of Anti-Web for a variety of operating systems. * Added a tip from Mathias Eberle about compiling on HPUX to the new file PORTABILITY. 3.0.2 -> 3.0.3 ~~~~~~~~~~~~~~ * A new feature, the "resume" feature was added. This was requested by Peter C. Gravelle. AW now supports a subset of the Content-Range header. It supports just enough of the protocol to make it possible to resume downloading a file. * Added a file 'misc/update_dates.sh' which makes it easy to update the copyright dates for AW. 3.0.1 -> 3.0.2 ~~~~~~~~~~~~~~ * A possibly nasty security bug was discovered by Jeff Epler. If a local user has write access to a world readable part of the file system AW is running on, he can gain access to the user privileges that AW runs as, typically the "nobody" user. * Disabled environment variable being put into child processes by CGI scripts. Scripts now have to rely on the command line. (As PHP does) * Some more problems were uncovered in the Solaris port by Peter Ohlerich again. Hopefully it should compile now * Peter Ohlerich submitted a new Makefile which has been included as Makefile.SunOS - hopefully it will be useful to SunOS users and porters to different operating systems. * Updated the CHANGES file because of some misleading information 3.0.0 -> 3.0.1 ~~~~~~~~~~~~~~ * Fixed an embarassing stability bug that was discovered by Angelo Brigante * Added the 3.0 CHANGES file that you're reading now * Readded the AUTHORS file * Updated SCRIPTING a tad * Created an option LIMITEDCGI that can be specified in the Makefile. This is to get around the fact that Solaris doesn't have a setenv() function. Thanks to Peter Ohlerich for pointing this out.