t_rcvuderr Subroutine for Transport Layer Interface

Purpose

Receives a unit data error indication.

Library

Transport Layer Interface Library (libtli.a)

Syntax

#include <tiuser.h>

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

Description

The t_rcvuderr subroutine 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.

Parameters

Item Description
fd Identifies the local transport endpoint through which the error report will be received.
uderr Points to a t_uderr structure containing the following members:
struct netbuf addr;
struct netbuf opt;
long error;

The maxlen field of the addr and opt fields must be set before issuing this function to indicate the maximum size of the buffer for each.

On return from this call, the t_uderr structure contains:

addr
Specifies the destination protocol address of the erroneous data unit.
opt
Identifies protocol-specific options that were associated with the data unit.
error
Specifies a protocol-dependent error code.

If the user decides not to identify the data unit that produced an error, the uderr parameter can be set to null and the t_rcvuderr subroutine will clear the error indication without reporting any information to the user.

Return Values

On successful completion, the t_rcvuderr subroutine returns a value of 0. Otherwise, it returns a value of -1 and sets the t_errno variable to indicate the error.

Error Codes

If unsuccessful, the t_errno variable is set to one of the following:

Value Description
TBADF The specified file descriptor does not refer to a transport end point.
TNOUDERR No unit data error indication currently exists on the specified transport end point.
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 the uderr parameter will be discarded.)
TNOTSUPPORT This subroutine is not supported by the underlying transport provider.
TSYSERR A system error has occurred during execution of this subroutine.