t_sndreldata - Initiate or respond to an orderly release
with user data
#include <xti.h>
int t_sndreldata(
int fd,
struct t_discon *discon );
XTI Library (libxti.a)
Interfaces documented on this reference page conform to
industry standards as follows:
t_sndreldata(): 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_sndreldata() is
called:
------------------------------------------------
Parameters Before Call After Call
------------------------------------------------
fd y n
discon->udata.maxlen y e
discon->udata.len y n
discon->udata.buf o(o) n
discon->reason o n
discon->sequence n n
------------------------------------------------
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.
If a user does not wish to send data and reason
code to the remote user, the value of discon may be
a null pointer.
The t_sndreldata() function is an XTI connection mode service
function that is used to initiate an orderly release
of the outgoing direction of data transfer and to send
user data with the release.
After calling t_sndreldata(), the user may not send any
more data over the connection. However, a user may continue
to receive data if an orderly release indication has
not been received.
The reason field specifies the reason for the disconnection
through a protocol-dependent reason code, and udata
identifies any user data that is sent with the disconnection;
the sequence field is not used.
The udata structure specifies the user data to be sent to
the remote user. The amount of user data must not exceed
the limits supported by the transport provider, as
returned in the discon field of the info argument of
t_open() or t_getinfo(). If the len field of udata is
zero or if the provider did not return T_ORDRELDATA in the
t_open() flags, no data will be sent to the remote user.
This function is an optional service of the transport
provider, only supported by providers of service type
T_COTS_ORD. The T_ORDRELDATA flagin the info->flag field
returned by t_open() or t_getinfo() indicates that the
provider supports orderly release user data; when the flag
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_sndreldata() function fails, t_errno may be set
to one of the following values: The amount of user data
specified was not within the bounds allowed by the transport
provider, or user data was supplied and the provider
did not return T_ORDRELDATA in the t_open() flags. File
descriptor (fd) is not a valid transport endpoint. O_NONBLOCK
was set, but the flow control mechanism prevented
the transport provider from accepting the function. An
asynchronous event occurred on this transport endpoint and
requires immediate attention. 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_sndreldata() 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_rcvreldata(3), t_sndrel(3).
Standards: standards(5)
Network Programmer's Guide
t_sndreldata(3)
[ Back ] |