Requests sent by the client to the server: SYSTCPCN service

For the SYSTCPCN service, the client request record is in the following format, defined in ezbytmih.h (an assembler mapping for this structure is in EZBYTMIA):
struct tmi_conn_request                  /* Conn info server request */
{
struct tmi_header tmicnrq_hdr;           /* Header; id=TmiHr_CnRqst */
unsigned int      tmicnrq_list  :1;      /* Requests connection list */
unsigned int      tmicnrq_smf   :1;      /* Requests init/term SMFrcd*/
unsigned int      tmicnrq_rsvd1 :30;     /* Reserved, set to 0 */
char              tmicnrq_rsvd2[12];     /* Reserved, set to 0
};
The client should initialize the fields of this request structure as follows:
  • Initialize tmicnrq_hdr using the length of tmi_conn_request, the appropriate record ID (TMIHr_CnRqst), and the correct version (TMIHr_Version1).
  • Initialize the tmicnrq_list and tmicnrq_smf fields as described in the following list.
  • Initialize all remaining fields to 0.
The two fields tmicnrq_list and tmicnrq_smf control the data that the SYSTCPCN server sends to the client. These fields should be set as follows:
  • tmicnrq_list

    If set, the server sends the client zero or more tokens that represent data buffers that contain a list of all established TCP connections at the time the client connected. These connections are represented as type 119 TCP connection initiation SMF records. If this field is set to 0, no such list is sent to the client.

  • tmicnrq_smf

    If set, the server sends tokens to the client. These tokens represent data buffers that contain type 119 TCP connection initiation and termination SMF records, representing TCP connections that are established and closed on the TCP⁄IP stack. If this field is set to 0, the server does not send any tokens, representing ongoing connection establishment and closure.

The SYSTCPCN server waits until it has received 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 has not completed 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.