WBCDC - Web Interface Converter parms

  
  Licensed Materials - Property of IBM
  
  5655-Y04
  
  (C) Copyright IBM Corp. 1996, 2015 All Rights Reserved.
  
  
  This copybook defines the parameter lists which
  are passed to the 2 functions
  (DECODE and ENCODE)
  of the user replaceable converter program.
  
  --------------------------------------------------------------------
  
  The top level definition for dfhcommarea.
  
  --------------------------------------------------------------------
Table 1.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE * DFHCOMMAREA
(0) CHARACTER * COMM_PARMLIST
  --
  
  The fields at the start of the converter
  commarea must be accessible
  independent of the converter function being called.
  These declarations provide a definition of the
  commarea in terms of these common fields.
  
  < Variable >
  Meaning
  
  < converter_parms >
  The high-level definition of the parameter area
  passed to the converter in the COMMAREA.
  
  < converter_eyecatcher >
  The eyecatcher used to determine that the converter COMMAREA
  is not corrupt. The value it takes varies depending on the
  converter function involved. The possible values are
  defined in the DFHWBUCx copybook.
  
  < converter_function >
  The value used to determine which converter function is
  involved on this call. Possible values are the constants
  DECODE, ENCODE.
  
  < converter_response >
  The fullword response value produced by a converter
  which has not been passed a valid converter_function
  value. The recommended response in this circumstance
  is URP_INVALID.
  
  < converter_reason >
  The fullword reason value returned by a converter which has
  not been passed a valid converter_function value.
  No reason values are architected for this error situation in
  the CICS Web Browser Interface. Users may define their own values.
  
  < converter_parmlist >
  The rest of the parameters. The structure of this data
  varies depending on which converter function is involved.
  
  --------------------------------------------------------------------
