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