httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthew Gray <>
Subject Re: ISAPI "standard"
Date Tue, 12 Dec 1995 17:45:10 GMT
On Mon, 11 Dec 1995, Brian Behlendorf wrote:
> Worth looking at, at any rate.  it'd be cool if it could be encapsulated 
> within an apache module.

I've been fairly seriously looking at doing this and would welcome some 
input.  In order to do so without forcing anyone to grovel through MS 
Help files, I'll summarize:

At the basic level, ISAPI doesn't offer much beyond what CGI already 
offers, but does so without forking an extra process.  Essentially, you 
have a DLL which is your ISAPI application.  This DLL is required to have 
two entry points GetExtensionVersion() and HttpExtensionProc().  
GetExtensionVersion() makes sure that your server and ISAPI app's version 
line up.  HttpExtensionProc is analagous the 'main' of the cgi script.  
HttpExtensionProc is passed an EXTENSION_CONTROL_BLOCK structure which 
contains information for most of the CGI environment variables and those 
that aren't included can be accessed with a server callback 
GetServerVariable().  There's another server callback, 
ServerSupportFunction() which lets you do things like send redirections 
and such.  So, that's all of ISAPI.  ISAPI app's are then invoked as 

So, in order to do this with an apache module, the problem of the entry 
points all being the same has to be solved.  I don't know enough about 
the dld module to know whether or not this allows us to do a load and 
link to the HttpExtensionProc on a per call basis, but a cursory glance 
made me think no.  I've been considering some other alternatives and 
would welcome suggestions especially if I'm skipping something obvious.

Well, back to work...


View raw message