+static void acceptunix(struct socket *sk)
+{
+ int buf;
+
+ buf = 1;
+#if UNIX_AUTH_STYLE == 1
+ if(setsockopt(sk->fd, SOL_SOCKET, SO_PASSCRED, &buf, sizeof(buf)) < 0)
+ flog(LOG_WARNING, "could not enable SO_PASSCRED on Unix socket %i: %s", sk->fd, strerror(errno));
+#elif UNIX_AUTH_STYLE == 2
+ if(getpeereid(sk->fd, &sk->ucred.uid, &sk->ucred.gid) < 0)
+ {
+ flog(LOG_WARNING, "could not get peer creds on Unix socket %i: %s", sk->fd, strerror(errno));
+ sk->ucred.uid = -1;
+ sk->ucred.gid = -1;
+ }
+#endif
+}
+