REQUEST_CONTEXT

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:
#define REQCXT_VERSION 0
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