Index Click this button to go to the index for this section.



t_rcvuderr - Receives a unit data error indication


XTI Library (libxti.a)


#include <xti.h> int t_rcvuderr( int fd, struct t_uderr *uderr) ;


Interfaces documented on this reference page conform to industry standards as follows: t_rcvuderr: XPG4-UNIX 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: y This is a meaningful parameter. n This is not a meaningful parameter. (y) The content of the object pointed to by y is meaningful. fd Specifies a file descriptor returned by the t_open() function that identifies the local transport endpoint on which the error occurred. 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 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: unsigned int maxlen Specifies the maximum byte length of the data buffer. unsigned int len Specifies the actual byte length of data written to the buffer. char *buf Points to the buffer location. struct netbuf opt Specifies a buffer for protocol-specific parameters associated with the previously sent erroneous data unit. long error 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 can only be called in the T_IDLE transport provider state.


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: [TBADF] File descriptor fd does not refer to a valid transport endpoint. [TNOUDERR] No unit data error indication currently exists at the transport endpoint specified by the fd parameter. [TBUFOVFLW] 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. [TSYSERR] A system error occurred during execution of this function. [TPROTO] 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).


Functions: t_look(3), t_rcvudata(3), t_sndudata(3)