Networking Services Library Functions trcvconnect(3NSL)
NAME
trcvconnect - receive the confirmation from a connection
request
SYNOPSIS
#include
int trcvconnect(int fd, struct tcall *call);
DESCRIPTION
This routine is part of the XTI interfaces which evolved
from the TLI interfaces. XTI represents the future evolution
of these interfaces. However, TLI interfaces are supported
for compatibility. When using a TLI routine that has the
same name as an XTI routine, the tiuser.h header file must
be used. Refer to the TLI COMPATIBILITY section for a
description of differences between the two interfaces.
This function enables a calling transport user to determine
the status of a previously sent connection request and is
used in conjunction with tconnect(3NSL) to establish a con-
nection in asynchronous mode, and to complete a synchronous
tconnect(3NSL) call that was interrupted by a signal. The
connection will be established on successful completion of
this function.
The argument fd identifies the local transport endpoint
where communication will be established, and call contains
information associated with the newly established connec-
tion. The argument call points to a tcall structure which
contains the following members:
struct netbuf addr;
struct netbuf opt;
struct netbuf udata;
int sequence;
In call, addr returns the protocol address associated with
the responding transport endpoint, opt presents any options
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.
SunOS 5.11 Last change: 7 May 1998 1
Networking Services Library Functions trcvconnect(3NSL)
The maxlen field of each argument must be set before issuing
this function to indicate the maximum size of the buffer for
each. However, maxlen can be set to zero, in which case no
information to this specific argument is given to the user
on the return from trcvconnect(). If call is set to
NUL, no information at all is returned. By default,
trcvconnect() executes in synchronous mode and waits for
the connection to be established before returning. On
return, the addr, opt and udata fields reflect values asso-
ciated with the connection.
If ONONBLOCK is set by means of topen(3NSL) or fcntl(2),
trcvconnect() executes in asynchronous mode, and reduces to
a poll for existing connection confirmations. If none are
available, trcvconnect() fails and returns immediately
without waiting for the connection to be established. See
TNODATA below. In this case, trcvconnect() must be called
again to complete the connection establishment phase and
retrieve the information returned in call.
RETURN VALUES
Upon successful completion, a value of 0 is returned. Oth-
erwise, a value of -1 is returned and terrno is set to
indicate an error.
VALID STATES
TOUTCON.
ERORS
On failure, terrno is set to one of the following:
TBADF The specified file descriptor does not refer
to a transport endpoint.
TBUFOVFLW The number of bytes allocated for an incoming
argument (maxlen) is greater than 0 but not
sufficient to store the value of that argu-
ment, and the connection information to be
returned in call will be discarded. The
provider's state, as seen by the user, will
be changed to TDATAXFER.
TLOK An asynchronous event has occurred on this
transport connection and requires immediate
attention.
TNODATA ONONBLOCK was set, but a connection confir-
mation has not yet arrived.
SunOS 5.11 Last change: 7 May 1998 2
Networking Services Library Functions trcvconnect(3NSL)
TNOTSUPORT This function is not supported by the under-
lying transport provider.
TOUTSTATE The communications endpoint referenced by fd
is not in one of the states in which a call
to this function is valid.
TPROTO This error indicates that a communication
problem has been detected between XTI and the
transport provider for which there is no
other suitable XTI error (terrno).
TSYSER A system error has occurred during execution
of this function.
TLI COMPATIBILITY
The XTI and TLI interface definitions have common names but
use different header files. This, and other semantic differ-
ences between the two interfaces are described in the sub-
sections below.
Interface Header
The XTI interfaces use the header file, xti.h. TLI inter-
faces should not use this header. They should use the
header:
#include
Error Description Values
The terrno value TPROTO can be set by the XTI interface but
not by the TLI interface.
A terrno value that this routine can return under different
circumstances than its XTI counterpart is TBUFOVFLW. It can
be returned even when the maxlen field of the corresponding
buffer has been set to zero.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
SunOS 5.11 Last change: 7 May 1998 3
Networking Services Library Functions trcvconnect(3NSL)
ATRIBUTE TYPE ATRIBUTE VALUE
MT Level Safe
SEE ALSO
fcntl(2), taccept(3NSL), talloc(3NSL), tbind(3NSL),
tconnect(3NSL), tlisten(3NSL), topen(3NSL),
toptmgmt(3NSL), attributes(5)
SunOS 5.11 Last change: 7 May 1998 4
|