unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Page:
Section:
Apropos / Subsearch:
optional field

GETPEEREID(3)            BSD Library Functions Manual            GETPEEREID(3)

NAME
     getpeereid -- get effective user and group identification of locally-con-
     nected peer

SYNOPSIS
     #include <&lt;sys/types.h>&gt;
     #include <&lt;sys/socket.h>&gt;

     int
     getpeereid(int s, uid_t *euid, gid_t *egid);

DESCRIPTION
     getpeereid() returns the effective user ID and group ID of the peer con-
     nected to a UNIX-domain socket (see unix(4)).  The argument s must be of
     type SOCK_STREAM or SOCK_SEQPACKET.

     One common use is for UNIX-domain servers to determine the credentials of
     clients that have connected to it.

     getpeereid() takes three parameters:

     o   s contains the file descriptor of the socket whose peer credentials
         should be looked up.

     o   euid points to a uid_t variable into which the effective user ID for
         the connected peer will be stored.

     o   egid points to a gid_t variable into which the effective group ID for
         the connected peer will be stored.

RETURN VALUES
     If the call succeeds, a 0 is returned and euid and egid are set to the
     effective user ID and group ID of the connected peer.  Otherwise, errno
     is set and a value of -1 is returned.

ERRORS
     On failure, errno is set to one of the following:

     [EBADF]            The argument s is not a valid descriptor.

     [ENOTSOCK]         The argument s is a file, not a socket.

     [EOPNOTSUPP]       The socket is not in the UNIX-domain.

     [ENOTCONN]         The socket is not connected.

     [ENOBUFS]          Insufficient resources were available in the system to
                        perform the operation.

SEE ALSO
     accept(2), bind(2), getpeername(2), getsockname(2), getsockopt(2),
     socket(2), unix(4)

HISTORY
     The getpeereid() function call appeared in OpenBSD 3.0.

BSD                              June 5, 2013                              BSD