t_rcvdis(3xti)															    t_rcvdis(3xti)

Name
       t_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 members:
		 struct netbuf udata;
		 int reason;
		 int sequence:

		 The members of the t_discon struct have the following meanings:

		 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 passive 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 out-
			     standing 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 connect 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 passive  endpoint  with
			   ocnt > 1, it remains in state T_INCON; otherwise, the endpoint state is set to T_IDLE. The disconnect indication infor-
			   mation 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
       t_alloc(3xti), t_connect(3xti), t_listen(3xti), t_open(3xti), t_snddis(3xti)

																    t_rcvdis(3xti)