t_rcvuderr - Receive a unit data error indication
#include <xti.h>
int t_rcvuderr(
int fd,
struct t_uderr *uderr );
XTI Library (libxti.a)
Interfaces documented on this reference page conform to
industry standards as follows:
t_rcvuderr(): XNS4.0, 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_rcvuderr() is called:
----------------------------------------------
Parameters Before Call After Call
----------------------------------------------
fd y n
uderr->addr.maxlen y n
uderr->addr.len n y
uderr->addr.buf y (y)
uderr->opt.maxlen y n
uderr->opt.len n y
uderr->opt.buf y (y)
uderr->error n y
----------------------------------------------
Notes to Table: This is a meaningful parameter. This is
not a meaningful parameter. The content of the object
pointed to by y is meaningful.
Specifies a file descriptor returned by the t_open() function
that identifies the local transport endpoint on which
the error occurred. Points to a type t_uderr structure
used to specify the protocol address, protocol options,
and the nature of the error associated with the data unit
sent through the transport endpoint specified by the fd
parameter. The t_uderr structure has the following members:
References a buffer for protocol address information
associated with the erroneous data unit sent from the
transport endpoint specified by the fd parameter. The type
netbuf structure referenced by this member is defined in
the xti.h include file and has the following members:
Specifies the maximum byte length of the data buffer.
Specifies the actual byte length of data written to the
buffer. Points to the buffer location. Specifies a
buffer for protocol-specific parameters associated with
the previously sent erroneous data unit. Specifies a protocol-specific
error code associated with the previously
sent erroneous data unit.
Before the t_rcvuderr() function is called the
uderr->addr.maxlen and uderr->opt.maxlen parameters
must be set to specify the maximum byte length of
the protocol address buffer and the protocol
options buffer, respectively, of the calling transport
user.
When a transport user does not wish to identify the
source of the previously sent data unit error, the
uderr parameter may be specified as a null pointer.
When this parameter is expressed as a null pointer,
the data unit error indication is cleared, but no
information is returned to buffers pointed to by
this parameter.
The t_rcvuderr() function is an XTI connectionless service
function that is used to retrieve information about an
error indication returned when a data unit was previously
sent with a t_sndudata() call.
The t_rcvuderr() function should be called only after a
[T_LOOK] error is returned in response to a t_sndudata()
call. When t_rcvuderr() successfully executes, the error
will be cleared. The t_rcvuderr() function uses type
t_uderr and netbuf structures, which are defined in the
xti.h include file.
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.
If the t_rcvuderr() function fails, t_errno may be set to
one of the following values: File descriptor fd does not
refer to a valid transport endpoint. No unit data error
indication currently exists at the transport endpoint
specified by the fd parameter. The number of bytes allocated
for the incoming protocol address or options information
is not sufficient to store that information. Unit
data error information was not returned to buffers pointed
to by the uderr parameter. A system error occurred during
execution of this function. This error indicates that a
communication problem has been detected between XTI and
the transport provider for which there is no other suitable
XTI(t_errno).
The t_rcvuderr() function can only be called in the T_IDLE
transport provider state.
Functions: t_look(3), t_rcvudata(3), t_sndudata(3)
Standards: standards(5)
Network Programmer's Guide
t_rcvuderr(3)
[ Back ] |