t_getinfo(3xti)


t_getinfo -- get protocol-specific service information

Synopsis

cc [options] file -lnsl
#include <xti.h>

int t_getinfo(int fd, struct t_info *info);

Description

This function is a TLI/XTI local management routine used to return the current characteristics of the underlying transport protocol associated with file descriptor fd. The t_info structure is used to return the same information returned by t_open, although not necessarily precisely the same values. This function enables a transport user to access this information during any phase of communication.

Parameters


fd
the file descriptor for the transport endpoint

info
points to the t_info structure used to identify a transport provider.

Structure definitions

This argument points to a struct t_info which contains the following members:
long addr;      /* max size of the transport protocol address          */
long options;   /* max num of bytes of protocol-specific options       */
long tsdu;      /* max size of a transport service data unit (TSDU)    */
long etsdu;     /* max size of an expedited TSDU (ETSDU)               */
long connect;   /* max amt of data allowed on connect establishment    */
long discon;    /* max amt of data allowed on t_snddis, t_rcvdis       */
long servtype;  /* service type supported by transport provider        */
long flags;     /* provides more info about transport provider         */
The values of the fields have the following meanings:

addr
A value greater than or equal to 0 indicates the maximum size of a transport protocol address, and a value of -2 specifies that the transport provider does not provide user access to transport protocol addresses.

options
A value greater than or equal to 0 indicates the maximum number of bytes of protocol-specific options supported by the provider, and a value of -2 specifies that the transport provider does not support user-settable options.

tsdu
A value greater than 0 specifies the maximum size of a transport service data unit (TSDU); a value of 0 specifies that the transport provider does not support the concept of TSDU, although it does support the sending of a data stream with no logical boundaries preserved across a connection; a value of -1 specifies that there is no limit on the size of a TSDU; and a value of -2 specifies that the transfer of normal data is not supported by the transport provider.

etsdu
A value greater than 0 specifies the maximum size of an expedited transport service data unit (ETSDU); a value of 0 specifies that the transport provider does not support the concept of ETSDU, although it does support the sending of an expedited data stream with no logical boundaries preserved across a connection; a value of -1 specifies that there is no limit on the size of an ETSDU; and a value of -2 specifies that the transfer of expedited data is not supported by the transport provider.

connect
A value greater than 0 specifies the maximum amount of data that may be associated with connection establishment functions; and a value of -2 specifies that the transport provider does not allow data to be sent with connection establishment functions.

discon
A value greater than 0 specifies the maximum amount of data that may be associated with the t_snddis and t_rcvdis functions, and a value of -2 specifies that the transport provider does not allow data to be sent with the abortive release functions.

servtype
This field specifies the service type supported by the transport provider. A single transport endpoint may support only one of the following services at one time.

T_COTS
The transport provider supports a connection-mode service but does not support the optional orderly release facility.

T_COTS_ORD
The transport provider supports a connection-mode service with the optional orderly release facility.

T_CLTS
The transport provider supports a connectionless service. For this service type, t_open will return -2 for etsdu, connect, and discon.

flags
This field specifies other information in the form of bit indicators as follows: If T_SENDZERO is on, this indicates that the underlying transport provider supports the sending of 0-length TSDUs.

State transitions

t_getinfo may be issued from any valid state except T_UNINIT and has no effect on the state.

Files


/usr/lib/libxti.so
X/Open® Transport Interface Library (shared object)

/usr/lib/libnsl.so
Network Services Library (shared object)
Examine your system's /etc/netconfig file for device files associated with a transport protocol provider.

Usage

If a transport user is concerned with protocol independence, the sizes specified in t_info may be accessed to determine how large the buffers must be to hold each piece of information. Alternatively, the t_alloc function may be used to allocate these buffers.

The value of each field may change as a result of protocol option negotiation during connection establishment. These values will only change from the values presented to t_open after the endpoint enters the T_DATAXFER state.

Return values

t_getinfo returns 0 on success and -1 on failure and t_errno is set to indicate the error.

Errors

On failure, t_errno may be set to the following:

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

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

TPROTO
A communication problem has been detected with the transport provider and there is no other value of t_errno to describe the error condition.

Warnings

An error will result if the data size allowed is exceeded by the transport user on any function.

References

close(2), open(2), t_alloc(3xti), t_close(3xti), t_open(3xti), netconfig(4bnu)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004