210 int family,
level, option;
241 v = (
char*)&i; vlen = (int)
sizeof(i);
251 if (setsockopt(fptr->
fd, level, option, v, vlen) < 0)
257 #if !defined(__BEOS__)
332 if (getsockopt(fptr->
fd, level, option, buf, &len) < 0)
338 #define bsock_getsockopt rb_f_notimplement
363 if (getsockname(fptr->
fd, &buf.
addr, &len) < 0)
365 if (len0 < len) len = len0;
394 if (getpeername(fptr->
fd, &buf.
addr, &len) < 0)
396 if (len0 < len) len = len0;
400 #if defined(HAVE_GETPEEREID) || defined(SO_PEERCRED) || defined(HAVE_GETPEERUCRED)
426 #if defined(HAVE_GETPEEREID)
431 if (getpeereid(fptr->
fd, &euid, &egid) == -1)
434 #elif defined(SO_PEERCRED)
439 if (getsockopt(fptr->
fd, SOL_SOCKET, SO_PEERCRED, &cred, &len) == -1)
442 #elif defined(HAVE_GETPEERUCRED)
447 if (getpeerucred(fptr->
fd, &uc) == -1)
455 #define bsock_getpeereid rb_f_notimplement
484 if (getsockname(fptr->
fd, &buf.
addr, &len) < 0)
486 if (len0 < len) len = len0;
518 if (getpeername(fptr->
fd, &buf.
addr, &len) < 0)
520 if (len0 < len) len = len0;