aboutsummaryrefslogtreecommitdiff
path: root/src/listen.c
diff options
context:
space:
mode:
authorAndreas Vögele <andreas@kurzegasse.de>2010-06-19 11:14:35 +0200
committerMax Kellermann <max@duempel.org>2010-06-19 13:47:10 +0200
commitdda5415def1ce78febb75199e5986aa051b00e96 (patch)
treedc95507e268fe76c2ebf386bde23ed89e4ee220b /src/listen.c
parent4347114455a605f5d1f7da629e56d189a97e5967 (diff)
Make get_remote_uid() work on BSD
I've attached a patch that will make file URIs work on operating systems that provide the getpeereid() function call to check the user ID of the peer connected to a UNIX domain socket.
Diffstat (limited to 'src/listen.c')
-rw-r--r--src/listen.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/listen.c b/src/listen.c
index 9fb60edc..3028b947 100644
--- a/src/listen.c
+++ b/src/listen.c
@@ -416,7 +416,13 @@ static int get_remote_uid(int fd)
return cred.uid;
#else
- (void)fd;
+#ifdef HAVE_GETPEEREID
+ uid_t euid;
+ gid_t egid;
+
+ if (getpeereid(fd, &euid, &egid) == 0)
+ return euid;
+#endif
return -1;
#endif
}