t_accept man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

T_ACCEPT(3NSL)							T_ACCEPT(3NSL)

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
       connection.  The parameter call points to a t_call structure which con‐
       tains 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(3NSL) 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(3NSL). 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 trans‐
       port 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(3NSL) or t_getinfo(3NSL). 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  lis‐
			tening 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(3NSL)
			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(5)  for descriptions of the following attributes:

       ┌───────────────┬─────────────────┐
       │ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
       ├───────────────┼─────────────────┤
       │MT Level       │ Safe		 │
       └───────────────┴─────────────────┘

SEE ALSO
       t_connect(3NSL),	 t_getinfo(3NSL),  t_getstate(3NSL),   t_listen(3NSL),
       t_open(3NSL),   t_optmgmt(3NSL),	  t_rcvconnect(3NSL),  t_snddis(3NSL),
       attributes(5)

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(3NSL),
       t_accept() will assign the existing connection to  the  transport  end‐
       point specified by resfd.

				  May 1, 1998			T_ACCEPT(3NSL)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net