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>