T_ACCEPT(3N) INTERACTIVE UNIX System T_ACCEPT(3N)
NAME
t_accept - accept a connect request
SYNOPSIS
#include <tiuser.h>
int t_accept(fd, resfd, call)
int fd;
int resfd;
struct t_call *call;
DESCRIPTION
This function is issued by a transport user to accept a con-
nect request. Fd identifies the local transport endpoint
where the connect indication arrived, resfd specifies the
local transport endpoint where the connection is to be esta-
blished, and call contains information required by the
transport provider to complete the connection. Call points
to a t_call structure which contains the following members:
struct netbuf addr;
struct netbuf opt;
struct netbuf udata;
int sequence;
Netbuf is described in intro(3). 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 t_listen 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 than 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 condition is true: The user
has received other indications on that endpoint but has not
responded to them (with t_accept or t_snddis). For this
condition, t_accept will fail and set t_errno to TBADF.
If a different transport endpoint is specified (resfd!=fd),
the endpoint must be bound to a protocol address and must be
in the T_IDLE state [see t_getstate(3N)] before the t_accept
is issued.
For both types of endpoints, t_accept will fail and set
t_errno 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
Rev. Networking Support Utilities Page 1
T_ACCEPT(3N) INTERACTIVE UNIX System T_ACCEPT(3N)
caller and the amount of user data must not exceed the lim-
its supported by the transport provider as returned by
t_open or t_getinfo. If the len [see netbuf in intro(3)]
field of udata is zero, no data will be sent to the caller.
Rev. Networking Support Utilities Page 2
T_ACCEPT(3N) INTERACTIVE UNIX System T_ACCEPT(3N)
On failure, t_errno 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 refer-
enced by fd, or the transport endpoint
referred to by resfd is not in the T_IDLE
state.
[TACCES] The user does not have permission to
accept a connection 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 trans-
port 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 execu-
tion of this function.
SEE ALSO
intro(3), t_connect(3N), t_getstate(3N), t_listen(3N),
t_open(3N), t_rcvconnect(3N).
Programmer's Guide.
DIAGNOSTICS
Upon successful completion, a value of 0 is returned. Oth-
erwise, a value of -1 is returned, and t_errno is set to
indicate the error.
Rev. Networking Support Utilities Page 3