Requests sent by the client to the server: SYSTCPES service

For the SYSTCPES service, the client request record is in the following format, which is defined in ezbytmih.h (an assembler mapping for this structure is in EZBYTMIA):
struct tmi_zerts_request /* zERT summary server request */
{
 struct tmi_header tmiesrq_hdr; /* Header; id=TmiHr_EsRqst */
 unsigned int tmiesrq_summary :1; /* Requests summary records */
 unsigned int tmiesrq_rsvd1 :31; /* Reserved, set to 0 */
 char tmiesrq_rsvd2[12]; /* Reserved, set to 0 */
};
The client can initialize the fields of this request structure as follows:
  • Initialize tmiesrq_hdr using the length of tmi_zerts_request, the appropriate record ID (TMIHr_EsRqst), and the correct version (TMIHr_Version1).
  • Initialize the tmiesrq_summary field. This field controls the data that the SYSTCPES server sends to the client. If set, the server sends tokens to the client. These tokens represent data buffers that contain type 119 zERT summary records (subtype 12), describing the cryptographic protection attributes and usage statistics of the security sessions used for the TCP and EE connections established by the TCP/IP stack. If this field is set to 0, the server does not send any tokens for zERT summary records.
  • Initialize all remaining fields to 0.

The SYSTCPES server waits until it receives this entire record from the client before it starts processing connection information on the client's behalf. If the client does not send a complete record, then the server never reports data to the client, because the client does not complete initialization. If the server receives a record with an unrecognized version, a bad length, or a bad eyecatcher, then it sends a termination record (see Records sent by the server to the client: Termination record) with tmit_termcode = EINVAL to the client, and closes the connection.