t_accept(3N) LIBRARY FUNCTIONS t_accept(3N)
NAME
taccept - accept a connect request
SYNOPSIS
#include <tiuser.h>
int taccept ( int fd, int resfd, struct tcall *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 tran-
sport 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;
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 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 condition 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 endpoint 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 lim-
its supported by the transport provider as returned in the
1
t_accept(3N) LIBRARY FUNCTIONS t_accept(3N)
connect field of the info argument of topen or tgetinfo.
If the len [see netbuf in intro(3)] field of udata is zero,
no data will be sent to the caller. 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 refer-
enced 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 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 tran-
sport 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), tconnect(3N), tgetstate(3N), tlisten(3N),
topen(3N), trcvconnect(3N).
UNIX System V Network Programmer's Guide.
DIAGNOSTICS
Upon successful completion, a value of 0 is returned. Oth-
erwise, a value of -1 is returned and terrno is set to
indicate the error.
2