t_accept(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

t_accept(3c)

t_accept(3C)             Standard C Library Functions             t_accept(3C)

NAME
       t_accept - accept a connection request

SYNOPSIS
       #include <xti.h>

       int t_accept(int fd, int resfd, const struct t_call *call);

DESCRIPTION
       This  routine  is  part of the XTI interfaces that evolved from the TLI
       interfaces. XTI represents the future evolution  of  these  interfaces.
       However,  TLI  interfaces are supported for compatibility. When using a
       TLI routine that has the same name  as  an  XTI  routine,  a  different
       header  file,  tiuser.h,  must be used. Refer to the TLI  COMPATIBILITY
       section for a description of differences between the two interfaces.


       This function is issued by a transport user to accept a connection  re‐
       quest.  The  parameter fd identifies the local transport endpoint where
       the connection indication arrived; resfd specifies the local  transport
       endpoint  where  the connection is to be established, and call contains
       information required by the transport provider to complete the  connec‐
       tion.  The  parameter  call points to a t_call structure which contains
       the following members:

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



       In call, addr is the protocol address of the  calling  transport  user,
       opt  indicates any options 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(3C) that uniquely associates the response
       with a previously received connection indication. The  address  of  the
       caller,  addr may be null (length zero). Where addr is not null then it
       may optionally be checked by XTI.


       A transport user may accept a connection on either the same,  or  on  a
       different,  local  transport endpoint than the one on which the connec‐
       tion indication arrived. Before the connection can be accepted  on  the
       same endpoint (resfd==fd), the user must have responded to any previous
       connection  indications received on that transport endpoint by means of
       t_accept() or t_snddis(3C). Otherwise, t_accept()  will  fail  and  set
       t_errno to TINDOUT.


       If  a  different  transport endpoint is specified (resfd!=fd), then the
       user may or may not choose to bind the endpoint before  the  t_accept()
       is  issued.  If  the endpoint is not bound prior to the t_accept(), the
       endpoint must be in the T_UNBND state before the t_accept() is  issued,
       and  the  transport  provider  will automatically bind it to an address
       that is appropriate for the protocol concerned. If the  transport  user
       chooses  to  bind  the  endpoint it must be bound to a protocol address
       with a qlen of zero and must be in the T_IDLE state  before  the  t_ac‐
       cept() is issued.


       Responding  endpoints  should  be  supplied  to t_accept() in the state
       T_UNBND.


       The call to t_accept() may fail with t_errno set to TLOOK if there  are
       indications  (for example connect or disconnect) waiting to be received
       on endpoint fd. Applications should be prepared for such a failure.


       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 limits
       supported by the transport provider as returned in the connect field of
       the info argument of t_open(3C) or t_getinfo(3C). If the len  field  of
       udata  is  zero,  no  data  will  be sent to the caller. All the maxlen
       fields are meaningless.


       When the user does not indicate any option (call→opt.len = 0) the  con‐
       nection  shall be accepted with the option values currently set for the
       responding endpoint resfd.

RETURN VALUES
       Upon successful completion, a value of  0  is  returned.  Otherwise,  a
       value of -1 is returned and t_errno is set to indicate an error.

VALID STATES
       fd: T_INCON


       resfd (fd!=resfd): T_IDLE, T_UNBND

ERRORS
       On failure, t_errno is set to one of the following:

       TACCES           The  user does not have permission to accept a connec‐
                        tion on the responding transport endpoint  or  to  use
                        the specified 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  file  descriptor  fd or resfd does not refer to a
                        transport endpoint.


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


       TBADSEQ          Either  an invalid sequence number was specified, or a
                        valid sequence number was specified but the connection
                        request was aborted by the peer. In the  latter  case,
                        its T_DISCONNECT event will be received on the listen‐
                        ing endpoint.


       TINDOUT          The  function  was called with fd==resfd but there are
                        outstanding connection indications  on  the  endpoint.
                        Those other connection indications must be handled ei‐
                        ther by rejecting them by means of t_snddis(3C) or ac‐
                        cepting them on a different endpoint by means of t_ac‐
                        cept.


       TLOOK            An  asynchronous  event  has occurred on the transport
                        endpoint referenced by fd and requires  immediate  at‐
                        tention.


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


       TOUTSTATE        The communications endpoint referenced by fd or  resfd
                        is  not  in  one of the states in which a call to this
                        function is valid.


       TPROTO           This error indicates that a communication problem  has
                        been  detected  between XTI and the transport provider
                        for which there is no other suitable XTI error  (t_er‐
                        rno).


       TPROVMISMATCH    The  file descriptors fd and resfd do not refer to the
                        same transport provider.


       TRESADDR         This transport provider requires both fd and resfd  to
                        be  bound  to  the same address. This error results if
                        they are not.


       TRESQLEN         The endpoint referenced by resfd (where resfd  !=  fd)
                        was  bound  to  a protocol address with a qlen that is
                        greater than zero.


       TSYSERR          A system error has occurred during execution  of  this
                        function.


TLI COMPATIBILITY
       The XTI and TLI interface definitions have common names but use differ‐
       ent  header files. This, and other semantic differences between the two
       interfaces are described in the subsections below.

   Interface Header
       The XTI interfaces use the header file, xti.h.  TLI  interfaces  should
       not use this header. They should use the header:

         #include <tiuser.h>


   Error Description Values
       The  t_errno  values that can be set by the XTI interface and cannot be
       set by the TLI interface are:

       TPROTO


       TINDOUT


       TPROVMISMATCH


       TRESADDR


       TRESQLEN


   Option Buffer
       The format of the options in an opt buffer is dictated by the transport
       provider. Unlike the XTI interface, the TLI interface does not  specify
       the buffer format.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ MT LevelSafe


SEE ALSO
       t_connect(3C), t_getinfo(3C), t_getstate(3C), t_listen(3C), t_open(3C),
       t_optmgmt(3C), t_rcvconnect(3C), t_snddis(3C), attributes(7)

WARNINGS
       There may be transport provider-specific restrictions on address  bind‐
       ing.


       Some  transport providers do not differentiate between a connection in‐
       dication and the connection itself. If the connection has already  been
       established  after a successful return of t_listen(3C), t_accept() will
       assign the existing connection to the transport endpoint  specified  by
       resfd.

Oracle Solaris 11.4               1 May 1998                      t_accept(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3