Previous Topic Next topic Print topic


Start of Response Processing (Exit Point 5)

Syntax:

typedef cblt_rtncode (*PFI_IDP_EXIT)(mf_uns32      exit_point,
                                     IDP_EXIT_INFO *exit_info);

On Entry:

exit point 5 = Start of response processing
  version Version of structure format
  flags 0
  funcs User exit support functions
  request_cxt
  version Version of structure format
  flags 0
  funcs User exit support functions
  request_cxt
  version Version of structure format
  argc Parameter count of loaded service
  return_code Service's return code, or run-time error generated by service
  service_type Type of client request
  display_buf_len Length of data in display_buf
  flags Request context control flags
  protocol_attrs An array of pointers to protocol-specifc attributes
  argv Parameter list of loaded service
  service_name Name of loaded service
  pgm_name Name of the main program associated with the service
  display_buf Concatenation of strings output by ANSI DISPLAY statements
  flags Control flags
  response_type Server's response type
  response
  exit_data User exit-specific data
  flags 0
  response
  exit_data User exit-specific data
  exit_data User exit-specific data
  flags 0
  response
  exit_data User exit-specific data
exit_info
IDP_EXIT_CONTINUE 0 Continue with default response processing
IDP_EXIT_STOP 1 Terminate mapping processing. An error response will be required
IDP_EXIT_STOP 1 Terminate mapping processing. An error response will be required
IDP_EXIT_HANDLED 2 The entire response has been built by the exit. No further processing is required. The response is ready to be sent back to the client.

On Exit:

exit point 5 = Start of response processing
exit_info
  version Version of structure format
  flags 0
  funcs User exit support functions
  request_cxt
  response
  exit_data User exit-specific data
  flags 0
  response_len Length of response_buf
  flags Control flags
  response_buf Server's response buffer
  content_type NULL-terminated content type string (HTTP) only
  exit_data User exit-specific data
IDP_EXIT_CONTINUE 0 Continue with default response processing
IDP_EXIT_STOP 1 Terminate mapping processing. An error response will be required
IDP_EXIT_HANDLED 2 The entire response has been built by the exit. No further processing is required. The response is ready to be sent back to the client.

Return codes:

IDP_EXIT_CONTINUE 0 Continue with default response processing
IDP_EXIT_STOP 1 Terminate mapping processing. An error response will be required
IDP_EXIT_HANDLED 2 The entire response has been built by the exit. No further processing is required. The response is ready to be sent back to the client.

Comments:

This exit gives you the opportunity to bypass completely the default response processing. If the exit wants the default response processing to be bypassed, it must set up the response fields indicated above as being returned fields, using the fn_alloc_mem support function of the exit_info funcs structure to allocate the memory for the response buffer, and return IDP_EXIT_HANDLED.

The user exit program owns the exit_data field of the IDP_EXIT_INFO structure. You would typically use it to preserve context information between exit point invocations. You can use it when returning any of the IDP_EXIT_ return values.

Previous Topic Next topic Print topic