getpeername - get name of connected peer


SYNOPSIS

       #include <sys/socket.h>

       int  getpeername(int  s,  struct sockaddr *name, socklen_t
       *namelen);


DESCRIPTION

       Getpeername returns the name  of  the  peer  connected  to
       socket  s.  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 name returned
       (in bytes).  The name is truncated if the buffer  provided
       is too small.


RETURN VALUE

       On  success,  zero is returned.  On error, -1 is returned,
       and errno is set appropriately.


ERRORS

       EBADF  The argument s is not a valid descriptor.

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

       ENOTCONN
              The socket is not connected.

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

       EFAULT The  name parameter points to memory not in a valid
              part of the process address space.


CONFORMING TO

       SVr4, 4.4BSD (the getpeername function call first appeared
       in 4.2BSD).


NOTE

       The third argument of getpeername is in reality an `int *'
       (and this is what BSD 4.* and libc4 and libc5 have).  Some
       POSIX  confusion  resulted  in the present socklen_t.  The
       draft standard  has  not  been  adopted  yet,  but  glibc2
       already  follows  it  and  also  has  socklen_t.  See also
       accept(2).


SEE ALSO

       accept(2), bind(2), getsockname(2)