Service
Satisfies the request (such as, send the file or run the CGI)
Data Filter
Gives write access to the outgoing data stream.
Log Allows transaction logging.
Error Allows customized responses to error conditions.
PostExit
Allows cleanup of resources that are allocated for request processing.
Server Termination
Allows cleanup processing when an orderly shutdown or restart occurs.
Application functions
Use the following function prototype syntax to write your own program functions
for the defined request steps.
Each of your functions must fill in the return code parameter with a value that
indicates the action that is taken.
vHTTP_NOACTION (value of 0) means no action that is taken.
vOtherwise, one of the valid HTTP return codes is expected, indicating that the
application function handled the step. As a result, no other application functions
are called to handle that step of this request.
The function prototypes for each request step show the format to use and explain
the type of processing they can perform. You must give your functions unique
names and can choose your own naming conventions. For ease of association,
these names relate to the servers request processing steps.
Server Initialization
void
HTTPD_LINKAGE ServerInit(
unsigned char *handle, unsigned long *major_version,
unsigned long *minor_version, long *return_code);
This function is called once when your module is loaded during server
initialization. This is your opportunity to perform initialization before any
requests have been accepted. Although all server initialization functions are
called, error return codes from this step cause the server to ignore all other
functions that are configured in this program.
PreExit
void
HTTPD_LINKAGE PreExit(
unsigned char *handle, long *return_code);
This function is called after the request is read, but before any processing
has occurred.
All server-predefined functions are valid during this step.
Authentication
void
HTTPD_LINKAGE Authentication(
unsigned char *handle, long *return_code);
Chapter7. Writing Server API programs 111