Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought



  T_CONNECT(3N)     (Networking Support Utilities)    T_CONNECT(3N)



  NAME
       t_connect - 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
       t_call structure which 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


  Page 1                                                   May 1989


















  T_CONNECT(3N)     (Networking Support Utilities)    T_CONNECT(3N)



       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.

       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 by t_open
       (3N) or t_getinfo (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 t_connect.

       By default, t_connect 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 O_NDELAY is set (via t_open
       or fcntl), t_connect 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 t_errno set to TNODATA to indicate that the


  Page 2                                                   May 1989


















  T_CONNECT(3N)     (Networking Support Utilities)    T_CONNECT(3N)



       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, t_errno 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]          O_NDELAY 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.

       [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 T_DATAXFER, and the connect
                          indication information to be returned in


  Page 3                                                   May 1989


















  T_CONNECT(3N)     (Networking Support Utilities)    T_CONNECT(3N)



                          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).
       Network Programmer's Guide, Vol. 1.

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






















  Page 4                                                   May 1989
















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