Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ t_connect(3) — Atari System V 1.1-06

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(3)

t_accept(3N)

t_getinfo(3N)

t_listen(3N)

t_open(3N)

t_optmgmt(3N)

t_rcvconnect(3N)





   t_connect(3N)         (Networking Support Utilities)          t_connect(3N)


   NAME
         tconnect - establish a connection with another transport user

   SYNOPSIS
         #include <tiuser.h>

         int tconnect(fd, sndcall, rcvcall)
         int fd;
         struct tcall *sndcall;
         struct tcall *rcvcall;

   DESCRIPTION
         This function enables a transport user to request a connection to the
         specified destination transport user.  fd identifies the local
         transport endpoint where communication will be established, while
         sndcall and rcvcall point to a tcall structure that contains the
         following members:

               struct netbuf addr;
               struct netbuf opt;
               struct netbuf udata;
               int sequence;

         sndcall specifies information needed by the transport provider to
         establish a connection and rcvcall specifies information that is
         associated with the newly established connection.

         netbuf is described in intro(3).  In sndcall, addr specifies the
         protocol address of the destination transport user, opt presents any
         protocol-specific information that might be needed by the transport
         provider, udata points to optional user data that may be passed to
         the destination transport user during connection establishment, and
         sequence has no meaning for this function.

         On return in rcvcall, addr returns the protocol address associated
         with the responding transport endpoint, opt presents any protocol-
         specific information associated with the connection, udata points to
         optional user data that may be returned by the destination transport
         user during connection establishment, and sequence has no meaning for
         this function.

         The opt argument implies no structure on the options that may be
         passed to the transport provider.  The transport provider is free to
         specify the structure of any options passed to it.  These options are
         specific to the underlying protocol of the transport provider.  The
         user may choose not to negotiate protocol options by setting the len
         field of opt to zero.  In this case, the provider may use default
         options.





   8/91                                                                 Page 1









   t_connect(3N)         (Networking Support Utilities)          t_connect(3N)


         The udata argument enables the caller to pass user data to the
         destination transport user and receive user data from the destination
         user during connection establishment.  However, 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(3N)
         or tgetinfo(3N).  If the len [see netbuf in intro(3)] field of udata
         is zero in sndcall, no data will be sent to the destination transport
         user.

         On return, the addr, opt, and udata fields of rcvcall will be updated
         to reflect values associated with the connection.  Thus, the maxlen
         [see netbuf in intro(3)] field of each argument must be set before
         issuing this function to indicate the maximum size of the buffer for
         each.  However, rcvcall may be NULL, in which case no information is
         given to the user on return from tconnect.

         By default, tconnect executes in synchronous mode, and will wait for
         the destination user's response before returning control to the local
         user.  A successful return (i.e., return value of zero) indicates
         that the requested connection has been established.  However, if
         ONDELAY or ONONBLOCK is set (via topen or fcntl), tconnect
         executes in asynchronous mode.  In this case, the call will not wait
         for the remote user's response, but will return control immediately
         to the local user and return -1 with terrno set to TNODATA to
         indicate that the connection has not yet been established.  In this
         way, the function simply initiates the connection establishment
         procedure by sending a connect request to the destination transport
         user.

         On failure, terrno may be set to one of the following:

         [TBADF]            The specified file descriptor does not refer to a
                            transport endpoint.

         [TOUTSTATE]        The function was issued in the wrong sequence.

         [TNODATA]          ONDELAY or ONONBLOCK was set, so the function
                            successfully initiated the connection
                            establishment procedure, but did not wait for a
                            response from the remote user.

         [TBADADDR]         The specified protocol address was in an incorrect
                            format or contained illegal information.

         [TBADOPT]          The specified protocol 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.




   Page 2                                                                 8/91









   t_connect(3N)         (Networking Support Utilities)          t_connect(3N)


         [TACCES]           The user does not have permission to use the
                            specified address or options.

         [TBUFOVFLW]        The number of bytes allocated for an incoming
                            argument is not sufficient to store the value of
                            that argument.  If executed in synchronous mode,
                            the provider's state, as seen by the user, changes
                            to TDATAXFER, and the connect indication
                            information to be returned in rcvcall is
                            discarded.

         [TLOOK]            An asynchronous event has occurred on this
                            transport endpoint 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.

   SEE ALSO
         intro(3), t_accept(3N), t_getinfo(3N), t_listen(3N), t_open(3N),
         t_optmgmt(3N), t_rcvconnect(3N).
         Programmer's Guide: Networking Interfaces.

   DIAGNOSTICS
         tconnect returns 0 on success and -1 on failure and terrno is set
         to indicate the error.
























   8/91                                                                 Page 3





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