NAME
t_rcvuderr() — receive a unit data error indication
SYNOPSIS
#include <xti.h> /* for X/OPEN Transport Interface - XTI */
/* or */
#include <tiuser.h> /* for Transport Layer Interface - TLI */
int t_rcvuderr (fd, uderr);
int fd;
struct t_uderr *uderr;
DESCRIPTION
The
t_rcvuderr()
function is used in connectionless mode to receive information
concerning an error on a previously sent data unit. This function should only be
issued following a unit data error indication. It informs the transport
user that a data unit with a specific destination address and protocol
options produced an error. The argument
fd
identifies the local transport endpoint through which the error report
will be received.
uderr
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:
struct netbuf addr;
struct netbuf opt;
t_scalar_t error;
The type
netbuf
structure is defined in the
<xti.h>
or
<tiuser.h>
header file. This structure, which is used to define buffer parameters,
has the following members:
- unsigned int maxlen
maximum byte length of the data buffer
- unsigned int len
actual byte length of data written to buffer
- char *buf
points to buffer location
The
maxlen
field of
addr
and
opt
must be set before calling
this function to indicate the maximum size of the buffer for each.
On return from this call, the
addr
structure specifies the destination
protocol address of the erroneous data unit the
opt
structure identified
protocol-specific options that were associated with the data unit and
error
specifies a protocol dependent error code.
If the user does not care to identify the data unit that produced an error,
uderr
may be set to a null pointer, and
t_rcvuderr()
will simply
clear the error indication without reporting any information to the user.
Fork Safety
t_rcvuderr
is not fork-safe.
RETURN VALUE
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1
is returned and
t_errno
is set to indicate the error.
ERRORS
On failure,
t_errno
is set to one of the following:
- [TBADF]
The specified file descriptor does not refer to a transport endpoint.
- [TNOUDERR]
No unit data error indication currently exists at the specified transport endpoint.
- [TBUFOVFLW]
The number of bytes allocated for the incoming protocol address or
options information is not sufficient to store that information.
The unit data error information to be returned in
uderr
will be discarded.
- [TNOTSUPPORT]
This function is not supported by the underlying transport provider.
- [TSYSERR]
A system error occurred during execution of this function.
- [TPROTO]
(XTI only) 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).
STANDARDS CONFORMANCE
t_rcvuderr(): SVID2, XPG3, XPG4