getpeerucred(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

getpeerucred(3c)

getpeerucred(3C)         Standard C Library Functions         getpeerucred(3C)

NAME
       getpeerucred,  getpeereid  - get connected socket or stream peer's cre‐
       dentials

SYNOPSIS
       #include <ucred.h>

       int getpeerucred(int fd, ucred_t **ucred);


       #include <sys/types.h>
       #include <sys/socket.h>

       int getpeereid(int fd, uid_t *euidp, gid_t *egidp);

DESCRIPTION
       The getpeerucred() and getpeereid() functions return 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  cre‐
       dentials  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 allo‐
       cated ucred_t in the memory location pointed to by the  ucred  argument
       if  that memory location contains the null pointer. If the memory loca‐
       tion is non-null, it will reuse the existing ucred_t.


       When ucred is no longer needed, a  credential  allocated  by  getpeeru‐
       cred() 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.


       When successful, getpeereid() stores the effective uid  in  the  memory
       location  pointed to by euidp and the effective gid in the memory loca‐
       tion pointed to by egidp.

RETURN VALUES
       Upon successful completion, getpeerucred() and getpeereid()  return  0.
       Otherwise, they return −1 and errno is set to indicate the error.

ERRORS
       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 ucred_t ** argument
                   points to an invalid, non-null address.


       EINVAL      The socket is connected but the peer  credentials  are  un‐
                   known.


       ENOMEM      The  physical limits of the system are exceeded by the mem‐
                   ory allocation needed to hold the user credential.


       ENOTCONN    The socket or stream is not connected or the stream's  peer
                   is unknown.


       ENOTSUP     This operation is not supported on this file descriptor.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe


SEE ALSO
       door_ucred(3C), ucred_get(3C), connld(4M), attributes(7)

NOTES
       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.

HISTORY
       The getpeerucred() function was added to Solaris in Solaris 10.


       The getpeereid() function  was  added  to  Oracle  Solaris  in  Solaris
       11.4.81.

Oracle Solaris 11.4               10 Feb 2025                 getpeerucred(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3