getpeername(3sock)
getpeername --
get address of connected peer
Synopsis
cc [options] file -lsocket -lnsl
#include <sys/types.h>
#include <sys/socket.h>
int getpeername(int socket, struct sockaddr *name, size_t *namelen);
Description
getpeername
returns the address of the peer connected to socket
s.
The
int
pointed to by the
namelen
parameter should be initialized to indicate
the amount of space pointed to by
name.
On return it contains the actual size of the address
returned (in bytes).
The name is truncated if the buffer provided is too small.
If the protocol allows unbound clients to connect, and the peer is not
bound, getpeername sets the value pointed to by
namelen to 0, and puts nothing in the
struct sockaddr pointed to by name.
Files
/usr/lib/locale/locale/LC_MESSAGES/uxns1
Return values
0 is returned if the call succeeds, -1 if it fails.
Errors
The call succeeds unless:
EBADF-
socket is not a valid descriptor.
EINVAL-
The socket has been shut down.
ENOBUFS-
System resources were insufficient to complete the call.
ENOMEM-
There was insufficient user memory for the operation to complete.
ENOSR-
There were insufficient STREAMS
resources available for the operation to complete.
ENOTCONN-
The socket is not connected, or otherwise has not had the peer prespecified.
ENOTSOCK-
socket not a socket.
EOPNOTSUPP-
The operation is not supported for the socket protocol.
References
accept(3sock),
bind(3sock),
getsockname(3sock),
socket(3sock)
RFC 2133
Notices
The type of address structure passed to getpeername
depends on the address family.
UNIX® domain sockets (address family AF_UNIX) require a
sockaddr_un structure as defined in sys/un.h;
Internet domain IPv4 sockets (address family AF_INET)
require a sockaddr_in structure as defined in
netinet/in.h;
Internet domain IPv6 sockets (address family AF_INET6)
require a sockaddr_in6 structure as defined in
netinet/in.h.
Other address families may require other structures.
Use the structure appropriate to the address family; cast the
structure address to a generic struct sockaddr * in the call to
getpeername
and pass the size of the structure in the namelen argument.
In UnixWare 7 the sockaddr structure has been modified
to support variable length sockets.
The net result of this modification is that the
family
member has been shortened to 8 bits and a new 8-bit
member inserted before it called len
. For more information on the new
sockaddr structures, see:
unix(7sock)
and
inet(7tcp).
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004