t_rcvconnect(3)t_rcvconnect(3)NAMEt_rcvconnect - Receive the confirmation from a connect request
SYNOPSIS
#include <xti.h>
int t_rcvconnect(
int fd,
struct t_call *call );
LIBRARY
XTI Library (libxti.a)
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
t_rcvconnect(): XNS4.0, XNS5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
The following table summarizes the relevance of input and output param‐
eters before and after t_rcvconnect() is called:
──────────────────────────────────────────────
Parameter Before Call After Call
──────────────────────────────────────────────
fd y n
call->addr.maxlen y n
call->addr.len n y
call->addr.buf o (o)
call->opt.maxlen y n
call->opt.len n y
call->opt.buf o (o)
call->udata.maxlen y n
call->udata.len n y
call->udata.buf o (o)
call->sequence n n
──────────────────────────────────────────────
Notes to Table This is a meaningful parameter. This is not a meaning‐
ful parameter. The content of the object pointed to by o is optional.
The content of the object pointed to by y is meaningful. Specifies a
file descriptor returned by the t_open() function that identifies the
local transport endpoint where the connection is to be established.
Points to a type t_call structure, used to reserve space for a buffer
that stores information associated with the connection at the transport
endpoint referenced by the fd parameter. When the call parameter is set
to the null pointer value, no data is returned to the caller. The
t_call structure has the following members: References a buffer for
protocol address information returned from the transport endpoint spec‐
ified by the fd parameter. The type netbuf structure referenced by this
member is defined in the xti.h include file and has the following mem‐
bers: Specifies the maximum byte length of the data buffer. Specifies
the actual byte length of data written to the buffer. Points to the
buffer location. Specifies a buffer for protocol-specific parameters
associated with the connection. Specifies a buffer for transport user
data sent from the destination transport user. This parameter is not
meaningful for the t_rcvconnect() function.
The addr parameters pointed to by the call parameter specify protocol
address information associated with the responding transport endpoint.
Before this function is called, the addr.maxlen parameter must be set
to specify the maximum byte length of the protocol-address buffer
pointed to by the addr.buf parameter, which is used to hold the proto‐
col address of the responding transport endpoint.
On return, the addr.len parameter specifies the actual transport end‐
point protocol-address byte length and the buffer pointed to by
addr.buf contains the transport endpoint protocol address.
The opt parameters pointed to by the call parameter specify optional
information associated with the responding transport endpoint. Before
this function is called, the opt.maxlen parameter must be set to spec‐
ify the maximum byte length of the options-data buffer pointed to by
the opt.buf parameter, which is used to hold optional information from
the responding transport endpoint when it is provided.
On return, the opt.len parameter specifies the actual transport end‐
point optional-data byte length and the data buffer pointed to by
opt.buf contains transport endpoint optional data.
The udata parameters pointed to by the call parameter specify user
information associated with the responding transport endpoint. Before
this function is called, the udata.maxlen parameter must be set to
specify the maximum byte length of the user-data buffer pointed to by
the udata.buf parameter, which is used to hold remote transport user
information from the responding transport endpoint when it is provided.
On return, the udata.len parameter specifies the actual transport end‐
point user-data byte length and the data buffer pointed to by udata.buf
contains transport endpoint user data.
DESCRIPTION
The t_rcvconnect() XTI function enables a calling transport user to
determine the status of a previously sent connect request at a trans‐
port endpoint specified by a file descriptor returned by the t_open()
function. The t_rcvconnect() function is used in conjunction with the
t_connect() function to establish a connection in asynchronous mode. By
default, this function executes in synchronous mode, waiting for the
connection to be established before returning control to the caller.
However, when the transport endpoint specified by the fd file descrip‐
tor has been opened with the O_NONBLOCK option set in the t_open() or
t_fcntl() functions, the t_connect() function executes in asynchronous
mode. In asynchronous mode, when no connection confirmation is avail‐
able, control is immediately returned to the caller. In this case,
t_rcvconnect() must be called again to complete the connection estab‐
lishment and retrieve the information in the call parameter.
The t_rcvconnect() function uses type t_call and netbuf structures,
which are defined in the xti.h include file.
ERRORS
If the t_rcvconnect() function fails, t_errno may be set to one of the
following values: The specified file descriptor does not refer to a
transport endpoint. The number of bytes allocated for incoming data is
not sufficient for storage of that data. The connect information nor‐
mally returned to the call parameter is discarded. The transport
provider state is changed to T_DATAXFER. Asynchronous mode is indi‐
cated because O_NONBLOCK was set, but no connect confirmation is cur‐
rently available from the transport provider. An asynchronous event
has occurred on this transport connection and requires immediate atten‐
tion (refer to the t_look() function). The function was issued in the
wrong sequence on the transport endpoint referenced by the fd parame‐
ter. A system error occurred during execution of this function. This
function is not supported by the underlying transport provider. This
error indicates that a communication problem has been detected between
XTI and the transport provider for which there is no other suitable
XTI(t_errno).
VALID STATES
The t_rcvconnect() function can only be called in the T_OUTCON trans‐
port provider state.
RETURN VALUE
Upon successful completion, a value of 0 (zero) is returned. Other‐
wise, a value of -1 is returned and t_errno is set to indicate the
error.
SEE ALSO
Functions: t_accept(3), t_alloc(3), t_bind(3), t_connect(3), t_lis‐
ten(3), t_open(3), t_optmgmt(3)
Standards: standards(5)
Network Programmer's Guide
t_rcvconnect(3)