wrowe 00/07/28 15:58:29
Modified: htdocs/manual/mod mod_isapi.html Log: Clarify a bunch of useful things for programmers, remove the broken hyperlink, and just polish these docs a bit. Revision Changes Path 1.6 +62 -7 httpd-docs-1.3/htdocs/manual/mod/mod_isapi.html Index: mod_isapi.html =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/mod/mod_isapi.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- mod_isapi.html 1998/09/17 14:14:57 1.5 +++ mod_isapi.html 2000/07/28 22:58:29 1.6 @@ -17,16 +17,15 @@ <H1 ALIGN="CENTER">Module mod_isapi</H1> <P>This module is contained in the <CODE>mod_isapi.c</CODE> file, and is - compiled in by default. It provides support for ISAPI Extensions when - running under Microsoft Windows. Any document with a handler of - <CODE>isapi-isa</CODE> will be processed by this module. + compiled into the Windows distribution by default. It provides support for + ISAPI Extensions when running under Microsoft Windows. Any document with + a handler of <CODE>isapi-isa</CODE> will be processed by this module.</P> <H2>Purpose</H2> -<P>This module implements the <A - HREF="http://www.microsoft.com/win32dev/apiext/isapimrg.htm">ISAPI - Extension</A> API. It allows Internet Server Applications (<EM>i.e.</EM>, ISAPI - Extensions) to be used with Apache for Windows. +<P>This module implements the Internet Server Extension API. It allows + Internet Server Applications (<EM>i.e.</EM>, ISAPI .dll handler modules) + to be used with Apache for Windows, subject to the noted restrictions.</P> <H2>Usage</H2> @@ -68,6 +67,62 @@ not support ISAPI Filters. Support for filters may be added at a later date, but no support is planned at this time.</P> +<H2>Programmer's Journal</H2> + +<P>If you are programming Apache 1.3 mod_isapi modules, you must limit your + calls to ServerSupportFunction to the following directives:</P> + +<DL> + <DT>HSE_REQ_SEND_URL_REDIRECT_RESP + <DD>Redirect the user to another location.<BR> + This must be a fully qualified URL (e.g. http://server/location). + <DT>HSE_REQ_SEND_URL + <DD>Redirect the user to another location.<BR> + This cannot be a fully qualified URL, you are not allowed + to pass the protocol or a server name (e.g. simply /location).<BR> + This redirection is handled by the server, not the browser.<BR> + <STRONG>Warning:</STRONG> in their recent documentation, Microsoft + appears to have abandoned the distinction between the two + HSE_REQ_SEND_URL functions. Apache continues to treat them as two + distinct functions with different requirements and behaviors. + <DT>HSE_REQ_SEND_RESPONSE_HEADER + <DD>Apache accepts a response body following the header if it follows + the blank line (two consecutive newlines) in the headers string + argument. This body cannot contain NULLs, since the headers + argument is NULL terminated. + <DT>HSE_REQ_SEND_URL + <DD>Redirect the user to another location.<BR> + This cannot be a fully qualified URL, you are not allowed + to pass the protocol or a server name (e.g. simply /location) + <DT>HSE_REQ_MAP_URL_TO_PATH + <DD>Apache will translate a virtual name to a physical name. + <DT>HSE_REQ_DONE_WITH_SESSION + <DD>Apache considers this a no-op, since the session will be finished + when the ISAPI returns from processing. +</DL> + +<P>Apache returns FALSE to any other call to ServerSupportFunction, and + sets the GetLastError value to ERROR_INVALID_PARAMETER.</P> + +<P>ReadClient is not truly supported. The entire body of the message, + up to 49152 bytes, is sent to the client in the initial request. + If the request is longer, the ISAPI extension is never called. + Calling ReadClient, however, does no harm.</P> + +<P>WriteClient is supported, but only with the HSE_IO_SYNC flag or + no option flag (value of 0). Any other WriteClient request will + be rejected with a return value of FALSE, and a GetLastError + value of ERROR_INVALID_PARAMETER.</P> + +<P>GetServerVariable is supported, although extended server variables + do not exist (as defined by other servers.) In general, all CGI + environment variables are available through GetServerVariable.</P> + +<P>Apache 2.0 mod_isapi will support additional features introduced in later + versions of the ISAPI specification, as well as limited emulation of + async I/O and the TransmitFile semantics. Apache 2.0 may also support + caching of ISAPI .dlls for performance. No further enhancements to the + Apache 1.3 mod_isapi features are anticipated.</P> <!--#include virtual="footer.html" --> </BODY> </HTML>