NAME
getpeername — get address of connected peer
SYNOPSIS
#include <sys/socket.h>
AF_CCITT only:
#include <x25/x25addrstr.h>
int getpeername(int s, void *addr, int *addrlen);
_XOPEN_SOURCE_EXTENDED only
int getpeername(int s, struct sockaddr *addr, size_t *addrlen);
DESCRIPTION
getpeername()
returns the address of the peer socket connected to the socket indicated by
s,
where
s
is a socket descriptor.
addr
points to a socket address structure in which this address is returned.
addrlen
points to an object of type
int,
which should be initialized
to indicate the size of the address structure.
On return, it contains the actual size
of the address returned (in bytes).
If
addr
does not point to enough space to contain the whole address of the peer,
only the first
addrlen
bytes of the address are returned.
AF_CCITT only:
The
addr
struct contains the
X.25
addressing information of the
remote
peer socket connected to socket
s.
However, the
x25ifname[]
field of the
addr
struct contains the name of the
local
X.25
interface through which the call arrived.
RETURN VALUE
Upon successful completion,
getpeername()
returns 0; otherwise it returns -1 and sets
errno
to indicate the error.
ERRORS
getpeername()
fails if any of the following conditions are encountered:
- [EBADF]
s
is not a valid file descriptor.
- [ENOTSOCK]
s
is a valid file descriptor, but it is not a socket.
- [ENOTCONN]
The socket is not connected.
- [ENOBUFS]
No buffer space is available
to perform the operation.
- [EFAULT]
addr
or
addrlen
are not valid pointers.
- [EINVAL]
The socket has been shut down.
- [EOPNOTSUPP]
Operation not supported for
AF_UNIX
sockets.
FUTURE DIRECTION
The default behavior in this release is still the classic
HP-UX BSD Sockets,
however it will be changed to
X/Open Sockets
in some future release.
At that time, any
HP-UX BSD Sockets
behavior which is incompatible with
X/Open Sockets
may be obsoleted.
HP customers are advised to migrate their applications to conform
to
X/Open
specification (see
xopen_networking(7)).
MULTITHREAD USAGE
The
getpeername()
system call 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 async-cancel safe, async-signal safe, and fork-safe.
AUTHOR
getpeername()
was developed by the University of California, Berkeley.