T_RCVUDERR(3N)

NAME
t_rcvuderr - receive a unit data error indication

SYNOPSIS

#include <tiuser.h>

int t_rcvuderr(fd, uderr)
int fd;
struct t_uderr *uderr;

DESCRIPTION

t_rcvuderr() is used in connectionless mode to receive information concerning an error on a previously sent data unit, and 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. fd identifies the local transport endpoint through which the error report will be received, and uderr points to a t_uderr() structure defined in <nettli/tiuser.h> as:
    struct t_uderr {
    	struct netbuf addr;			/* address	*/
    	struct netbuf opt;			/* options	*/
    	long  error;				/* error code	*/
    };

The maxlen, len, and buf members of the netbuf structure are described in t_accept(3N). The maxlen field of addr and opt must be set before issuing 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 identifies 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 NULL and t_rcvuderr() will simply clear the error indication without reporting any information to the user.

RETURN VALUES

t_rcvuderr() returns:

0   on success.

-1  on failure and sets t_errno to indicate the error.

ERRORS

TBADF
    The specified file descriptor does not refer to a transport endpoint.

TBUFOVFLW
    The number of bytes allocated for the incoming protocol address or options is not sufficient to store the 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.

TNOUDERR
    No unit data error indication currently exists on the specified transport endpoint.

TSYSERR
    The function failed due to a system error and set errno to indicate the error.

SEE ALSO
intro(3), t_rcvudata(3N), t_sndudata(3N)