# HG changeset patch # User Timo Sirainen # Date 1365675339 -10800 # Node ID d594ce839da3075182f170fd0848d91479cb0a13 # Parent e33ec9eb166ee80ff682ac048954e850f4d71125 net_getunixcred() support for NetBSD sc_uid = sc->sc_euid = sc->sc_gid = sc->sc_egid = -1; + memset(&cdata.ch, 0, sizeof cdata.ch); + + memset(&msg, 0, sizeof msg); + + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + msg.msg_control = &cdata; + msg.msg_controllen = sizeof(cdata.ch) + sizeof(cdata.buf); + + for (i = 0; i < 10; i++) { + n = recvmsg(fd, &msg, MSG_WAITALL | MSG_PEEK); + if (n >= 0 || errno != EAGAIN) + break; + usleep(100); + } + if (n < 0) { + i_error("recvmsg() failed: %m"); + return -1; + } + cred_r->uid = sc->sc_euid; + cred_r->gid = sc->sc_egid; + return 0; #else errno = EINVAL; return -1;