T_RCVDIS(3N) SysV T_RCVDIS(3N)
NAME
t_rcvdis - retrieve information from disconnect
SYNOPSIS
#include <tiuser.h>
t_rcvdis(fd, discon)
int fd;
struct t_discon *discon;
DESCRIPTION
This function is used to identify the cause of a disconnect, and to
retrieve any user data sent with the disconnect. fd identifies the local
transport endpoint where the connection existed, and discon points to a
t_discon structure containing the following members:
struct netbuf udata;
int reason;
int sequence;
netbuf is described in intro(3). 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 who 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 with
which connect indication the disconnect is associated.
DIAGNOSTICS
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 allocated for incoming data is
not sufficient to store the data. The provider's
state, as seen by the user, will change to T_IDLE,
and 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.
SEE ALSO
intro(3), t_connect(3N), t_listen(3N), t_open(3N), t_snddis(3N)
Programming with the SysV Transport Interface