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.
Valid States
All - apart from
T_UNINIT.
Fork Safety
t_getprotaddr
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 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).