Webserver called from inetd - no permanently running daemons author Neil Franklin, last modification 2004.04.07 all portwait, fork(), IP binding, port selection, daemon $UID setting by identd dito all resource limit stuff, user ip filtering started on each HTTP connection, so fast startup, no config files all config by looking at the file system, files and permissions or possibly by command line options, from inetd.conf dito no config changes by .htaccess files, as no parser for these $SERVERROOT set to home of $UID user webmaster admin address is mail address of this user for /~$USER URL $SERVERROOT set to home of $USER virtualhosts by looking for special directories vhost-IP/$IP, vhost-port/$PORT and vhost-name/$NAME each sets $SERVERROOT then to the appropriate directory, before next test $DOCUMENTROOT fixed at the resulting $SERVERROOT/htdocs (not public_html) follow symlink if it is one, so that other placement is possible if "dir" is a symlink with http:// in it, then return "redirect" if no $SERVERROOT/htdocs then return "no pages" error for $PATH/$FILENAME deliver that file all access controls via normal file permissions, for world and $UID|$GID if file has execute bit set, then execute file as cgi-like script no need for extra cgi directories, is xbit hack mode to prevend data clashes use an SUID wrapper to switch to file owners $UID missing wrapper program disables scripting feature for user authentification also SUID wrapper and re-call deamon for this use the normal /etc/passed and similar accounts if missing file, then translate language to file name expansion if still missing return .notfound* file, or built in error message if file is a symlink, then follow it and use referenced file if file is a symlink with http:// in it, then return "redirect" if file is a symlink with nothing in it, then return "gone" for $PATH/ deliver an index* file, if one can be found else make an directory listing, if directory is readable directory index pure text, no icons, no need for files with these $LOGROOT fixed at the resulting $SERVERROOT/logs follow symlink if it is one, so that $DOCUMENTROOT/logs is possible do the log types for which there is an writable file in $LOGROOT log formats fixed or config by command line option, such as IP vs hostname