t_accept(3)t_accept(3)NAMEt_accept() - accept a connect request
SYNOPSISDESCRIPTION
The function is issued by a transport user to accept a connect request.
fd identifies the local transport endpoint where the connect indication
arrived. resfd specifies the local transport endpoint where the con‐
nection is to be established. call contains information required by
the transport provider to complete the connection. The parameter call
points to a structure which contains the following members:
The structure is defined in the or header file. This structure, which
is used to define buffer parameters, has the following members:
maximum byte length of the data buffer
actual byte length of data written to buffer
points to buffer location
In call, the addr, opt, udata, and sequence parameters are explained
here. addr is the protocol address of the calling transport user. opt
indicates any options associated with the connection. For XTI over the
OSI transport provider, this should point to a struct of type udata
points to any user data to be returned to the caller. sequence is the
value returned by that uniquely associates the response with a previ‐
ously received connect indication. The address of the caller, addr,
may be null (length zero). When addr is not null, then it may option‐
ally be checked by XTI.
A transport user may accept a connection on either the same, or on a
different, local transport endpoint than the one on which the connect
indication arrived. Before the connection can be accepted on the same
endpoint (resfd==fd), the user must have responded to any previous con‐
nect indications received on that transport endpoint (via or Otherwise,
will fail and set to [TINDOUT].
If a different transport endpoint is specified (resfd!=fd), then the
user may or may not choose to bind the endpoint before is issued. If
the endpoint is not bound prior to the then the transport provider will
automatically bind it to the same protocol address fd is bound to. If
the transport user chooses to bind the endpoint, it must be bound to a
protocol address with a qlen of zero and must be in the state before
the is issued.
The call to will fail with set to [TLOOK] if there are indications for
example, connect or disconnect waiting to be received on the endpoint
fd.
The udata argument enables the called transport user to send user data
to the caller. The amount of user data must not exceed the limits sup‐
ported by the transport provider as returned in the connect field of
the info argument of or If the len field of udata is zero, no data will
be sent to the caller. All the maxlen fields are meaningless.
When the user does not indicate any option (call->opt.len = 0), it is
assumed that the connection is to be accepted unconditionally. The
transport provider may choose options other than the defaults to ensure
that the connection is accepted successfully.
Valid States
fd:
resfd (fd != resfd):
Caveats
There may be transport provider-specific restrictions on address bind‐
ing.
Some transport providers do not differentiate between a connect indica‐
tion and the connection itself. If the connection has already been
established after a successful return of will assign the existing con‐
nection to the transport endpoint specified by resfd.
Fork Safety
is not fork-safe.
RETURN VALUE
Upon successful completion, a value of 0 is returned. Otherwise, a
value of −1 is returned, and is set to indicate the error.
ERRORS
On failure, is set to one of the following:
[TBADF] The file descriptor, fd or resfd, does not refer to
a transport endpoint, or the user is illegally
accepting a connection of the same transport end‐
point on which the connect indication arrived.
[TOUTSTATE] The function was issued in the wrong sequence on
the transport endpoint referenced by fd, or the
transport endpoint referred to by resfd is not in
the appropriate state.
[TACCES] The user does not have permission to accept a con‐
nection on the responding transport endpoint or use
the specified options.
[TBADOPT] The specified options were in an incorrect format
or contained illegal information.
[TBADDATA] The amount of user data specified was not within
the bounds allowed by the transport provider.
[TBADADDR] The specified protocol address was in an incorrect
format or contained illegal information.
[TBADSEQ] An invalid sequence number was specified.
[TLOOK] An asynchronous event has occurred on the transport
endpoint referenced 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.
[TINDOUT] The function was called with fd==resfd but there
are outstanding connection indications on the end‐
point. Those other connection indications must be
handled either by rejecting them via or accepting
them on a different endpoint via
[TPROVMISTMATCH] (XTI only) The file descriptors fd and resfd do not
refer to the same transport provider.
[TRESQLEN] The endpoint referenced by resfd (where resfd !=
fd) was bound to a protocol address with a qlen
that is greater than zero.
[TPROTO] (XTI only) This error indicates that a communica‐
tion problem has been detected between XTI and the
transport provider for which there is no other
suitable XTI (
[TRESADDR] This transport provider requires both fd and resfd
to be bound to the same address. This error
results if they are not.
FILES
XTI data structures
XTI data structures
TLI data structures
SEE ALSOt_connect(3), t_getstate(3), t_listen(3), t_open(3), t_rcvconnect(3),
thread_safety(5).
STANDARDS CONFORMANCEt_accept(3)