diff --git a/net.c b/net.c index f56664e1..72e10f11 100644 --- a/net.c +++ b/net.c @@ -1773,6 +1773,24 @@ sys_getsockopt(struct tcb *tcp) return 0; } break; +#endif +#ifdef SO_PEERCRED + case SO_PEERCRED: + if (len == sizeof (struct ucred)) { + struct ucred uc; + if (umove (tcp, + tcp->u_arg[3], + &uc) < 0) + break; + tprintf("{pid=%ld, uid=%ld, gid=%ld}, " + "[%d]", + (long)uc.pid, + (long)uc.uid, + (long)uc.gid, + len); + return 0; + } + break; #endif } break;