NAME
t_getprotaddr() — get the protocol address
SYNOPSIS
#include <xti.h> /* for X/OPEN Transport Interface - XTI */
int t_getprotaddr (fd, boundaddr, perraddr);
int fd;
struct t_bind *boundaddr;
struct t_bind *peeraddr;
DESCRIPTION
The
t_getprotaddr()
function returns local and remote protocol addresses
currently associated with the transport endpoint specified by
fd.
In
boundaddr
and
peeraddr
the user specifies
maxlen,
which is
the maximum size of the address buffer, and
buf
which points to the
buffer where the address is to be placed. On return, the
buf
field of
boundaddr
points to the address, if any, currently bound to
fd,
and the
len
field specifies the length of the address. If the transport
endpoint is in the T_UNBND state, zero is returned in the
len
field of
boundaddr.
The
buf
field of
peeraddr
points to the address, if any, currently connected to
fd,
and the
len
field
specifies the length of the address. If the transport endpoint is not
in the T_DATAXFER state, zero is returned in the
len
field of
peeraddr.
Thread-Safeness
The
t_getprotaddr()
function is safe to be called by multithreaded applications, and it is
thread-safe for both POSIX Threads and DCE User Threads.
It has a cancellation point.
It is neither async-cancel safe nor async-signal safe.
Finally, it is not fork-safe.
Valid States
All - apart from T_UNINIT
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 the following
- [TBADF]
The specified identifier does not refer to a transport endpoint.
- [TBUFOVFLW]
The number of bytes allocated for an incoming argument (
maxlen)
is greater than 0 but not sufficient to store the value of that argument.
- [TSYSERR]
A system error has 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).