that is described in this section. Note that the parameter descriptions use the
letterito indicate input, the letter oto indicate output, and i/oto indicate
that a parameter is both input and output.
Each of these functions returns one of the HTTPD return codes, depending on the
success of the request.
HTTPD_authenticate()
Authenticates a user ID and password. Valid only in PreExit,Authenticate,
and Authorization steps.
void
HTTPD_authenticate(
unsigned char *handle, /* i; handle */
long *return_code); /* o; return code */
HTTPD_attributes
Extracts the attributes of a file. Valid in all steps.
The name of the file and the buffer containing the attributes are in the
default CCSID of the job.
void
HTTPD_attributes(
unsigned char *handle, /* i; handle (NULL right now) */
unsigned char *name, /* i; name of the file */
unsigned long *name_length, /* i; length of the name */
unsigned char *value, /* o; buffer containing attributes*/
unsigned long *value_length, /* i/o;size of buffer/length of attributes*/
long *return_code); /* o; return code */
HTTPD_extract()
Extracts the value of a variable associated with this request. The valid
variables you can use for the name parameter are the same as those used
in the CGI. This function is valid in all steps, however not all variables are.
The CCSID of the name of the value to extract and the buffer in which to
put the value depends upon the step and the CGI mode. For all steps
except Service, these parameters are in the default CCSID of the job. For
the Service step, the CGI mode determines the CCSID. For the
%%MIXED%% CGI mode, these fields are in EBCIDIC CCSID 37. For all
other CGI modes, these fields are in the default CCSID of the job.
void
HTTPD_extract(
unsigned char *handle, /* i; handle */
unsigned char *name, /* i; name of value to extract /*
unsigned long *name_length, /* i; length of the name */
unsigned char *value, /* o; buffer in which to put value */
unsigned long *value_length, /* i/o; buffer size/length of value */
long *return_code); /* o; return code */
If this function returns the HTTPD_BUFFER_TOO_SMALL return code, the
buffer size you requested was not big enough for the extracted value. In
this case, the function does not fill in the buffer but does update
value_length with the buffer size you would need in order to successfully
extract this value. Retry the extract with a buffer that is at least as big as
the returned value_length.
Note: Server API programs gain access to information about a particular
HTTP request by examining predefined variables. This information
is obtained from the server using the HTTPD_extract() function. The
PASSWORD variable used when basic authentication is requested.
Chapter7. Writing Server API programs 115