Method: UNIXSocket#peeraddr
- Defined in:
- unixsocket.c
#peeraddr ⇒ Array
Returns the remote address as an array which contains address_family and unix_path.
Example
serv = UNIXServer.new("/tmp/sock")
c = UNIXSocket.new("/tmp/sock")
p c.peeraddr #=> ["AF_UNIX", "/tmp/sock"]
520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 |
# File 'unixsocket.c', line 520
static VALUE
unix_peeraddr(VALUE sock)
{
rb_io_t *fptr;
struct sockaddr_un addr;
socklen_t len = (socklen_t)sizeof addr;
socklen_t len0 = len;
GetOpenFile(sock, fptr);
if (getpeername(fptr->fd, (struct sockaddr*)&addr, &len) < 0)
rsock_sys_fail_path("getpeername(2)", fptr->pathv);
if (len0 < len) len = len0;
return rsock_unixaddr(&addr, len);
}
|