Standard C Library Functions getpeerucred(3C)
NAME
getpeerucred - get connected socket or STREAM peer's creden-
tials
SYNOPSIS
#include
int getpeerucred(int fd, ucredt **ucred);
DESCRIPTION
The getpeerucred() function returns the credentials of the
peer endpoint of a connection-oriented socket (SOCKSTREAM)
or STREAM fd at the time the endpoint was created or the
connection was established. A process that initiates a con-
nection retrieves the credentials of its peer at the time
the peer's endpoint was created. A process that listens for
connections retrieves the credentials of the peer at the
time the peer initiated the connection.
When successful, getpeerucred() stores the pointer to a
freshly allocated ucredt in the memory location pointed to
by the ucred argument if that memory location contains the
null pointer. If the memory location is non-null, it will
reuse the existing ucredt.
When ucred is no longer needed, a credential allocated by
getpeerucred() should be freed with ucredfree(3C).
It is possible that all fields of the ucredt are not avail-
able to all peer endpoints and all callers.
RETURN VALUES
Upon successful completion, getpeerucred() returns 0. Other-
wise, it returns -1 and errno is set to indicate the error.
ERORS
The getpeerucred() function will fail if:
EAGAIN There is not enough memory available to allocate
sufficient memory to hold the user credential.
The application can try again later.
EBADF The fd argument is not a valid file descriptor.
EFAULT The pointer location pointed to by the ucredt
** argument points to an invalid, non-null
SunOS 5.11 Last change: 26 May 2004 1
Standard C Library Functions getpeerucred(3C)
address.
EINVAL The socket is connected but the peer credentials
are unknown.
ENOMEM The physical limits of the system are exceeded
by the memory allocation needed to hold the user
credential.
ENOTCON The socket or STREAM is not connected or the
STREAM's peer is unknown.
ENOTSUP This operation is not supported on this file
descriptor.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Evolving
MT-Level MT-Safe
SEE ALSO
doorucred(3C), ucredget(3C), attributes(5), connld(7M)
NOTES
The system currently supports both sides of connection end-
points for local AFUNIX, AFINET, and AFINET6 sockets,
/dev/tcp, /dev/ticots, and /dev/ticotsord XTI/TLI connec-
tions, and pipe file descriptors sent using ISENDFD as a
result of the open of a named pipe with the "connld" module
pushed.
SunOS 5.11 Last change: 26 May 2004 2
|