t_rcvdis(3xti)t_rcvdis(3xti)Namet_rcvdis - retrieve information from disconnect
Syntax
#include <xti.h>
int t_rcvdis(fd, discon)
int fd;
struct t_discon *discon;
Arguments
fd Identifies the local transport endpoint.
discon Points to a t_discon structure containing the following mem‐
bers:
struct netbuf udata;
int reason;
int sequence:
The members of the t_discon struct have the following mean‐
ings:
udata Identifies any user data that was sent with the
disconnect.
reason Specifies the reason for the disconnect through a
protocol-dependent reason code.
sequence Identifies an outstanding connect indication with
which the connection is associated. The sequence
field is only meaningful when is issued by a pas‐
sive transport user who has executed one or more
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.
Description
This function is used to identify the cause of a disconnect and to
retrieve any user data sent 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 is discarded. However, if a user
has retrieved more than one outstanding connect indication, by means of
and discon is NULL, the user will be unable to identify with which con‐
nect indication the disconnect is associated.
────────────────────────────────────────────────
Parameters Before Call After Call
────────────────────────────────────────────────
fd x /
discon->udata.maxlen x /
discon->udata.len / x
discon->udata.buf x (?)
discon->reason / x
discon->sequence / ?
────────────────────────────────────────────────
Return Values
Upon successful completion, a value of 0 is returned. On failure, a
value of -1 is returned, and is set to indicate the error.
Diagnostics
On failure, t_errno is set to one of the following:
[TBADF] The specified file descriptor fd does not refer to
a transport endpoint.
[TOUTSTATE] The function was issued in the wrong sequence on
the transport endpoint referenced by fd.
[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. If fd is a pas‐
sive 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.
See Alsot_alloc(3xti), t_connect(3xti), t_listen(3xti), t_open(3xti), t_snd‐
dis(3xti)t_rcvdis(3xti)