Contains information about the client request.
Syntax:
typedef struct request_context
{
cobuns32_t version; Version of structure format
cobuns32_t handler_id; ID of request handler being used to process the request
cobuns32_t request_len; Length of request buffer
cobuns32_t argc; Parameter count of loaded service
cobrtncode_t return_code; Service’s return code, or run-time error error generated by service
cobuns32_t service_type; Type of service request
cobuns32_t accept_buf_len; Length of data in accept_buf
cobuns32_t display_buf_len; Length of data in display_buf
cobuns32_t cmd_line_len; Length of data in cmd_line
cobuns32_t flags; Request context control flags
cobuns32_t reserved1[11]; Reserved for future use
REQHAND_SERVICE_FUNCS *funcs; Request handler support functions
void *request_buf; Request buffer
void **protocol_attrs; An array of pointers to protocol-specific attributes
cobuns8_t **argv; Parameter list of loaded service
void *handler_data; Request handler-specific data
cobuns8_t *reserved1a; Reserved for future use
cobuns8_t *service_name; Name of loaded service
cobuns8_t *pgm_name; Name of the main program associated with the service
cobuns8_t *epoint_name; Name of entry point of the program to invoke
void *idt; Interface definition for service; the interpretation of the memory addressed by this field is request handler-specific
cobuns8_t *accept_buf; Data to be used for ANSI ACCEPT statements
cobuns8_t *display_buf; Concatenation of strings output by ANSI DISPLAY statements
cobuns8_t *cmd_line; String to be used to resolve ACCEPT FROM COMMAND-LINE
cobuns8_t *rts_err_str; Run-time error message text
void *reserved2[9]; Reserved for future use
} REQUEST_CONTEXT;
Version types:
Control flags:
#define REQCXT_FLAGS_NEED_DISPLAY |
0x00000000 |
#define REQCXT_FLAGS_NO_EXEC |
0x00000001 |
#define REQCXT_FLAGS_TRACE |
0x80000000 |
Service types:
#define REQCXT_SERVICE_TYPE_STANDALONE |
0 |
#define REQCXT_SERVICE_TYPE_CICS |
1 |
#define REQCXT_SERVICE_TYPE_IMS |
2 |
Protocol-specific
attributes:
The define statements in this section are all indices into
the protocol_attrs array. Indices 2 through
n are protocol-specific.
The following define statement is a pointer to a cobuns32_t field
indicating the number of elements in the protocol_attrs array:
#define REQCXT_PROTO_ATTR_MAX |
0 |
The following define statement is a pointer to a cobuns32_t field that
indicates the protocol used to deliver the client request:
#define REQCXT_PROTO_ATTR_MAX |
0 |
The field pointed to can take one of the following values:
#define REQCXT_PROTOCOL_HTTP_1_0 |
0 |
#define REQCXT_PROTOCOL_HTTP_1_1 |
1 |
#define REQCXT_PROTOCOL_TCP |
2 |
#define REQCXT_PROTOCOL_MQ |
3 |
The following define statements are indices into the
protocol_attrs array that should be used when the
protocol is REQCXT_PROTOCOL_HTTP_1_0 or REQCXT_PROTOCOL_HTTP_1_0. Each element
is a pointer to a NULL-terminated string:
#define REQCXT_PROTOCOL_HTTP_ATTR_URL |
2 |
#define REQCXT_PROTOCOL_HTTP_ATTR_URI |
3 |
#define REQCXT_PROTOCOL_HTTP_ATTR_CONTENT_TYPE |
4 |
#define REQCXT_PROTOCOL_HTTP_ATTR_SOAP_ACTION |
5 |