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

개요

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

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
       request. 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_accept() 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
                        either by rejecting them by means of  t_snddis(3C)  or
                        accepting  them  on  a  different endpoint by means of
                        t_accept.


       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.


       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_errno).


       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
       indication 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