From d61d1875103984a149ad046588216fa34aea63f0 Mon Sep 17 00:00:00 2001 From: interp Date: Thu, 25 Apr 2002 09:17:33 +0000 Subject: [PATCH] * added description of ROOTED-FILE-OR-DIRECTORY-HANDLER * removed chapter 2.6 (Losing on NextStep) --- doc/latex/httpd.tex | 74 +++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 43 deletions(-) diff --git a/doc/latex/httpd.tex b/doc/latex/httpd.tex index f5436eb..993ce63 100644 --- a/doc/latex/httpd.tex +++ b/doc/latex/httpd.tex @@ -324,6 +324,37 @@ and built upon (exported by the \ex{httpd\=basic\=handlers}-structure): components, and the transaction is aborted if it does. Otherwise, the file is served to the client. \end{defundesc} + +\begin{defundesc}{rooted-file-or-directory-handler}{root +icon-name}{path-handler} + +Dito, but also serve directory indices for directories without +\ex{index.\ob{}html}. \semvar{icon-name} specifies how to generate +the links to various decorative icons for the listings. It can either +be a procedure which gets passed one of the icon tags listed below and +is expected to return a link pointing to the icon. If it is a string, +that is taken as prefix to which the names of the tags listed below +are appended. + +\begin{tabular}{ll} +Tag & Icon's file name \\ +\hline +\ex{directory} & \ex{directory.xbm}\\ +\ex{text} & \ex{text.xbm}\\ +\ex{doc} & \ex{doc.xbm}\\ +\ex{image} & \ex{image.xbm}\\ +\ex{movie} & \ex{movie.xbm}\\ +\ex{audio} & \ex{sound.xbm}\\ +\ex{archive} & \ex{tar.xbm}\\ +\ex{compressed} & \ex{compressed.xbm}\\ +\ex{uu} & \ex{uu.xbm}\\ +\ex{binhex} & \ex{binhex.xbm}\\ +\ex{binary} & \ex{binary.xbm}\\ +\ex{blank} & \ex{blank.xbm}\\ +\ex{back} & \ex{back.xbm}\\ +\ex{\it{}else} & \ex{unknown.xbm}\\ +\end{tabular} +\end{defundesc} \begin{defundesc}{null-path-handler}{path req}{\noreturn} This path handler is useful as a default handler. It handles no @@ -392,49 +423,6 @@ The source files contain a host of support procedures which will be of utility to anyone writing a custom path-handler. Read the files first. \FIXME{Let us read the files and paste the contents here.} -\subsection{Losing} - - Be aware of two Unix problems, which may require workarounds: -\begin{enumerate} -\item NeXTSTEP's Posix implementation of the \ex{get\ob{}pwnam()} - routine will silently tell you that every user has uid 0. This means - that if your server, running as root, does a - \codex{(set-uid (user->uid "nobody"))} - it will essentially do a - \codex{(set-uid 0)} - and you will thus still be running as root. The fix is to manually - find out who user nobody is (he's -2 on my system), and to hard-wire - this into the server: - \codex{(set-uid -2)} - This problem is NeXTSTEP specific. If you are using not using - NeXTSTEP, no problem. -\item On NeXTSTEP, the \ex{ip\=ad\ob{}dress->\ob{}host\=name} - translation routine (in C, \ex{get\ob{}host\ob{}by\ob{}addr()}; in - scsh, \ex{(host\=in\ob{}fo addr)}) does not use the DNS system; it - goes through NeXT's propietary Netinfo system, and may not return a - fully-qualified domain name. For example, on my system, I get - ``\ex{ame\ob{}lia\=ear\ob{}hart}'', when I want - ``\ex{ame\ob{}lia\=ear\ob{}hart.\ob{}lcs.\ob{}mit.\ob{}edu}''. Since - the server uses this name to construct redirection URL's to be sent - back to the Web client, they need to be FQDN's. - - This problem may occur on other OS's; I cannot determine if - \ex{get\ob{}host\ob{}by\ob{}addr()} is required to return a FQDN or - not. (I would appreciate hearing the answer if you know; my local - Internet guru's couldn't tell me.) - - If your system doesn't give you a complete Internet address when you - say - \codex{(host-info:name (host-info (system-name)))} - then you have this problem. - - The server has a workaround. There is a procedure exported from the - \ex{httpd\=core} package: - \codex{(set-my-fqdn name)} - Call this to crow-bar the server's idea of its own Internet host - name before running the server, and all will be well. -\end{enumerate} - %%% Local Variables: %%% mode: latex %%% TeX-master: t