unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

T_CONNECT(3N)                                                    T_CONNECT(3N)



NAME
       t_connect - establish a connection with another transport user

SYNOPSIS
       #include <&lt;tiuser.h>&gt;

       int t_connect(fd, sndcall, rcvcall)
       int fd;
       struct t_call *sndcall;
       struct t_call *rcvcall;

DESCRIPTION
       t_connect()  enables  a  transport  user to request a connection to the
       specified destination transport user.  fd identifies the  local  trans-
       port  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  asso-
       ciated with the newly established connection.

       The  maxlen, len, and buf members of the netbuf structure are described
       in t_accept(3N).  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 func-
       tion.

       opt 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 0.
       In this case, the transport provider may use default options.

       udata 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 field of udata is 0 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
       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  (a return value of 0) indicates that the
       requested connection has been established.  However, if T_NDELAY is set
       (using  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 connection has not yet
       been  established.  In this way, the function simply initiates the con-
       nection establishment procedure by sending a  connect  request  to  the
       destination transport user.

RETURN VALUES
       t_connect() returns:

       0      on success.

       -1     on failure and sets t_errno to indicate the error.

ERRORS
       TACCES              The user does not have permission to use the speci-
                           fied address or options.

       TBADADDR            The specified protocol address was 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.

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

       TBADOPT             The specified protocol options were in an incorrect
                           format or contained illegal information.

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

       TLOOK               An  asynchronous  event has occurred on this trans-
                           port endpoint and requires immediate attention.

       TNODATA             T_NDELAY was set, so the function successfully ini-
                           tiated  the connection establishment procedure, but
                           did not wait for a response from the remote user.

       TNOTSUPPORT         This function is not supported  by  the  underlying
                           transport provider.

       TOUTSTATE           The function was issued in the wrong sequence.

       TSYSERR             The  function  failed due to a system error and set
                           errno to indicate the error.

SEE ALSO
       intro(3), t_accept(3N), t_getinfo(3N), t_listen(3N), t_open(3N), t_opt-
       mgmt(3N), t_rcvconnect(3N)

                                21 January 1990                  T_CONNECT(3N)