You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@locus.apache.org on 2000/07/29 00:58:30 UTC
cvs commit: httpd-docs-1.3/htdocs/manual/mod mod_isapi.html
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>