60#if defined(__APPLE__) || defined(__FreeBSD__)
62 socklen_t credLen =
sizeof(cred);
63 if (::getsockopt(fd, SOL_LOCAL, LOCAL_PEERCRED, &cred, &credLen) != 0)
65 cr =
Creds(cred.cr_uid, cred.cr_gid);
67#elif defined(OPENVPN_PLATFORM_LINUX)
69 socklen_t uc_len =
sizeof(uc);
70 if (::getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &uc, &uc_len) != 0)
72 cr =
Creds(uc.uid, uc.gid, uc.pid);
75#error no implementation for peercreds()