Table 2.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE * CONVERTER_PARMS
(0) CHARACTER 8 CONVERTER_EYECATCHER
(8) CHARACTER 1 CONVERTER_VERSION
(9) CHARACTER 1 CONVERTER_VOLATILE
(A) HALFWORD 2 CONVERTER_FUNCTION
(C) UNSIGNED 4 CONVERTER_RESPONSE
(10) UNSIGNED 4 CONVERTER_REASON
(14) CHARACTER * CONVERTER_PARMLIST
  --
  
  These declarations define the parameter list which
  is passed to the DECODE function of the user replaceable
  converter program. It is called by the server controller.
  
  The variables in the decode parameter list are as follows:
  
  < Variable >
  Meaning
  
  < decode_eyecatcher > (input)
  A character field to contain an eyecatcher to help with
  diagnostics and provide a sanity check for the Converter
  program if required. The
  Server Controller sets this to the value of constant
  DECODE_EYECATCHER_INIT before calling decode.
  
  < decode_version > (input)
  @LIC
  A single-character parameter-list version identifier.
  It will change whenever the layout of the parameter list changes.
  Possible values:
  Binary zero (X'00') -- pre-CICS/TS1.3 version parameter list
  Character zero (X'F0') -- CICS/TS1.3 version parameter list
  Character one (X'F1') -- CICS/TS4.1 version parameter list
  
  < decode_volatile > (input)
  A single-character code that indicates whether the data area
  pointed to by "decode_data_ptr" can be replaced or not:
  '0' -- The area cannot be replaced: it is part of another
  commarea.
  '1' -- The storage pointed to by "decode_data_ptr" can be freed
  and replaced by a different size workarea.
  
  < decode_function > (input)
  A halfword set to the constant value URP_DECODE .
  Set to indicate to the converter the function required.
  
  < decode_response > (output)
  The response value produced by decode.
  Possible values are:
  
  - URP_OK
  - URP_EXCEPTION
  - URP_INVALID
  - URP_DISASTER
  
  < decode_reason > (output)
  The reason for a response produced by decode.
  The architected values for EXCEPTION responses are:
  
  - URP_SECURITY_FAILURE
  
  Other values may be supplied and given user-defined meanings.
  
  < decode_client_address > (input)
  The IP address of the client (ipv4 only).
  
  < decode_client_address_string > (input)
  The IP address of the client in "ww.xx.yy.zz" format. (ipv4 only)
  
  < decode_data_ptr > (input / output)
  A pointer to the HTTP request sent by the client.
  
  < decode_method_ptr > (input)
  Pointer to the method specified on the HTTP request sent by the
  client.
  
  < decode_http_version_ptr > (input)
  Pointer to a string identifying the HTTP version supported by the
  client.
  
  < decode_http_resource_ptr > (input)
  Pointer to the CICS resource requested by the client. In HTTP
  protocol
  terminology, this is the "absolute path" information in the HTTP
  request. Because CICS does not have any concept of "paths" or
  the hierarchical file systems on which paths rely, we have elected
  to use a term more appropriate to CICS in our documentation.
  
  < decode_request_header_ptr > (input)
  Pointer to the first HTTP header in the HTTP request. There are
  usually multiple HTTP headers for each HTTP request. Each header
  is delimited by a CR+LF. The end of the header information is
  delimited by a null header (that is, an additional CR+LF following
  final HTTP header).
  
  < decode_user_data_ptr > (input)
  A pointer to any user data for this HTTP request.
  
  < decode_method_length > (input)
  Length of the method specified on the HTTP request sent by the
  client.
  
  < decode_http_version_length > (input)
  Length of the string identifying the
  version of HTTP supported by the client.
  
  < decode_http_resource_length > (input)
  Length of the string containing the
  HTTP header information for this HTTP request.
  This length includes the lengths of all the delimiting CR+LFs
  for all the headers, including the final CR+LF of the null header
  which signals the end of the headers.
  
  < decode_request_header_length > (input)
  Length of the string identifying the
  CICS resource requested by supported by the client.
  
  < decode_user_data_length > (input)
  Length of the user data.
  
  < decode_input_data_len > (output)
  The server input data length associated
  with the program processing the HTTP request. This is set to the
  default 32767, but can be overwritten in decode,
  possibly to reflect information contained in the client data.
  This length is used as INPUTDATALENGTH on the EXEC CICS LINK to
  the user program.
  
  < decode_output_data_len > (output)
  The server output data length associated
  with the program processing the HTTP request. This is set to the
  default 32767, but can be overwritten in decode,
  possibly to reflect information contained in the client data. It
  is the size of the output commarea.
  
  < decode_server_program > (input / output)
  The CICS program invoked to process the incoming HTTP
  request. Initialised to the program name allocated by the ATTACH
  exit for the requested URL. The program name can be changed by
  the analyzer.
  
  < decode_user_token > (input / output)
  A token for use by users. Could for example identify
  any state data associated with this HTTP request.
  
  < decode_entry_count > (input)
  This parameter shows how many times the decode and encode
  converter functions have been executed in the current CWI
  execution. It is useful when looping back from encode.
  
  < decode_client_ipv6_address > (input)
  @LIA
  The IP address of the client. This field will contain either
  an ipv4 (in mapped format) or ipv6 client address.
  
  < decode_client_address_ipv6_string > (input)
  @LIA
  The IP address of the client in displayable format. If the client
  is ipv4 then a dotted decimal format will be storage here. And if
  the client is ipv6 then an IPV6 (colon formated) address will be
  supplied.
  
  --------------------------------------------------------------------
