]> andersk Git - gssapi-openssh.git/blobdiff - openssh/openbsd-compat/bsd-getpeereid.c
merged OpenSSH 4.7p1 to trunk
[gssapi-openssh.git] / openssh / openbsd-compat / bsd-getpeereid.c
index bdae8b637f47f26c49ca95ca04f961628b075723..5f7e677e5cdf3e75fc73d3b6c462346aae4ec572 100644 (file)
@@ -37,6 +37,28 @@ getpeereid(int s, uid_t *euid, gid_t *gid)
 
        return (0);
 }
+#elif defined(HAVE_GETPEERUCRED)
+
+#ifdef HAVE_UCRED_H
+# include <ucred.h>
+#endif
+
+int
+getpeereid(int s, uid_t *euid, gid_t *gid)
+{
+       ucred_t *ucred = NULL;
+
+       if (getpeerucred(s, &ucred) == -1)
+               return (-1);
+       if ((*euid = ucred_geteuid(ucred)) == -1)
+               return (-1);
+       if ((*gid = ucred_getrgid(ucred)) == -1)
+               return (-1);
+
+       ucred_free(ucred);
+
+       return (0);
+}
 #else
 int
 getpeereid(int s, uid_t *euid, gid_t *gid)
This page took 0.035573 seconds and 4 git commands to generate.