Thu Apr 3 17:05:42 1997 Peter Eriksson * Released version 0.99.76 Wed Apr 2 22:53:42 1997 Peter Eriksson * Changed the Common Log Format day-of-month to use two digits (with leading zero). * Some more patches from RK installed to finish up the implementation of PUT/DELETE. * Removed the (buggy) SIGUSR1 handling in Ackpfd. Wed Mar 26 20:32:49 1997 Peter Eriksson * http.c: Bugfix for RK's multi-virtual-server stuff. Mon Mar 24 21:23:05 1997 Peter Eriksson * fd_gets() can now dynamically allocate it's string. * Fixed the quoted-?-in-URL bug. Side effect of bug fix is that "?anything in url-rewriting rules doesn't work anymore. (How should it work really?) * phttpd.conf: url-authenticate changed name to read-authenticate. url-access changed name to host-access. Similar changes also took place in url.c/urlcache.c/main.c * PH: Changed the way queries are sent to the server in case of a user specifying multi-word choices. * Added patches from RK to allow PUT/DELETE in limited directories based in auth_file authentication. Slightly hacked by me while I applied the patch... Thu Mar 13 17:14:42 1997 Peter Eriksson * Added the "user-basedir" option to "phttpd.conf". If this is set to a directory, then all user requests (~USER) are assumed to be located below $user-basedir/$USER/$user-dir. * Added a safe "s_unlink()". * Fixed a coredumping bug in CGI if running at debug level 5 and having URL like this: http://foo.bar.com/cgi-bin/prog/AB%3FCD * etc/rotate.logs: Updated and cleaned up a lot. Wed Mar 12 19:19:35 1997 Peter Eriksson * "phttpd.gif" - a new logotype for Phttpd has now been included in the HTML documentation! * Default "server_user" to "nobody". Gracefully handle NULL server_user. * Created s_tmpname() and s_tmpfile() in safeio.c to create unique temporary filenames and file (descriptors). * Replaced mktemp() and manual open in NCSA_HTML with s_tmpfile(). Mon Mar 10 23:46:36 1997 Peter Eriksson * Replaced ctype.h/isXXX()/toXXX() macros with 8bit safer versions called s_isXXX() and s_toXXX(). * Rewrote the signal handling totally. Now uses sigwait(). * SIGHUP now closes and reopens the stderr and request log files correctly. * solaris.c:s_sleep(): Use cond_timedwait() instead of sleep(). * Fixed the stderr logging problems when using -w/ackpfd. * solaris.c: Use nice(2) instead of setpriority() * config.so: Use to print a lot of things. * fd_foreach() was changed to not deadlock in case some fd buffer is busy for a long time. * Added a mutex lock around dup2() (in s_dup2()) since it isn't MT Safe according to the SunOS 5.5.1 manual page. Sat Mar 8 21:45:57 1997 Peter Eriksson * Released version 0.99.75 * Fixed a bug in s_strcat() and s_strncat() with handling zero-length strings as the source argument. * Changed two occurances of s_abort() in s_strcat and s_strncat to non fatal errors (they will be logged via syslog()). * Increased a couple of URL and Path buffer sizes from 1024 to 2048. Thu Mar 6 23:37:02 1997 Drazen Kacar * Bug fix for the range handling code, didn't make sure that the range didn't extend beyond the end of the file. Thu Mar 6 13:32:42 1997 Peter Eriksson * Disabled the code in NCSA-HTML that checks for "If-Modified-Since" since it was incorrect. Thu Mar 6 01:06:35 1997 Peter Eriksson * Released version 0.99.74 * Updated "osf.c" and the Makefiles for Digital Unix 4.0 support. Still doesn't work though. * Added "-z text" ld options for linking modules when using Solaris. * Cleaned up the modules Makefile a bit. Wed Mar 5 13:18:36 1997 Peter Eriksson * fscache.h: Changed type of data.content buffer to "char *". * Disabled s_sleep() in safeio.c (use the one in solaris.c instead). Wed Mar 5 01:57:20 1997 Peter Eriksson * FILE: Fixed: The appending of a "/" was accidentially deleted when redirecting to DIR * NCSA-HTML: Add: now supports a "mailto=[user@]domain" tag. Wed Mar 5 00:54:53 1997 Peter Eriksson * Modifed the Makefile in the modules directory to remove all *.so files when "clean"ing instead of just the ones in the LIBS list. Wed Mar 5 00:36:38 1997 Drazen Kacar * Implement simple range requests as per RFC 2068. Tue Mar 4 22:48:52 1997 Peter Eriksson * Changed the failure modes of the safe string copying functions. Now it will silently limit the size of the destination string to the maximum size allowed (and include a terminating NUL). * s_strndup() renamed to s_strxdup(). * s_sprintf() added. If HAVE_VSNPRINTF is defined then this function will use the safe __vsnprintf() available in Solaris 2.5/2.5.1 else it will make an half-hearted attempt at checking for buffer overflows (and will s_abort() in case of error) . * Replaced all calls to sprintf() with the safer version. * Fixed gethostbyaddr() (changed into s_gethostbyaddr_r()) in file.c Mon Mar 3 21:52:30 1997 Peter Eriksson * Fixed a bug in the NCSA-HTML module that caused it to get confused regarding what file was the current one in case of file-not-found errors... (This fixes some coredumping bugs!) * Changed the DIR module to include the server_url in the header. * Corrected the return value from s_strcpy() and s_strcat(). (It incorrectly included the terminating NUL). Sun Mar 2 16:32:25 1997 Peter Eriksson * Added s_strcpy(), s_strcat(), s_strncpy() & s_strncat() to safeio.c. * Changed all occurances of strcpy(), strncpy() and strcat() to the safe versions. And added some checks for the return status code. * Added an "autofail.h" header file that automatically makes code using non-safe versions of some common system calls fail at compilation time. * Removed the LESS feature. * Removed a lot of unneccessary sprintf:s. * Cleaned up the main() function. Sat Mar 1 15:02:05 1997 Drazen Kacar * http.c: Missing terminating CRLF for HEAD requests. * Content-Language headers added to the FILE and NCSA-HTML modules. (see phttpd.conf for an example) Sat Mar 1 13:05:46 1997 Peter Eriksson * Fixed bug in error.c for RK's Multimode: Must use s_gethostbyaddr_r and not the non-MT-sfae gethostbyaddr() * Started moving Solaris-specific code to solaris.c from safeio.c * Generalized the auth code a bit (added some fields to the auth struct in connectioninfo). This make the structure incompatible with previously compiled modules! * Now uses priocntl() instead of setpriority() for Solaris. Sat Mar 1 02:28:37 1997 Peter Eriksson * Added a table "global-modules" to Phttpd.conf. Any modules/shared libraries listed here gets loaded, and made available for other modules to use, at startup. * Added a check for ".nodir" in a directory - if it exists then a directory listing is denied. Sat Mar 1 00:36:36 1997 Peter Eriksson * Added a few missing config files. * Removed the "auth_cfile" module. * Fixed a coredumping bug in NCSA-HTML (would crash if referencing non-existant files in a commands). * Added the command to the NCSA-HTML module. Outputs the full name (Gecos field from Passwd database) inside a HREF pointing to the users' own home pages (/~user). Fri Feb 28 19:59:10 1997 Peter Eriksson * Added a few missing module .conf files. * Fixed a small type in etc/phttpd.init. Fri Feb 28 18:25:16 1997 Drazen Kacar * Updated the ASIS module to work correctly with the HEAD method. Also automatically adds the Date: and Server: headers. Fri Feb 28 03:07:21 1997 Peter Eriksson * Merged most of the Posix Threads code into the main distribution. It doesn't work correctly yet, but it's on it's way atleast... Most of the code compiles on Digital Unix 4.0 (but it doesn't run, and there are missing pieces :-) Fri Feb 28 00:21:44 1997 Peter Eriksson * Added the "next_proxy.so". This is a simple proxy module that forwards HTTP Proxy requests to a specified (in the configuration file) other Proxy server. Thu Feb 27 22:38:02 1997 Roland Kaltefleiter * Added support for encrypted (passwd-style) auth_file authentication files. * Added to the CGI module the possibility to do a chroot, to nice the subprocess and setting some process limits (CPU, Mem and FDs). * Added an option to the DIR module to disable directory listings. Default is to NOT allow listings. * Added to the NCSA-HTML module the possibility to do a chroot, to nice the subprocess and setting some process limits (CPU, Mem and FDs) when the module starts subprocesses. * Added to the FILE module the possibility to enable/disable the PUT method. Default is disabled. * Added support for a sort of multiple-WWW-servers in one process. * proc_run() changed (more parameters passed) * Fixed a missing buf1 arg in error.c:error_access(). * Added error_method_denied() Thu Feb 27 22:06:17 1997 Peter Eriksson * Changed default installation directory from /opt/www to /opt/phttpd. * Changed default database directory to /opt/phttpd/db. * Changed default user public directory from ".public" to "pub" (works much better with PCs and Macintoshes) * Updated the /etc/init.d/phttpd start/stop script. Sun Feb 23 19:34:20 1997 Peter Eriksson * auth_file.c: Allow multiple space/TAB between user & pwd. Sun Feb 23 19:33:59 1997 Peter Eriksson * Released version 0.99.73 Sun Feb 23 02:10:55 1997 Marcus E Hennecke * Lot's of fixes to the ncsa module. Sun Feb 23 01:55:51 1997 Drazen Kacar * HEAD handling errors (missing final \r\n) in a lot of modules. * Three memory leaks in error.c fixed. Sun Feb 23 01:44:11 1997 Valery P. Ukhno * Fixed a coredumping bug in the 404 Not Found error message printing routine (error.c). * Fixed a Not Modifed bug in the ncsa html module. Wed Dec 4 11:06:36 1996 Peter Eriksson * Added support for user customizable error pages. See the table in phttpd.conf. * The PH module now can include a page header and not just a footer. (Directive "header-file"). Wed Apr 10 23:57:29 1996 Peter Eriksson * Major cleanups (support for multiple accept():ing threads on the same file descriptors removed, support for multiple subprocesses removed, stack_size parameter removed). * config.so: generalized a bit (no longer uses a hardcoded list of variables to display - takes it's info from the global_cfg_options struct/table). * Supports a way to handle reconfigure/restart at SIGHUP. Only works for Phttpd's started from Ackpfd currently: Interacts with Ackpfd to start a new server, and terminates itself in a way which should avoid disruptions of service. Wed Apr 3 20:54:12 1996 Peter Eriksson * auth_file now sets the cip->auth.user field correctly. Tue Mar 26 21:42:53 1996 Peter Eriksson * Added a super-simple text-file user/password "auth_file.so" authorization module. * Virtualized the User/Password authorization code - it is now possible to write authentication dynamically loadable modules. The system password authentication stuff is now moved into an "auth_syspwd.so" module. Tue Mar 26 09:58:09 1996 Peter Eriksson * Fixed a bug in the url_rewriting parts that I introduced in .72 Mon Mar 18 20:45:41 1996 Peter Eriksson * Released 0.99.72 * Fixed a "spelling" error (SIGKILL when I meant SIGTERM :-) in main.c * Makefile improvement when doing "make install.all" * Added a sanity check in the dir module in case some user tries to access a file with trailing slashes... * Now truncates the pidfile correctly. Tue Mar 12 11:21:46 1996 Peter Eriksson * Madvice flag argument isn't an or:able bit field. Fixed in fscache.c, mbox.c, ncsa-html.c Thu Feb 29 23:32:19 1996 Peter Eriksson * Released 0.99.71 * CGI&NCSA: Added/fixed "LOCAL_HOST" environment variable. * phttpd.h: Moved the "struct addressinfo_s" out to level 0. * http_sendheaders(): Change the second argument ("time_t" to "struct connectioninfo") * Implemented "Connection:" reply. Sun Jan 21 19:02:29 1996 Peter Eriksson * fdstdio: Added ENXIO to the list of errno's to log at level LOG_INFO instead of LOG_ERR in fd_write(). * Moved the /cgi-bin/* pattern match up to the top of the list in the distributed "ptttpd.conf" file. Thu Jan 11 17:09:14 1996 Peter Eriksson * Now logs the original URL, and not the rewritten one. * CGI: Added environment vars "PHTTPD_ORIG_URL" and "PHTTPD_ORIG_REQUEST", containing the original URL/Request strings before rewriting. Wed Jan 10 20:24:28 1996 Peter Eriksson * Corrected the parsing of IDENT return data. * Fixed erroneous double HTTP headers output in the file module (only happens if a file as too restrictive permissions) * Fixed CGI problems with POST Jan 9 23:37:56 1996 Peter Eriksson * Released 0.99.70 Sat Jan 6 12:28:30 1996 Peter Eriksson * Added IDENT support. Enable with the config file option "ident-lookups = true" if you really need it. * Log file now outputs "-" instead of "0" for log entries where the "length" parameter isn't available. * CGI: Added config option "copy-environ", a colon-separated list of environment variables to pass down from the parent (Phttpd) process to CGI subprocesses. Sat Jan 6 00:26:19 1996 Peter Eriksson * Fixed binary data passing bug in NPH-style CGI scripts. * Removed the special-caseing code for NPH-style scripts (not needed). Thu Jan 4 00:34:54 1996 Peter Eriksson * The default uid/gid the server runs as if nothing else is specified is now nobody/nobody (60001/60001). Thu Jan 4 00:18:16 1996 Peter Eriksson * Moved the Referer and User-Agent log fields to the end of the line, and made them optional (extended-logging = true). * Now logs the IDENT "user" and authenticated "user" fields in the log file (if data is available). * Fixed coredumping problem with files with insufficent access rights on them. Wed Jan 3 00:15:15 1996 Peter Eriksson * Added phttpd.conf bool option: keepalive-connections to control if the "Connection: Keep-Alive" feature should be supported or not. Tue Jan 2 08:52:46 1996 Peter Eriksson * Now also logs the Referer: and User-Agent: fields in the Common Log Format log file. Fri Dec 22 17:20:21 1995 Peter Eriksson * FILE: Send default file type for suffix-less files. * Removed an unneccessary h_errno declaration to fix a UnixWare compilation error. Wed Dec 13 19:21:45 1995 Peter Eriksson * DIR: Fixed core-dumping bug when doing dir listings, and the directory contains symbolic links pointing at non-existing fs objects and one isn't running in debug mode. Sun Dec 10 14:34:10 1995 Peter Eriksson * NCSA-HTML: Implemented the feature. Thu Dec 7 20:35:01 1995 Peter Eriksson * Added a set of cover routines for opendir/readdir/closedir to implement a workaround for AFS problems, and it also makes it work better generally. Thu Dec 7 15:45:04 1995 Peter Eriksson * Released 0.99.69 Wed Dec 6 15:29:18 1995 Peter Eriksson * Found and fixed bugs in usercache/hostcache:update. Tue Dec 5 21:11:24 1995 Peter Eriksson * Fixed another update-handling bug i all caches. Tue Dec 5 16:50:14 1995 Peter Eriksson * Fixed coredumping bug i usercache handling. Mon Dec 4 17:01:17 1995 Peter Eriksson * ackpfd: Some file descriptor (stdin, stdout, stderr) handling fixes to avoid some hangups. * Fixes with the accept_lock mutex and with the "-w" wait-mode handling Sat Dec 2 17:39:30 1995 Peter Eriksson * Added User (name -> passwd) and Host (name & addr -> hostent) caches. Fri Dec 1 14:47:20 1995 Peter Eriksson * Fixed the handling of multiple accept()ing threads and processes. * Added IPTOS_LOWDELAY IP option. Wed Nov 29 18:30:49 1995 Peter Eriksson * MBOX module: Fixed Keep-Alive problem. Mon Nov 27 18:09:14 1995 Peter Eriksson * CGI: max-environ (the max number of environment vars per process, default 256) and max-processes (if non-zero, limits the max number of concurrent CGI processes, default = 0). Mon Nov 27 14:20:06 1995 Peter Eriksson * Fixed the default values for "-L", "-P", "-C" and "-E" options which got lost in the change to the new config stuff. * ptester: Now uses the real time instead of the time which should have passed. Also handles keepalive connections correctly when calculating the number of bytes/requests etc.. Mon Nov 27 02:50:29 1995 Peter Eriksson * fd_flush() now uses a background thread to write out the data, this increases the interleaving possible and (for example) makes "Keep-Alive"-style connections 4-5 times faster. Should also increase the speed of proxy connections and CGI-scripts output. Thu Nov 23 17:11:48 1995 Peter Eriksson * Changed the calling interface to the modules "pm_init()" function for greater flexibility in the future. Wed Nov 22 21:24:23 1995 Peter Eriksson * Rewrote parts of the command line / config file parsing. One can now use long options on the command line. See "phttpd --help" for more info. * Disabled the FD_LOCK in fdstdio. * Moved some small utility programs to "src/utils". Wed Nov 22 14:44:10 1995 Peter Eriksson * Update the last-modified field correctly in ncsa-html. Wed Nov 22 11:43:53 1995 Peter Eriksson * CGI-module now creates some convenience variables (not part of the CGI/1.1 standard) of the form "PHTTPD_QUERY_var" for each QUERY_STRING "var=val" pair. It also decodes the "var" and "val" strings. Tue Nov 21 01:48:50 1995 Peter Eriksson * The documentation updated slightly. Mon Nov 20 01:22:51 1995 Peter Eriksson * A "gopher_proxy" module added. Sun Nov 19 22:42:19 1995 Peter Eriksson * Added an "orig_url" member to the "httpinfo" structure which will contain the original URL header (before any rewriting has occured). Sun Nov 19 19:55:53 1995 Peter Eriksson * Fixed a core-dumping bug which occurs if one specifies a server-user which doesn't exist in the system, and one does not specify a server-group. Thu Nov 16 14:37:31 1995 Peter Eriksson * MAP: Handle last line in map modules correctly. Documentation update (from Marcus). Wed Nov 15 17:55:09 1995 Peter Eriksson * Modified the access code to use getspnam_r() instead of getpwnam_r(). Wed Nov 15 15:46:36 1995 Peter Eriksson * Pragma: No-Cache now supported (causes the Fscache to always reload the files or dirs). * -d now prevents stderr from being changed to /dev/null. Tue Nov 14 21:48:29 1995 Peter Eriksson * MAP module now accepts \r as end of line delimitors also. * CGI module updated to be CGI Version 1.1 compliant. * Updated the CGI module's handling of extra HTTP headers. * Fixed the CGI module's handling of PATH_INFO and PATH_TRANSLATED. * fd_gets() now also accepts \r as an end-of-line char. Tue Nov 14 01:27:13 1995 Peter Eriksson * Released 0.99.68 * Added the same type of Mutex wrappers around the gethost... calls as is used around the getpw... and getgr... calls to fix hangs caused by the buggy RPC code in the YP and NIS+ libraries. Tue Nov 7 16:29:14 1995 Peter Eriksson * Fixed memory leak in pm_exit() in several modules Mon Nov 6 21:15:02 1995 Peter Eriksson * A new module "http_proxy" implemented which is a (very) simple HTTP proxy module. Not currently cacheing. Mon Nov 6 18:48:28 1995 Peter Eriksson * Fixed a deadlocking bug in cache.c:garb_thread(). * Modified the PH module to make it possible to specify a footer text to include. Thu Nov 2 23:41:41 1995 Peter Eriksson * New version of strmatch.c from Marcus which fixes a bug that prevented it from matching "foo*" to "foo". Thu Nov 2 21:58:08 1995 Peter Eriksson * Added an AFS readdir_r() bug workaround. If you want to use Phttpd to do directory listings on AFS volumes you _may_ have to make sure "ENABLE_AFS_WORKAROUND" is defined in the top level Makefile, and then in "phttpd.conf" add "posix_path_max = 1024". * Found and fixed a deadlocking bug in fscache. * Fixed a bug in the DIR module where failure to stat() files in a directory caused a core dump. Thu Nov 2 08:39:17 1995 Peter Eriksson * Added "LOCAL_ADDR" and "LOCAL_HOST" environment variables for CGI scripts (gives the local IP# and hostname for the server, can be useful for servers serving multiple hosts). Wed Nov 1 11:48:21 1995 Peter Eriksson * Fixed a memory leak in the DIR module. * Fixed security problem with AUTHENTICATE and CGI scripts. * Install ".purify" Purify option files. Tue Oct 31 23:50:26 1995 Peter Eriksson * Refixed SIGUSR1 to do what it used to do. * Added a SIGTERM handler to terminate nicely. Mon Oct 30 14:29:52 1995 Peter Eriksson * DIR: Added a safety fix (dir.size == 0) before alloca(). * DIR: Fixed the logging of the URL for counting the requests to the directories if one uses in "index.shtml" files. Sun Oct 29 22:24:09 1995 Peter Eriksson * Released 0.99.66 * Added cache (URL & FS) statistics. Sun Oct 29 13:57:39 1995 Peter Eriksson * Added a fix for a core-dumping bug in the MAP module. (from Greg Moeller ) Sat Oct 28 17:23:32 1995 Peter Eriksson * Fixed the url-rewrite, url-redirect, url-predirect, url-access and url-authenticate code. Fri Oct 27 18:23:22 1995 Peter Eriksson * Print the directory icons in a multicolumn table * Reactivated the "add_href"-table in the DIR module. Thu Oct 26 19:16:42 1995 Peter Eriksson * Rewrote the DIR module (better looking output :-) Still more things to be done there though. * Modified the fscache to 1) work better and 2) do an fscache lookup for every file found when loading a directory content) Wed Oct 25 17:31:40 1995 Peter Eriksson * Added a background cache garbing thread for caches. * Modified the single "ttl" param into three ("refresh", "ttl" and "gc-interval"). * Only check stat-struct members st_size, st_mtime and st_inode when comparing if the file has been changed. Tue Oct 24 16:57:03 1995 Peter Eriksson * Replaced the s_malloc() of struct connectioninfo in the accept_thread with a statically allocated array to increase parallellism. * Added an URL (rewrite,redirect,access,auth,handler) cache. * Added ECONNRESET to the EPIPE checks. Tue Oct 24 14:16:41 1995 Peter Eriksson * Added support for the "Connection: Keep-Alive" feature. * Implemented a smart file system cache (fscache.c) and a generic cache type. * Fixed a bug in the dir module, which caused it to sometimes not display all entries (Also rewrote it due to the fscache above). * The file and asis modules also rewritten to use the fscache. Sat Oct 14 02:35:34 1995 Peter Eriksson * Modified the modules table, and the file:content-type and file:content-encoding tables to use hashtables. * Implemented a hashtable for faster table searches. Fri Oct 6 05:55:07 1995 Peter Eriksson * Added a "accept-threads" (-A) option to Phttpd so that one can have multiple threads doing accept() concurrently. Tue Oct 3 00:39:05 1995 Peter Eriksson * Modifed the url rewriting stuff to also be able to include "request" stuff (the text after a "?" in an URL) thanks to a patch from Thomas Bellman Mon Sep 25 18:47:57 1995 Peter Eriksson * Added a "server-processes" config file directive to be able to run multiple parallell server processes. This seems to not work 100% correctly yet, due to some bugs in Solaris. * Made my email address not clickable in error messages. Thu Sep 14 11:18:57 1995 Peter Eriksson * Modified the "/etc/init.d/phttpd" startup script to specify a full path to the "ndd" program. * Updated the patch list in "INSTALL". Mon Sep 11 21:16:10 1995 Peter Eriksson * Updated the "dir" module with changes from Guenther Fischer. (Sorted, and also display file size and modification times). Sun Sep 10 17:30:11 1995 Peter Eriksson * Released 0.99.64 * Added a hostname resolving background thread, enabled by a phttpd.conf option ("hostname-lookups = true"). * Modified cgi.c to add the "REMOTE_HOST" env. var. if the client hostname is available. Other vars added: REMOTE_IDENT (not currently set since no IDENT lookup is done) AUTH_TYPE (set to the authentication type if used) REMOTE_USER (set to the authenticated user if used) * Modified logger.c to log the hostname if available. * Modified access.c to enable "host" access control in addition to the previous "address" keyword. * Added authentication level "Basic", using the system password database. Fri Sep 8 17:41:45 1995 Peter Eriksson * Released 0.99.63 * Added a simple host IP# access control scheme. Configurable from phttpd.conf, see the "url-access" section. See the file "examples/sample.acl" on how to control access. * Rewrote the url-redirect and url-permanent-redirect handling to also use "strmatch". Wed Sep 6 00:28:27 1995 Peter Eriksson * Moved the s_close() call in modules/file up to just after the mmap() call. This shortens the time the file descriptor is in use so it won't have to stay open all the time while the file contents is transmitted to the client. Sat Sep 2 00:31:08 1995 Peter Eriksson * Updated the syslog() messages in fdstdio.c Fri Aug 18 23:56:18 1995 Peter Eriksson * Further updates of Dhttpd and Ptester. Wed Aug 16 00:22:19 1995 Peter Eriksson * Released 0.99.62 * ASIS: Removed an erronous call to fd_putc('\n') if HTTP/1.0 * Updated dserver and ptesters with new command line options (now understands "-H" for help) * Changed the default "socket-sndbuf" and "socket-rcvbuf" parameters to 0 (ie, don't set it: ie, use 8KB). It turns out the setsockopt() calls to resize these buffers take quite a long time... * Renamed "dserver" to "dhttpd". Sat Aug 12 00:24:08 1995 Peter Eriksson * mmap() returns MAP_FAILED on error, not NULL (from Chris) Fri Aug 11 18:04:18 1995 Peter Eriksson * Released 0.99.61 * Upp'ed the listen() backlog default parameter to 1024 * Updated the "ptester" module. * Added a "dserver" dummy WWW server (for benchmarking purposes). * Modified the "dir" module to make use of the "suffix-path". Wed Aug 9 12:33:21 1995 Peter Eriksson * Updated "strmatch.c" and "atotm.c" from Marcus. * Added "asis" module from Marcus. * Added a "suffix-path" option to the main config file. This can be used to try to locate one of multiple files by appending a suffix from the suffix-path list. Tue Aug 8 16:45:15 1995 Peter Eriksson * cgi.c: Added a fd_shutdown() call to correctly handle CGI scripts that doesn't output any data. Tue Aug 8 07:16:26 1995 Peter Eriksson * cgi.c: Fixed fcntl() calls: Should have used GETFL/SETFL instead of GETFD/SETFD. * Default to use Bound threads instead of Unbound ones. It seems like there are some problems with unbound threads scheduling on monoprocessor machines or something. It works better with Bound threads anyway. Sun Aug 6 22:22:01 1995 Peter Eriksson * More cgi.c cleanups: Moved the thr_join() to the end of the request handler. Don't output a CONTENT_LENGTH message if none is sent. Fri Aug 4 23:29:00 1995 Peter Eriksson * Fixed the "Forwarded:" message (from Chris) Fri Aug 4 09:29:18 1995 Peter Eriksson * Removed the mutex-lock in s_dup2(). * Updated the "mbox.so" module. Thu Aug 3 22:09:10 1995 Peter Eriksson * Added a 'url-permanent-redirects' table in phttpd.conf, and modified http_redirect() to take a code argument to specify if the redirect should be 301(permanent) or 302(temporarily). * Cleaned up cgi.c some more. Thu Aug 3 21:14:50 1995 Peter Eriksson * Added a third argument to fd_relay(), a flag to select if the relaying should be undirectional or bidirectional. Thu Aug 3 08:02:34 1995 Peter Eriksson * Fixed a bug in fdstdio.c:_fd_fill() which would terminate reads prematurely at 8192-boundaries. Wed Aug 2 20:30:30 1995 Peter Eriksson * Fixed a bug in html.c:html_strquote() which would cause the server to occasionally core dump with a SIGSEGV. * Updated Marcus' ncsa-html.c file. Wed Aug 2 08:55:46 1995 Peter Eriksson * Fixed problems with _fd_fionread() and _fd_read() with normal files. * Changed getsockname() syslog level to LOG_INFO. * Don't used BOUND threads by default for the requests (causes problems sometimes, especially for servers with many concurrent requests during long times - the problems show up as system hangs and similary). Bound threads (which makes the server handle the requests faster can still be enabled by using the command line option "-B" or the "bound-threads = true" config file option. Mon Jul 31 22:23:57 1995 Peter Eriksson * Released version 0.99.60. * Added Mats Öhrman 's "mbox.so" module. * Modifed html_email() to be slightly smarted with regard to if it should put '<' and '>' around the email address. Mon Jul 31 20:53:17 1995 Peter Eriksson * Added Marcus' NCSA-style server-side includes. (ncsa-html.so) * Fixed a bug in logger.c:log_reopen(), called mutex_unlock() with the wrong mutex variable. (From Marcus) * Updated "isproxy.so" to use fd_connect() and struct sockaddr instead of the text versions (increases the speed of connections in a big way). * Added a "-B" command line option to make it possible to select between using BOUND threads or not for the requests. Mon Jul 31 09:32:40 1995 Peter Eriksson * Fixed a big bug in safeio.c:s_get[pw,gr]* functions - they wouldn't release their mutex if called with an unknown user/group. * Added a "s_abort()" function that doesn't send signals (which causes a thread switch - which is very annoying then running it under a debugger). * Fixed some file descriptor leaks and memory bugs in the CGI module. * Modified "ptester" to use fd_connect() (with struct sockaddr_in) instead of the old fd_connect()/fd_sconnect() - removes a lot of slow (and uneccessary) string->struct sockaddr translations. * Some smaller casting fixes to make Sun's C compiler stop complaining. * Fixed a couple of Makefile bugs. Sun Jul 30 14:17:26 1995 Peter Eriksson * Changed some syslog() priorities. * Added calls to initgroups() in ackpfd * Renamed phttpd's config file options "server-uid" and "server-gid" to "server-user" and "server-group" and fixed the code so one can use names for those options. Also added an initgroups() call. Sat Jul 22 01:12:52 1995 Peter Eriksson * Fixed a couple of bugs in mime.c (from Marcus) * Updated the var.so module (from Marcus). * src/ackpfd/ackpfd.c (main): Added calls to getpwnam() and getgrnam(). Sat Jul 22 00:40:16 1995 Peter Eriksson * Added Marcus' var.so module. Fri Jul 21 19:46:21 1995 Peter Eriksson * Renamed fd_connect() to fd_sconnect(), and created a new fd_connect() that takes a struct sockaddr as an argument. Fri Jul 21 13:43:42 1995 Peter Eriksson * Fixed all thr_create() calls to use the stack_size variable. * Fixed a duplicate s_free() call in mime.c (From Chris@Infoseek) Thu Jul 20 14:59:52 1995 Peter Eriksson * Moved default location of "phttpd.conf" file from /etc to INSTROOT/etc/phttpd.conf. Also modified Makefile and main.c to use relative paths from INSTROOT instead of hardcoded absolute paths. * Added "stack-size" config file option. Needed since the default stack size for PC's running Solaris 2.4 is much too small. Thu Jul 20 03:22:20 1995 Peter Eriksson * CGI module: PATH_TRANSLATED is now full (absolute) path. Thu Jul 20 01:40:23 1995 Peter Eriksson * Added the URL counting patches from Marcus. Wed Jul 19 23:08:28 1995 Peter Eriksson * Added "path" config option for the CGI module to enable the PATH for CGI scripts to be user-configurable. (From Marcus) * Fixed a bug in the new s_realloc() function. Tue Jul 18 20:05:57 1995 Peter Eriksson * Created a "safeio.c" file that contains cover routines for syscalls (and other) that can be interrupted - or need other special handling. * Removed "xalloc.c" -> functions moved to safeio.c (and renamed). * Applied some fixes to the MAP modules from Marcus: Return status 204 instead of 200 if user clicked outside any "active" region and no default URL has been specified. "point" can now be used in CERN compatibility "mode". Fixed a "hip->length" bug. Tue Jul 18 02:25:09 1995 Peter Eriksson * Released version 0.99.59. * Added a workaround to fix the fact that getpwnam_r() doesn't seem to be as MT-SAFE as it should be - this should fix a number of hangs seen when multiple users files are accessed concurrently. (Fix is a mutex lock around getpwnam_r()). * Added "stderr-file" config-option and "-E" command-line option to control where stderr output is being sent (applies to debug output and stderr output from CGI scripts). * SIGUSR1 -> increase debug level with +1 * SIGUSR2 -> decrease debug level with -1 * CGI module: Only try to setuid/setgid to some other user when running CGI scripts if the server was started by "root". Mon Jul 17 14:50:32 1995 Peter Eriksson * http.c:http_not_modified(): Removed the Last-Modifed and Content-Type header lines. Wed Jul 12 21:36:20 1995 Peter Eriksson * Released 0.99.58. * Added a "web_admin_email" configuration option to phttpd.conf and modified the error message sent by the server to include this information if available. Also added "web_admin_name" and "web_admin_home" options. * Modified the CGI module to not send things written to stderr to the client. * Included Marcus' strmatch.c and atotm.c files/functions. * Modified url.c:url_gethandlers() to use strmatch(). Also modified the default phttpd.conf file. * Modified the FILE module to use atotm() on the "if-modified-since" code. * Fixed a bug in fdstdio:_fd_read(). * Added a DOCUMENT_ROOT environment variable in the CGI module. * Added a mime_freeheaders() call at the end of mime_getheaders() incase of errors to close one memory leak. * mime_getline(): EOF seen in a line causes the whole line to be invalid and it to return -1. * Fixed the setuid/setgid code in the CGI module so it won't run users scripts as root if the server is running as root.. (and the server isn't setuid' to some other user). * Added three configuration options to the CGI module, two to allow CGI scripts not in users directories to be run as some other user than the server itself. And a third option to control if users are allowed to run CGI scripts or not. Thu Jun 22 22:10:20 1995 Peter Eriksson * Modified the DIR module to be more flexible in the way icons are selected. Also modified the dir.conf file. Thu Jun 22 21:49:29 1995 Marcus E. Hennecke * Added "server-addr" to /etc/phttpd.conf so it is possible to bind a server to a specific interface (to facilitate multiple servers on one machine). Thu Jun 22 00:56:53 1995 Peter Eriksson * Released 0.99.57 * Fixed METHOD=POST bug in the CGI module. * Added the "TZ" environment variable in the CGI module Thu Jun 22 00:12:48 1995 Marcus E. Hennecke * Modified the "map" module to be NCSA and CERN compatible. Thu Jun 15 23:23:29 1995 Peter Eriksson * Added the "default-type" config option for "file.so". * Fixed HTTP return code bug for "If-Modified-Since:". Sat Jun 3 12:43:38 1995 Peter Eriksson * Added a "pid-file" configuration option to /etc/phttpd.conf Fri Jun 2 13:28:19 1995 Peter Eriksson * Released 0.99.56 * Some more CGI module fixes. Thu Jun 1 14:12:51 1995 Peter Eriksson * Released 0.99.54 * Modified the CGI module to support path arguments like: /cgi-bin/imagemap/foo/bar/fubar.gif (where /cgi-bin/imagemap is the program to execute) * Modified the CGI module to handle variants of Headers transmitted from the CGI process better. Tue May 30 01:56:15 1995 Peter Eriksson * Released 0.99.53 * Added the "logcvt-ip2n" and "rotate.logs" program and script Sun May 28 22:55:07 1995 Peter Eriksson * Released 0.99.52 * Moved some global variables and init code to fdstdio.c * Removed the '-o' command line option (and config file option) * Added the "ptester" program - can be used to benchmark WWW servers. Wed May 24 16:14:13 1995 Peter Eriksson * Released 0.99.51 * Close and reopen the log file when receiving SIGHUP * Removed redundant http:// from startup message * Fixed timezone handling around 00:00 o'clock. * Updated the Phttpd information page