Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(3)

t_connect(3N)

t_getstate(3N)

t_listen(3N)

t_open(3N)

t_rcvconnect(3N)



          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



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026