t_rcvreldata - Receive an orderly release indication or
confirmation containing user data
#include <xti.h>
int t_rcvreldata(
int fd,
struct t_discon *discon );
XTI Library (libxti.a)
Interfaces documented on this reference page conform to
industry standards as follows:
t_rcvreldata(): XNS5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
The following table summarizes the relevance of input and
output parameters before and after t_rcvreldata() is
called:
------------------------------------------------
Parameters Before Call After Call
------------------------------------------------
fd y n
discon->udata.maxlen y e
discon->udata.len n y
discon->udata.buf o (o)
discon->reason n y
discon->sequence n e
------------------------------------------------
Notes to Table: This is a meaningful parameter. The content
of the object pointed to by y is meaningful. This is
a meaningful but optional parameter. The content of the
object pointed to by o is meaningful. The parameter value
after the call is the same as before the call. This is
not a meaningful parameter. Identifies the local transport
endpoint where the connection exists. Points to a
t_discon structure that contains the following members:
Identifies any user data that was sent with the disconnection.
Specifies a protocol-dependent reason code that
explains the disconnection. Unused.
The t_rcvreldata() function is an XTI connection mode service
function that is used to receive an orderly release
indication for the incoming direction of data transfer and
to retrieve any user data sent with the release. After
receipt of this indication, you cannot attempt to receive
more data by using t_rcv() or t_rcvv(). If you do, the
attempt will fail with t_error set to [TOUTSTATE]. However,
the you may continue to send data over the connection
if you have not called t_sndrel() or t_sndreldata().
The reason field specifies the reason for the disconnection
through a protocol-dependent reason code, and udata
identifies any user data that was sent with the disconnection;
the sequence field is not used.
If you do not care if there is incoming data and doe not
need to know the value of reason, discon may be a null
pointer, and any user data associated with the disconnection
will be discarded.
If discon->udata.maxlen is greater than zero and less than
the length of the value, t_rcvreldata() fails with t_errno
set to [TBUFOVFLW].
This function is an optional service of the transport
provider, only supported by providers of service type
T_COTS_ORD. The T_ORDRELDATA option in the info->option
field returned by t_open() or t_getinfo() indicates that
the provider supports orderly release user data; when the
option is not set, this function behaves as t_rcvrel() and
no user data is returned.
This function may not be available on all systems.
If the t_rcvreldata() function fails, t_errno may be set
to one of the following values: File descriptor (fd) is
not a valid transport endpoint. The number of bytes allocated
for incoming data (maxlen) is greater than 0, but
not sufficient to store the data, and the disconnection
information to be returned in discon will be discarded.
The provider state, as seen by the user, will be changed
as if the data was successfully retrieved. An asynchronous
event occurred on this transport endpoint and
requires immediate attention. No orderly release indication
currently exists on the specified transport endpoint.
Orderly release is not supported by the underlying transport
provider. The communications endpoint referenced by
fd is not in a valid state in which a call to this function.
A communication problem has been detected between
XTI and the transport provider for which there is no other
suitable XTI error (t_errno). A system error occurred
during execution of this function.
The t_rcvreldata() function can be called in either the
T_DATAXFER or T_OUTREL transport provider states.
Upon successful completion, a value of 0 (zero) is
returned. Otherwise, a value of -1 is returned and t_errno
is set to indicate the error.
Functions: t_getinfo(3), t_open(3), t_rcvrel(3),
t_sndrel(3), t_sndreldata(3).
Standards: standards(5)
Network Programmer's Guide
t_rcvreldata(3)
[ Back ] |