t_accept(3N) t_accept(3N)
NAME
taccept - accept a connect request
SYNOPSIS
#include <sys/tiuser.h>
int taccept(int fd, int resfd, struct tcall *call);
DESCRIPTION
This 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 connection is to be established, and call contains information
required by the transport provider to complete the connection. call
points to a tcall structure that contains the following members:
struct netbuf addr;
struct netbuf opt;
struct netbuf udata;
int sequence;
In call, addr is the address of the caller, opt indicates any
protocol-specific parameters associated with the connection, udata
points to any user data to be returned to the caller, and sequence is
the value returned by tlisten that uniquely associates the response
with a previously received connect indication.
A transport user may accept a connection on either the same, or on a
different, local transport endpoint from the one on which the connect
indication arrived. If the same endpoint is specified (i.e.,
resfd=fd), the connection can be accepted unless the following condi-
tion is true: The user has received other indications on that endpoint
but has not responded to them (with taccept or tsnddis). For this
condition, taccept will fail and set terrno to TBADF.
If a different transport endpoint is specified (resfd!=fd), the end-
point must be bound to a protocol address and must be in the TIDLE
state [see tgetstate(3N)] before the taccept is issued.
For both types of endpoints, taccept will fail and set terrno to
TLOOK if there are indications (e.g., a connect or disconnect) waiting
to be received on that endpoint.
The values of parameters specified by opt and the syntax of those
values are protocol specific. The udata argument enables the called
transport user to send user data to the caller and the amount of user
data must not exceed the limits supported by the transport provider as
returned in the connect field of the info argument of topen or
tgetinfo. If the len field of udata is zero, no data will be sent to
the caller.
Page 1 Reliant UNIX 5.44 Printed 11/98
t_accept(3N) t_accept(3N)
ERRORS
On failure, terrno may be set to one of the following:
TBADF The specified file descriptor does not refer to a
transport endpoint, or the user is illegally accepting
a connection on the same transport endpoint 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 TIDLE
state.
TACCES The user does not have permission to accept a connec-
tion 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.
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.
DIAGNOSTICS
Upon successful completion, a value of 0 is returned. Otherwise, a
value of -1 is returned and terrno is set to indicate the error.
SEE ALSO
tconnect(3N), tgetstate(3N), tlisten(3N), topen(3N),
trcvconnect(3N).
Page 2 Reliant UNIX 5.44 Printed 11/98