Table 3.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 160 DECODE_PARMS
(0) CHARACTER 8 DECODE_EYECATCHER
(8) CHARACTER 1 DECODE_VERSION
(9) CHARACTER 1 DECODE_VOLATILE
(A) HALFWORD 2 DECODE_FUNCTION
(C) UNSIGNED 4 DECODE_RESPONSE
(10) UNSIGNED 4 DECODE_REASON
(14) UNSIGNED 4 DECODE_CLIENT_ADDRESS
(18) CHARACTER 15 DECODE_CLIENT_ ADDRESS_STRING
(27) CHARACTER 1 *
(28) ADDRESS 4 DECODE_DATA_PTR
(2C) ADDRESS 4 DECODE_METHOD_PTR
(30) ADDRESS 4 DECODE_HTTP_VERSION_ PTR
(34) ADDRESS 4 DECODE_RESOURCE_PTR
(38) ADDRESS 4 DECODE_REQUEST_ HEADER_PTR
(3C) ADDRESS 4 DECODE_USER_DATA_PTR
(40) HALFWORD 2 DECODE_METHOD_LENGTH
(42) HALFWORD 2 DECODE_HTTP_VERSION_ LENGTH
(44) HALFWORD 2 DECODE_RESOURCE_ LENGTH
(46) HALFWORD 2 DECODE_REQUEST_ HEADER_LENGTH
(48) FULLWORD 4 DECODE_INPUT_DATA_LEN
(4C) HALFWORD 2 DECODE_USER_DATA_ LENGTH
(4E) CHARACTER 2 * unused/reserved
(50) FULLWORD 4 DECODE_OUTPUT_DATA_ LEN
(54) CHARACTER 8 DECODE_SERVER_PROGRAM
(5C) CHARACTER 8 DECODE_USER_TOKEN
(64) FULLWORD 4 DECODE_ENTRY_COUNT
(68) CHARACTER 16 DECODE_CLIENT_IPV6_ ADDRESS ipv6 address
(68) CHARACTER 12 DECODE_CLIENT_IPV6_ IP6PFX for ipv4 compatb
(74) CHARACTER 4 DECODE_CLIENT_IPV6_ IPADDR4
(78) CHARACTER 39 DECODE_CLIENT_IPV6_ ADDRESS_STRING display addr
(9F) CHARACTER 1 * unused/reserved
  --
  
  These declarations define the parameter list which
  is passed to the ENCODE function of the user replaceable
  Converter program. It is called by the alias program
  if data mapping of the remote procedure's output is required.
  The parameter list is passed as a commarea from the alias.
  
  < Variable >
  Meaning
  
  < encode_eyecatcher >
  A character field to contain an eyecatcher
  to help with diagnostics and provide a sanity check for
  the Converter program if required. The alias
  sets this to the value of constant ENCODE_EYECATCHER_INIT
  before calling encode.
  
  < encode_version > (input)
  A single-character parameter-list version identifier.
  It will change whenever the layout of the parameter list changes.
  Possible values:
  Binary zero (X'00') -- pre-CICS/TS1.3 version parameter list
  Character zero (X'F0') -- CICS/TS1.3 version parameter list
  
  < encode_volatile > (input)
  A single-character code that indicates whether the data area
  pointed to by "encode_data_ptr" can be replaced or not:
  '0' -- The area cannot be replaced: it is part of another
  commarea.
  '1' -- The storage pointed to by "encode_data_ptr" can be freed
  and replaced by a different size workarea.
  
  < encode_function > (input)
  A halfword set to the constant value URP_ENCODE .
  This is set by the alias before linking to the converter
  program. It allows the converter to determine which function
  is being requested.
  
  < encode_response > (output)
  The fullword response value produced by decode.
  Possible values are:
  
  - URP_OK
  - URP_EXCEPTION
  - URP_INVALID
  - URP_DISASTER
  
  < encode_reason > (output)
  The fullword reason value returned by encode for response
  values other than OK. No reason values are architected for
  encode in the CICS Web Browser Interface.
  Users may define their own values.
  
  < encode_data_ptr > (input)
  A pointer reference to the storage area containing
  the output from the server program which is to be manipulated
  by the encode function
  
  < encode_input_data_len > (input)
  A fullword field indicating the length of the data to be
  encoded by the converter.
  
  < encode_user_token > (input)
  A token for use by users. Could for example identify
  any state data associated with this HTTP request.
  < encode_entry_count > (input)
  This parameter shows how many times the decode and encode
  converter functions have been executed in the current CWI
  execution. It is useful when looping back from encode.
  
  --------------------------------------------------------------------
Table 4.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 40 ENCODE_PARMS
(0) CHARACTER 8 ENCODE_EYECATCHER
(8) CHARACTER 1 ENCODE_VERSION
(9) CHARACTER 1 ENCODE_VOLATILE
(A) HALFWORD 2 ENCODE_FUNCTION
(C) UNSIGNED 4 ENCODE_RESPONSE
(10) UNSIGNED 4 ENCODE_REASON
(14) ADDRESS 4 ENCODE_DATA_PTR
(18) FULLWORD 4 ENCODE_INPUT_DATA_LEN
(1C) CHARACTER 8 ENCODE_USER_TOKEN
(24) FULLWORD 4 ENCODE_ENTRY_COUNT