Requests sent by the client to the server: SYSTCPCN service
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
};
- 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.
- 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.