t_rcvdis(3xti)


t_rcvdis -- retrieve information from disconnect

Synopsis

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

int t_rcvdis(int fd, struct t_discon *discon);

Description

This function is a TLI/XTI connection release routine used to identify the cause of a disconnect and to retrieve any user data sent with the disconnect.

fd is used by the calling transport user to identify the local transport endpoint where the connection existed, and on return discon points to the information associated with the disconnection.

Parameters


fd
the file descriptor for the transport endpoint where the connection had been established.

discon
points to the t_discon structure associated with the disconnect information.

Structure definitions

The discon argument points to a t_discon structure containing the following members:
   struct netbuf udata;	/* user data	*/
   int reason;		/* reason code	*/
   int sequence;		/* connect ind.	*/
netbuf is described in intro(3xti). reason specifies the reason for the disconnect through a protocol-dependent reason code, udata identifies any user data that was sent with the disconnect, and sequence may identify an outstanding connect indication with which the disconnect is associated. sequence is only meaningful when t_rcvdis is issued by a passive transport user which has executed one or more t_listen functions and is processing the resulting connect indications.

If a disconnect indication occurs, sequence can be used to identify which of the outstanding connect indications is associated with the disconnect.

If a user does not care if there is incoming data and does not need to know the value of reason or sequence, discon may be NULL, and any user data associated with the disconnect will be discarded. However, if a user has retrieved more than one outstanding connect indication (via t_listen) and discon is NULL, the user will be unable to identify which connect indication the disconnect is associated with.

State transitions

t_rcvdis may be issued from any valid state except T_UNINIT, T_UNBND, or T_IDLE. Valid states on exit are T_IDLE (successful) and T_INCON (successful but there are connect indications outstanding).

Files


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

/usr/lib/libnsl.so
Network Services Library (shared object)

Return values

t_rcvdis 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 one of the following:

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

TNODIS
No disconnect indication currently exists on the specified transport endpoint.

TBUFOVFLW
The number of bytes (maxlen) allocated for incoming data is greater than zero but not sufficient to store the data. If fd is a passive endpoint with ocnt>1, it remains in state T_INCON; otherwise, the endpoint state is set to T_IDLE. The disconnect indication information to be returned in discon will be discarded.

TNOTSUPPORT
This function is not supported by the underlying transport provider.

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

TOUTSTATE
The function was issued in the wrong sequence on the transport endpoint referenced by fd.

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.

References

intro(3xti), t_connect(3xti), t_listen(3xti), t_open(3xti), t_snddis(3xti)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004