t_connect man page on SunOS

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

t_connect(3NSL)	     Networking Services Library Functions     t_connect(3NSL)

NAME
       t_connect - establish a connection with another transport user

SYNOPSIS
       #include <xti.h>

       int t_connect(int fd, const struct t_call *sndcall, struct t_call *rcv‐
       call);

DESCRIPTION
       This routine is part of the XTI interfaces which 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, the  tiuser.h
       header file must be used.  Refer to the	TLI COMPATIBILITY section  for
       a  description of differences between the two interfaces. This function
       enables a transport user to request a connection to the specified  des‐
       tination transport user.

       This function can only be issued in the	T_IDLE state. The parameter 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;

       The parameter sndcall specifies information  needed  by	the  transport
       provider	 to  establish	a connection and rcvcall specifies information
       that is associated with the newly established connection.

       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	 func‐
       tion.

       On  return,  in	rcvcall, addr contains the protocol address associated
       with the responding transport endpoint, opt  represents	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 function.

       The opt argument permits users to define the options that may be passed
       to  the transport provider. The user may choose not to negotiate proto‐
       col options by setting the len field of opt to zero. In this case,  the
       provider	 uses  the  option values currently set for the communications
       endpoint.

       If used, sndcall→opt.buf must point to a buffer with the	 corresponding
       options,	 and   sndcall→opt.len must specify its length. The maxlen and
       buf fields of the netbuf structure pointed  by  rcvcall→addr  and  rcv‐
       call→opt must be set before the call.

       The udata argument enables the caller to pass user data to the destina‐
       tion 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
       in  the	connect	 field	of the info argument of t_open(3NSL) or t_get‐
       info(3NSL). If the len 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	 field
       of  each	 argument must be set before issuing this function to indicate
       the maximum size of the buffer for each. However, maxlen can be set  to
       zero,  in  which case no information to this specific argument is given
       to the user on the return from  t_connect(). If maxlen is greater  than
       zero  and  less	than  the length of the value,	t_connect() fails with
       t_errno set to TBUFOVFLW. If  rcvcall is set to	NULL,  no  information
       at all is returned.

       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  (that is, return value of zero) indicates
       that the requested connection has been established. However, if	O_NON‐
       BLOCK  is  set	by means of t_open(3NSL) or fcntl(2), t_connect() exe‐
       cutes 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 connection establishment procedure	by  sending  a
       connection  request  to	the  destination transport user. The t_rcvcon‐
       nect(3NSL) function is used in conjunction with t_connect()  to	deter‐
       mine the status of the requested connection.

       When  a synchronous t_connect() call is interrupted by the arrival of a
       signal, the state of the corresponding transport endpoint is  T_OUTCON,
       allowing a further call to either t_rcvconnect(3NSL), t_rcvdis(3NSL) or
       t_snddis(3NSL). When an asynchronous  t_connect() call  is  interrupted
       by  the	arrival of a signal,  the state of the corresponding transport
       endpoint is  T_IDLE.

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
       T_IDLE

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

       TACCES	       The  user does not have permission to use the specified
		       address or options.

       TADDRBUSY       This transport provider does not support multiple  con‐
		       nections with the same local and remote addresses. This
		       error indicates that a connection already exists.

       TBADADDR	       The specified protocol address was in an incorrect for‐
		       mat 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  argument
		       (maxlen)	 is greater than 0 but 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  information	to  be
		       returned in rcvcall is discarded.

       TLOOK	       An  asynchronous	 event	has occurred on this transport
		       endpoint and requires immediate attention.

       TNODATA	       O_NONBLOCK was set, so the function successfully initi‐
		       ated  the  connection  establishment procedure, but did
		       not wait for a response from the remote user.

       TNOTSUPPORT     This function is not supported by the underlying trans‐
		       port provider.

       TOUTSTATE       The communications endpoint referenced by  fd 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).

       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 TPROTO and TADDRBUSY t_errno values can be set by the XTI interface
       but not by the TLI interface.

       A  t_errno  value  that this routine can return under different circum‐
       stances than its XTI counterpart is TBUFOVFLW. It can be returned  even
       when the maxlen field of the corresponding buffer has been set to zero.

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

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

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

SEE ALSO
       fcntl(2),   t_accept(3NSL),   t_alloc(3NSL),   t_getinfo(3NSL),	t_lis‐
       ten(3NSL),    t_open(3NSL),    t_optmgmt(3NSL),	   t_rcvconnect(3NSL),
       t_rcvdis(3NSL), t_snddis(3NSL), attributes

SunOS 5.10			  7 May 1998		       t_connect(3NSL)
[top]

List of man pages available for SunOS

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