T_CONN_RES(D7tpi)
T_CONN_RES --
Connection Response
Synopsis
This message consists of one M_PROTO message block
followed by zero or more M_DATA blocks
if any user data is specified by the transport user.
The format of the M_PROTO message block is as follows:
struct T_conn_res {
long PRIM_type; /* always T_CONN_RES */
queue_t *QUEUE_ptr; /* response queue ptr */
long OPT_length; /* options length */
long OPT_offset; /* options offset */
long SEQ_number; /* sequence number */
}
Description
This primitive requests that the transport provider accept a previous
connect request on the specified response queue.
Parameters
PRIM_type-
identifies the primitive type.
QUEUE_ptr-
identifies the transport provider queue pair read queue pointer
which should be used to accept the connect request.
This queue pointer should map onto a stream which is already bound to a protocol address.
OPT_length-
is the length of the responding options and OPT_offset
is the offset from the beginning of the
M_PROTO
message block where
the responding options begin.
SEQ_number-
is the sequence number which identifies the connection to
be responded to.
The proper alignment of the options in the
M_PROTO
message block is not
guaranteed.
The options in the
M_PROTO
message block are, however, aligned the same as they
were received from the transport user.
Rules
The following rules apply when the transport endpoint
referenced by QUEUE_ptr is not the same as the transport endpoint
referenced by SEQ_number:
-
If the endpoint referenced by QUEUE_ptr is not bound
at the time the T_CONN_RES primitive is received by
the transport provider,
the transport provider will automatically bind this endpoint
to the same protocol address to which the endpoint referenced by
SEQ_number is bound.
-
If the endpoint referenced by QUEUE_ptr is already bound
when the T_CONN_RES primitive was received by
the transport provider,
it must be bound to a protocol address with a CONIND_number
of zero and must be in the T_IDLE state.
In all cases, this primitive requires
the transport provider to generate one of the following
acknowledgments on receipt of the primitive, and the transport user
wait for the acknowledgment before issuing any other primitives:
Successful-
Correct acknowledgment of the primitive is indicated via
the
T_OK_ACK
primitive described in
Non-fatal errors-
These errors will be indicated via the
T_ERROR_ACK
primitive
described in
Errors
The allowable errors are as follows:
TBADF-
This indicates that the response queue pointer was invalid.
TBADOPT-
This indicates that the options were in an incorrect format, or they
contained invalid information.
TACCES-
This indicates that the user did not have proper permissions for the
use of the options or response id.
TOUTSTATE-
The primitive would place the transport interface out of state.
TBADDATA-
The amount of user data specified was invalid.
TBADSEQ-
The sequence number specified in the primitive was incorrect or invalid.
TSYSERR-
A system error has occurred and the UNIX system error is indicated in the
primitive.
TBADADDR-
The specified protocol address
(the one bound to the endpoint referenced by QUEUE_ptr)
was in an incorrect format or contained illegal information.
TNOTSUPPORT-
This primitive is not supported by the transport provider.
TRESADDR-
The transport provider requires both transport endpoints
(that is, those referenced by QUEUE_ptr and SEQ_number)
to be bound to the same address.
TRESQLEN-
The endpoint referenced by QUEUE_ptr was different from the
endpoint referenced by SEQ_number, but was bound to a protocol
address with a CONIND_number that is greater than zero.
Modes
Only connection-mode.
Originator
Transport user.
Notices
Hardware constraints
None
Applicability
N/A
Backward compatibility
UnixWare-specific TPI Message Formats
Forward compatibility
N/A
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005