t_rcvconnect(NET)
t_rcvconnect --
receive the confirmation from a connect request
Synopsis
cc [options] file -lnsl
#include <xti.h>
int t_rcvconnect(int fd, struct t_call call)
Description
This function is a routine for establishing a transport connection.
t_rcvconnect enables a calling transport user to determine
the status of a connect request that it issued
to a responding transport endpoint.
On successful completion of t_rcvconnect, the connection
is initiated with an asynchronous t_connect is established.
By default, t_rcvconnect executes in synchronous mode and
waits for the connection to be established before returning.
fd
identifies the responding transport endpoint, and on return call
contains information associated with the newly established connection.
Parameters
fd-
the file descriptor for the transport endpoint where communication
will be established.
call-
points to the t_call structure used to identify
the transport user that will receive the connection indication.
Structure definitions
The call argument
points to a t_call structure which contains the following members:
struct netbuf addr; /* address */
struct netbuf opt; /* options */
struct netbuf udata; /* user data */
int sequence; /* sequence number */
netbuf
is described in
intro(NET).
In call, addr
returns the protocol address
associated with the responding transport endpoint, opt
presents any protocol-specific information associated with
the connection, udata
points to optional user data that
may be returned by the destination transport user during connection
establishment, and sequence
has no meaning for this function.
The maxlen
field of each argument must be set before
issuing this function to indicate the maximum size of the buffer
for each. However, call may be NULL, in which case no
information is given to the user on return from t_rcvconnect.
On return, the addr
, opt
, and udata
fields reflect values associated with the connection.
If O_NONBLOCK is set (via t_open or fcntl),
t_rcvconnect executes in asynchronous mode, and reduces to a
poll for existing connect confirmations. If none are available,
t_rcvconnect fails on a TNODATA error and returns
immediately without waiting for the connection to be established.
State transitions
On entry, T_OUTCON; T_DATAXFER (successful)
or T_OUTCON (failed) on exit.
Files
/usr/lib/libxti.so-
X/Open® Transport Interface Library (shared object)
/usr/lib/libnsl.so-
Network Services Library (shared object)
Usage
A subsequent call to t_rcvconnect is required
to complete the connection establishment phase and
retrieve the information returned in call.
Return values
t_rcvconnect returns 0 on success and -1 on failure and
t_errno is set to indicate the error.
Errors
On failure, t_errno may be set to one of the following:
TBADF-
The specified file descriptor does not refer to a transport endpoint.
TBUFOVFLW-
The number of bytes (
maxlen
) allocated for an incoming argument
is greater than zero but not sufficient to store the value of that argument.
The connect information to be returned in call
will be discarded.
The provider's state, as seen by the user, will be changed to
DATAXFER.
TNODATA-
O_NONBLOCK was set, but a connect confirmation has not yet arrived.
TLOOK-
An asynchronous event has occurred on the transport connection
specified by fd and requires immediate attention.
TNOTSUPPORT-
This function is not supported by the underlying transport
provider.
TSYSERR-
A system error has occurred during execution of this function.
TOUTSTATE-
The function was issued in the wrong sequence
on the transport endpoint referenced by fd.
TPROTO-
A communication problem has been detected with the transport provider
and there is no other value of t_errno to describe
the error condition.
References
fcntl(S),
intro(NET),
t_accept(NET),
t_bind(NET),
t_connect(NET),
t_listen(NET),
t_open(NET),
t_optmgmt(NET)
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005