GETPEERUCRED(3C) | Standard C Library Functions | GETPEERUCRED(3C) |
getpeerucred - get connected socket or stream peer's credentials
#include <ucred.h> int getpeerucred(int fd, ucred_t **ucred);
The getpeerucred() function returns the credentials of the peer endpoint of a connection-oriented socket (SOCK_STREAM) or stream fd at the time the endpoint was created or the connection was established. A process that initiates a connection 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 ucred_t 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 ucred_t.
When ucred is no longer needed, a credential allocated by getpeerucred() should be freed with ucred_free(3C).
It is possible that all fields of the ucred_t are not available to all peer endpoints and all callers.
Upon successful completion, getpeerucred() returns 0. Otherwise, it returns −1 and errno is set to indicate the error.
The getpeerucred() function will fail if:
EAGAIN
EBADF
EFAULT
EINVAL
ENOMEM
ENOTCONN
ENOTSUP
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Evolving |
MT-Level | MT-Safe |
The system currently supports both sides of connection endpoints for local AF_UNIX, AF_INET, and AF_INET6 sockets, /dev/tcp, /dev/ticots, and /dev/ticotsord XTI/TLI connections, and pipe file descriptors sent using I_SENDFD as a result of the open of a named pipe with the "connld" module pushed.
May 26, 2004 | OmniOS |